powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поля следящие друг за другом
19 сообщений из 69, страница 3 из 3
Поля следящие друг за другом
    #38983257
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашёл
Вкладку "разработчик" можно включить, нажав кнопку Office > Параметры Word -> Основные -> Показывать вкладку разработчик на ленте
как добавляется ContentControls?
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38983258
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, увидел, это все ContentControls:
Формат RTF
Текст
Элемент управления содержимым рисунка
Поле со списком
Раскрывающийся список
Выбор даты
Коллекция стандартных блоков
у кого из них есть событие ContentControlBeforeDelete?
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38984928
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаага, увидел, это все ContentControls:
Формат RTF
Текст
Элемент управления содержимым рисунка
Поле со списком
Раскрывающийся список
Выбор даты
Коллекция стандартных блоков
у кого из них есть событие ContentControlBeforeDelete?
Если верить доке:
https://msdn.microsoft.com/en-us/library/bb256760(v=office.12).aspx
то это событие НЕ у контролов, а у ДОКУМЕНТА
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985217
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, спасибо, этот ресурс я видел, жаль что не гуглится эта тема на русском ресурсе

а так пробовал

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
'OldContentControl - Q - название
'InUndoRedo - В Отменить Повторить True False

Private Sub ActiveDocument_ContentControlBeforeDelete(Q, InUndoRedo)

Beep

End Sub



не взлетает, что не так? и похоже в 2003 это вряд ли заработает?
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985231
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаPrivate Sub ActiveDocument _ContentControlBeforeDelete(Q, InUndoRedo)
....
не взлетает, что не так?
IMHO не так, выделено жирным
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985337
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev, спасибо, сделал

Код: vbnet
1.
2.
3.
4.
5.
Private Sub Document_ContentControlBeforeDelete(OldContentControl, InUndoRedo)

MsgBox$ "Удалено поле"

End Sub



тогда не понятно, что когда ContentControl в документе будет несколько? как мы так делаем не обращаясь к нему по имени?
и вообще эти ContentControl интересные, их с одинаковым именем в документе можно хранить несколько штук.....???
А так вообще выдаёт ошибку после удаления ContentControl
Procedure declaration does not match description of event or procedure having the same name
Декларация процедура не соответствует описанию события или процедуры, имеющий то же имя
И как это лечится?
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985352
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой пока сорри, забыл вставить ByVal
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985364
vba-dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаLeonid Kudryavtsev, спасибо, сделал

Код: vbnet
1.
2.
3.
4.
5.
Private Sub Document_ContentControlBeforeDelete(OldContentControl, InUndoRedo)

MsgBox$ "Удалено поле"

End Sub



тогда не понятно, что когда ContentControl в документе будет несколько? как мы так делаем не обращаясь к нему по имени?
и вообще эти ContentControl интересные, их с одинаковым именем в документе можно хранить несколько штук.....???
А так вообще выдаёт ошибку после удаления ContentControl
Procedure declaration does not match description of event or procedure having the same name
Декларация процедура не соответствует описанию события или процедуры, имеющий то же имя
И как это лечится?ТС совсем не понимает о чем ему говорят.
Событие ContentControlBeforeDelete это внутренее системное событие для объекта Document. Его нельзя взять и "самому написать".

На картинке Леонида Кудрявцева - слева вверху выпадающий список объектов. Справа - список встроенных обработчиков событий для этого объекта.
У вас уже миллион постов про MS Office, стыдно такого не знать....
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985369
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vba-dev, я не программист, так что то, что я не знаю это не удивительно и ещё бывают случаи, что я узнаю что-то но забываю...
тогда не пойму если в левом верхнем выпадающем списке объектов я выберу Document то в правом выпадающем списке в списке обработчиков событий у меня отсутствует событие ContentControlBeforeDelete и как быть?
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985423
vba-dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофаи как быть?
Наймите программиста. Вам уже сказали, что ваша задача не решается "в лоб" средствами офиса и привели кучу обходных путей. Но суровых челябинских программистов это не устраивает...
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985600
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vba-dev, приехали... и что я не говорил, что я только за, за решение на платной основе
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985725
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаvba-dev, приехали... и что я не говорил, что я только за, за решение на платной основе

это гдей то ты деньги предлагал?
это я тебе сделал коммерческое предложение на 1 млн рублей но ты как то не проявил интересу

а вообще с твоими замашками вряд ли кто захочет писать тебе даже за деньги ты же ведь потом затрахаешь что должно работать в виндовс 3.11 и иногда в DOS.
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985780
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочка, про миллион это не серьёзно, про офис, конечно с 2003 и выше, про винду хрюшка и выше
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38985811
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофакапитанская дочка, про миллион это не серьёзно, про офис, конечно с 2003 и выше, про винду хрюшка и выше

с чего это ты взял что я шучу?

если не устраивает то давай тз и сумму а там посмотрим
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38986173
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаvba-dev, не пойму если в левом верхнем выпадающем списке объектов я выберу Document то в правом выпадающем списке в списке обработчиков событий у меня отсутствует событие ContentControlBeforeDelete и как быть?
это я писал с рабочего компа, где офис 2003, дома щас смотрю да есть список
и что как добиться чтобы после удаления поля получил мессагу MsgBox$ "Удалено поле"?
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38987414
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть какое-то просветление
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Option Explicit

Private Sub Document_ContentControlBeforeDelete(ByVal OldContentControl As ContentControl, ByVal InUndoRedo As Boolean)
Dim Str As String
Dim objCC As ContentControl
Str = OldContentControl.Title     'получаем имя удаляемого контрола
InUndoRedo = True
    For Each objCC In ActiveDocument.ContentControls
        On Error Resume Next 'костыль, помогает справиться с тем, что событие
                             'Document.ContentControlBeforeDelete возникает
                             'не только при удалении контрола через интерфейс Ворда,
                             'но и при удалении данным макросом
        If objCC.Title = Str Then
        objCC.Delete True 'удаляем все остальные контролы с тем же именем
        MsgBox$ "Удалено поле " & OldContentControl.Title
        End If
    Next
End Sub



но при удалении поля четыре раза поучаю эту мессагу
Код: vbnet
1.
MsgBox$ "Удалено поле " & OldContentControl.Title


почему?

как добавить в коде реакцию на событие - клик по любому из этих контролов? спасибо
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38994437
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для Ворд2007 сделал, прилагаю, но упираюсь не хочу с 2003 на него переходить, нужно сделать всё тоже самое только для 2003го, цена - 4444 рубля
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38994438
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, забыл ещё не дописал
код ниже заремарченного
'выделить текст от ContentControl Начало до ContentControl Конец

Вся прелесть, что при удалении кнтрола, его контрол-пара удаляется сам, а добавляются они макросом Add_controls
...
Рейтинг: 0 / 0
Поля следящие друг за другом
    #38994623
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то не взлетает сделать выделение контрола на который ткнули, и до его пары, всего текста, что есть между этой парой, делаю и на этой строке затык:
Код: vbnet
1.
2.
3.
4.
'выделить текст от ContentControl Начало до ContentControl Конец
ActiveDocument.Range( _
            Start:=ActiveDocument.ContentControls(Left(Str, 19) & "&Начало").Range.Start, _
            End:=ActiveDocument.ContentControls(Left(Str, 19) & "&Конец").Range.Start).Select


подскажите, что не так?
...
Рейтинг: 0 / 0
19 сообщений из 69, страница 3 из 3
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поля следящие друг за другом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]