Если вы создаете форму в Word, в форме можно использовать два типа полей: обычные поля и поля формы. Поля формы и то, как они обновляются, рассматриваются в других выпусках WordTips. Если вы создаете форму, которая использует другие типы полей, которые необходимо периодически обновлять, это может быть неприятно. Зачем? Потому что Word не всегда обновляет обычные поля, когда вы заполняете заблокированную форму.

К сожалению, единственный способ обновить такие поля — это либо распечатать документ (что обычно приводит к обновлению всех полей), либо принудительно обновлять с помощью макроса. Если последний вариант является желаемым, макрос должен выполнять следующее:

  1. Разблокируйте документ.

  2. Обновите поля.

  3. Повторно заблокируйте документ.

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

Sub UpdateFields()

Dim OneStory as Range     Dim OneField as Field

ActiveDocument.Unprotect Password:="YourPassword"

For Each OneStory In ActiveDocument.StoryRanges         For Each OneField in Stories.Fields             OneField.Update         Next OneField     Next OneStory     ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _       NoReset:=True, Password:="YourPassword"

End Sub

Чтобы убедиться, что этот макрос работает для вас, вы должны убедиться, что вы изменили словосочетание «YourPassword» (два экземпляра) на любой пароль для вашего документа. Если в вашем документе не используется пароль, просто удалите параметр Password в обоих методах Unprotect и Protect.

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1543) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Updating_Fields_in_Locked_Forms [Обновление полей в заблокированных формах].