Приветствую, господа. У меня 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
СПА-СИ-БО! Все очень просто, как оказывается.