Существуют отличные макросы для обновления всех полей в документах Microsoft Word (включая верхние и нижние колонтитулы).Точно так же: Макрос для обновления всех полей в текстовом документе
Но что, если верхние и нижние колонтитулы содержат текстовые поля с полями?Конечно, было бы лучше, чтобы там не было текстового поля, но что, если другого решения не существует?
Например, его можно применить к такой проблеме:
Мы должны сделатьшаблон текстового документа со стандартной формой, такой как этот: стандартная форма ГОСТ для текстовых документов Каждый лист содержит рамку с нижней таблицей и левую таблицу с некоторыми полями, такими как номер документа, редакции и т. д..
На мой взгляд, лучший способ сделать это - использовать ссылки на пользовательские свойства документа в полях, расположенных в нижнем колонтитуле.Но должны быть таблицы, которые занимают много места, сжимая основную текстовую область.Чтобы предотвратить это, мы могли бы переместить эти таблицы в большое текстовое поле на другом слое.Единственная проблема заключается в том, как обновить поля в этом текстовом поле ...
Этого можно достичь, выполнив следующие действия:
Get Active Document
Iterate through Footers in Active Document
Iterate through Shapes in Footers in Active Document
If the Shape has Text then
Update Fields in the Shape
End IF
Next
Next
Итак, путь к объекту: ActiveDocument ->Нижний колонтитул -> TextBox -> Поле
Проблема в том, как туда добраться.Справочник по Microsoft Word-VB ничего не говорит о подобных ситуациях.
Тестовый документ: Тестовый документ MS-Word с полями в нижнем колонтитуле
Документ имеет 4 настраиваемых свойства для изменения:
- Номер документа
- Название документа
- Тип продукта
- Родительский номер