Статьи из блога
Запрет обновления полей с разорванными связями
Сергей поинтересовался:
Прошу Вас рассказать, как в WORD 2003 запретить обновление полей во всем документе (включая колонтитулы) при печати этого документа.
Чтобы текстовые поля документа не обновлялись при печати, снимите флажок с опции "Обновлять поля" и "Обновлять связи" из вкладки Печать диалогового окна Параметры (меню Сервис - команда Параметры).
Позже Сергей уточнил свой вопрос и сообщил новые данные:
Проблема в том, что поля в документе имеют разорванные связи и документ при открытии выглядит как обычно, но, если его распечатать или перевести в PDF, то поля в документе обновляются, а обновляться неоткуда, и вместо текста появляется код данного поля. Поэтому приходиться вручную запрещать обновление каждого поля, что существенно снижает преимущество донного способа оформления.
В этом случае попробуйте следующий макрос, запрещающий обновление полей во всем документе и во всех разделах, в колонтитулах и в надписях, которые содержаться в колонтитулах:
Sub fieldLocked()
'Запрет на обновление полей документа во всем документе и во всех разделах
Dim aStory As Range
Dim oSection As Section
Dim HF As HeaderFooter
Dim aField As Field
Dim rngStory As Word.Range
Dim oShp As Word.Shape
'Запрет обновления полей во всем тексте
For Each aStory In ActiveDocument.StoryRanges
For Each aField In aStory.Fields
aField.Locked = True
Next aField
Next aStory
'Запрет обновления полей в колонтитулах
For Each oSection In ActiveDocument.Sections
For Each HF In oSection.Headers
HF.Range.Fields.Locked = True
Next HF
For Each HF In oSection.Footers
HF.Range.Fields.Locked = True
Next HF
Next oSection
'Запрет обновления полей в надписях в колонтитулах
For Each rngStory In ActiveDocument.StoryRanges
Do
On Error Resume Next
rngStory.Fields.Update
Select Case rngStory.StoryType
Case 6, 7, 8, 9, 10, 11
If rngStory.ShapeRange.Count > 0 Then
For Each oShp In rngStory.ShapeRange
If oShp.TextFrame.HasText Then
oShp.TextFrame.TextRange.Fields.Locked = True
End If
Next oShp
End If
Case Else
'Do Nothing
End Select
On Error GoTo 0
'Get next linked story (if any)
Set rngStory = rngStory.NextStoryRange
Loop Until rngStory Is Nothing
Next rngStory
End Sub
Чтобы вернуть возможность автоматического обновления полей, можно использовать этот же макрос, но заменив в нем свойство "Locked = True" на "Locked = False".
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Создание макроса из готового кода
Метки: макросы | поля | связи
Просмотров: 23989
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Microsoft Office: популярные команды на одной вкладке
- Ribbon XML Editor — программа редактирования интерфейса Word 2007, 2010
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Абзац с цветным фоном
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение всех открытых документов
- Автоматическое сохранение документа при его закрытии
- Автотекст и Word 2007
- Автотекст с последовательной нумерацией
- Белый текст на синем фоне в Word 2007
- Белый текст на синем фоне: ностальгия по DOS
- Быстрая смена ориентации страниц документа
- Быстрая смена регистра букв (слов) или их размеров
- Быстрое изменение стиля форматирования текста
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона

Форум
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 5
Почему после прямого и обратного применения данного макроса исчезают созданные рисунки? Как этого избежать?
Вставленные рисунки остаются на месте.
сорри, правильнаое сочетание- CTRL+Shift+F9
если поля и связи в документе больше не нужны, то выделите их и преобразуйте в текст, нажав Ctrl+Shift+F9
Подскажите. какой командой можно определить находится курсор в редактируем поле или в поле запрещенном для редактирования
Благодарю!