Word: Свойства документа и поля данных вместо bookmark в VBA

Автор PutnikAda, 25 ноября 2016, 17:26

PutnikAda

Приветствую, господа. У меня Word 2013.
Насколько я знаю, чтобы автоматически вставлять текст в документ Worda из стороннего источника, используется объект bookmark, то есть закладки.
Мой вопрос, возможно ли в коде на VBA использовать свойства документа + поля данных, а не закладки для вставки текста из сторонних источников. Это было бы намного удобнее.

Свойство я создаю так:
Файл -> Сведения -> Свойства -> Дополнительные свойства -> Прочие. Там создаю свойство  и задаю его значение.

Поле данных я вставляю так в документ:
Вставка -> Раздел "Текст" -> Просмотреть экспресс-блоки -> Поле -> категория "О документе" -> DocProperty. Там нахожу созданное мной свойство и вставляю его в нужное мне место в документе.

Администратор

Недостаток этого способа, который бросается в глаза: как вы будете отличать, где у вас в тексте поле, а где просто текст? У закладок тоже такой же недостаток.
Чтобы поле было серого цвета можно так сделать: Файл - Параметры - Дополнительно - раздел "Показывать содержимое документа" - Затенение полей - Всегда.

Вот так можно записать в свойство новое значение, а затем обновить поля, чтобы новое значение отобразилось в документе:

Макрос
Sub Макрос()
   
    Dim prop As Office.DocumentProperty
   
    '1. Vba-именование свойства с именем "My".
    Set prop = ActiveDocument.CustomDocumentProperties("My")
    '2. Изменение значения в свойстве "My".
    prop.Value = "Новое значение"
    '3. Обновление полей, чтобы в документе появилось новое значение свойства "My".
    ActiveDocument.Fields.Update
   
End Sub
[свернуть]

PutnikAda

СПА-СИ-БО! Все очень просто, как оказывается.