Автоматическое обновление полей при открытии документа

Источник: wordexpert
Антон Кокин

Ваши документы могут содержать различные поля: перекрестные ссылки, оглавления, предметные указатели, нумерацию, даты и т.д., некоторые из которых нуждаются в периодическом обновлении. Например, добавлены или изменились названия глав, которые присутствуют в оглавлении, рисунки были перенесены, удалены или добавлены новые и так далее. После этих действий необходимо принудительно обновлять поля.
Однако редактор Word не имеет стандартных возможностей обновления всех полей в документе одновременно и без лишних мышедвижений (если не считать использование сочетаний клавиш для выделения всего текста - «Ctrl»+«A» и последующего обновления с помощью клавиши «F9»).

Тем не менее, есть решение: можно воспользоваться специальным макросом, который будет автоматически обновлять все ваши поля при каждом открытии документа. Для этого разместите приведенный ниже код макроса в ваш шаблон Normal.dot (Normal.dotm), на основе которого вы создаете свои документы, или в конкретный документ (P.S.: макрос обновлен 27.03.2008, так как Оглавление в документе не обновлялось, если это не сделать явным образом).

Sub AutoOpen()
'Автообновление всех полей документа при его открытии
Dim aStory As Range
Dim aField As Field
Dim myTOC As TableOfContents
For Each aStory In ActiveDocument.StoryRanges
  For Each aField In aStory.Fields
    aField.Update
  Next aField
Next aStory
For Each myTOC In ActiveDocument.TablesOfContents
   myTOC.Update
Next myTOC
End Sub

Если вы желаете обновлять поля вручную, то измените наименование макроса, создайте для него кнопку и разместите ее на панели инструментов (для Word 2003) или на панели быстрого доступа (для Word 2007).


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=10063