Статьи из блога
Статьи из блога
Автоматическое обновление полей при открытии документа
Метки: AutoOpen | макросы | поля
Вторник, 25 марта 2008 г.
Просмотров: 6070
Подписаться на комментарии по RSS
Версия для печати
Ваши документы могут содержать различные поля: перекрестные ссылки, оглавления, предметные указатели, нумерацию, даты и т.д., некоторые из которых нуждаются в периодическом обновлении. Например, добавлены или изменились названия глав, которые присутствуют в оглавлении, рисунки были перенесены, удалены или добавлены новые и так далее. После этих действий необходимо принудительно обновлять поля.
Однако редактор 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).
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Поиск
Рубрики
Подписка
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 7
Имеется колонтитул в котором нумерация страниц и поле - "имя файла". К сожалению ваш код не помог обновить поля в колонтитуле
При включении макросов код заработал. вопрос снят
Панель инструментов
Слияние(появится встроеное меню)
кнопка с желтым конвертом. "Выбрать тип документа"
точка должна(как правила там и стоит) стоять на "Обычный документ word"
ОК.
все обновляется. 100%
можно енту кнопку вывести на стандартное меню и пользоваться.
У меня не обновляются поля в колонтитулах. В тексте теже поля обновляются. как это можно исправить?
Ищем через поиск по сайту:
Макрос обновления полей в колонтитулах
Пошерстил wordexpert и составил макрос обновляющий все и во всем поля:
Sub RegenPoley() 'Автообновление всех полей документа при его открытии 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 'Обновление полей в надписях, содержащихся в колонтитулах Application.ScreenUpdating = False ActiveDocument.PrintPreview ActiveDocument.ClosePrintPreview Application.ScreenUpdating = True End SubСпасибо всем за помощь!
Поскольку поля обновляются перед предварительным просмотром, то можно сделать так: