Статьи из блога
Статьи из блога
Как удалить колонтитулы из всех разделов документа
Рубрика: Вопрос-Ответ, Макросы
Метки: колонтитулы | макросы | разделы
Вторник, 3 июня 2008 г.
Просмотров: 19110
Подписаться на комментарии по RSS
Версия для печати
Метки: колонтитулы | макросы | разделы
Вторник, 3 июня 2008 г.
Просмотров: 19110
Подписаться на комментарии по RSS
Версия для печати
Станислав спрашивает:
Есть ли возможность удаления всех колонтитулов (верхнего и нижнего), вне зависимости от их содержимого (например, содержащих произвольный текст, разный для каждой страницы)?
Да, это возможно. Есть два способа удалить колонтитулы из документа: вручную и через макрос. Ручное удаление колонтитулов осуществить достаточно легко, но этот способ непродуктивен. Лучше воспользоваться следующим макросом, который удалит все имеющиеся колонтитулы (верхние и нижние) во всех разделах документа.
Sub deleteAllHeaders_Footers()
Dim sec As Section
Dim hf As HeaderFooter
Dim rng As Range
For Each sec In ActiveDocument.Sections
For Each hf In sec.Headers
hf.Range.Delete
Next hf
For Each hf In sec.Footers
hf.Range.Delete
Next hf
Next sec
End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Поиск
Рубрики
Подписка
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 9
Здравствуйте. Ваш макрос я использую для обработки документов в теле своего, большего макроса.
Он применяется ко всем документам, в том числе и к тем, в которых колонтитулов не было изначально.
После применения макроса он удаляет текст всех колонтитулов, но оставляет их пустыми (на месте колонтитула серый знак абзаца)
Получается. если раньше в документе колонтитула не было, то теперь он создается, хотя и пустой.
Он убирается включением-выключением отображения колонтитулов, но мне очень важно автоматизировать и это действие, а с помощью записи макроса не получается.
Подскажите пожалуйста, что добавить в ваш макрос или как его изменить. Спасибо.
Приходится копировать текст с исходного документа без колонтитулов и вставлять в новый документ. Очень не удобно.
У меня получилось убрать отображение пустых колонтитулов переключившись в режим работы колонтитулов, а затем обратно. Макрос. предложенный Антоном, я дополнил:
Sub deleteAllHeaders_Footers() Dim sec As Section Dim hf As HeaderFooter For Each sec In ActiveDocument.Sections For Each hf In sec.Headers hf.Range.Delete Next hf For Each hf In sec.Footers hf.Range.Delete Next hf Next sec 'Переключаемся в режим отображения колонтитулов ActiveDocument.Windows(1).View.SeekView = wdSeekCurrentPageFooter 'Переключаемся к основному документу ActiveDocument.Windows(1).View.SeekView = wdSeekMainDocument End SubЭтот макрос удаляет все колонтитулы во всех разделах документа. А как можно удалить колонтитулы (текст, шейпы и комбобоксы) в конкретном разделе?
Задача заключается в том, что часто имея документ, приходится вставялть в него (причем, где угодно) страницы другого формата и ориентации. Это все пользователи могут сделать руками, но хочется этот момент автоматизировать. Вроде не вопрос навставлять разрывов, но вот удалить старый колонтитул на вставленной страницы не получается (возврат в созданный раздел выполняю переходом на закладку в его начале).
Можно вот так
Sub deleteCurrentHeaders_Footers() Dim hf As HeaderFooter For Each hf In Selection.Sections(1).Headers hf.Range.Delete Next hf For Each hf In Selection.Sections(1).Footers hf.Range.Delete Next hf 'Переключаемся в режим отображения колонтитулов ActiveDocument.Windows(1).View.SeekView = wdSeekCurrentPageFooter 'Переключаемся к основному документу ActiveDocument.Windows(1).View.SeekView = wdSeekMainDocument End SubПопытался применить ваш код. Выдает ошибку "Method or data member not found" на ".Headers" в строке 03 и ".Footers" в строке 06.
Замените Selection на Selection.Sections(1)
В комментарий я внёс исправления
при попытке компиляции вываливает ошибку User-defined type not defined
Владимир, проверьте, что всё правильно скопировалось. Если всё правильно, то приведите текст, который выделяется при ошибке