Статьи из блога

Как удалить колонтитулы из всех разделов документа

Станислав спрашивает:

Есть ли возможность удаления всех колонтитулов (верхнего и нижнего), вне зависимости от их содержимого (например, содержащих произвольный текст, разный для каждой страницы)?

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

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

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 22

  1. Мака
    20.04.2009 в 11:58 | #1

    Здравствуйте. Ваш макрос я использую для обработки документов в теле своего, большего макроса.

    Он применяется ко всем документам, в том числе и к тем, в которых колонтитулов не было изначально.

    После применения макроса он удаляет текст всех колонтитулов, но оставляет их пустыми (на месте колонтитула серый знак абзаца)

    Получается. если раньше в документе колонтитула не было, то теперь он создается, хотя и пустой.

    Он убирается включением-выключением отображения колонтитулов, но мне очень важно автоматизировать и это действие, а с помощью записи макроса не получается.

    Подскажите пожалуйста, что добавить в ваш макрос или как его изменить. Спасибо.

  2. Александр
    21.09.2009 в 21:47 | #2

    Приходится копировать текст с исходного документа без колонтитулов и вставлять в новый документ. Очень не удобно.

  3. 22.09.2009 в 00:32 | #3

    У меня получилось убрать отображение пустых колонтитулов переключившись в режим работы колонтитулов, а затем обратно. Макрос. предложенный Антоном, я дополнил:

    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

  4. Руслан
    12.01.2010 в 15:03 | #4

    Этот макрос удаляет все колонтитулы во всех разделах документа. А как можно удалить колонтитулы (текст, шейпы и комбобоксы) в конкретном разделе?

    Задача заключается в том, что часто имея документ, приходится вставялть в него (причем, где угодно) страницы другого формата и ориентации. Это все пользователи могут сделать руками, но хочется этот момент автоматизировать. Вроде не вопрос навставлять разрывов, но вот удалить старый колонтитул на вставленной страницы не получается (возврат в созданный раздел выполняю переходом на закладку в его начале).

  5. 12.01.2010 в 16:33 | #5

    Можно вот так

    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

  6. Руслан
    12.01.2010 в 16:58 | #6

    Попытался применить ваш код. Выдает ошибку "Method or data member not found" на ".Headers" в строке 03 и ".Footers" в строке 06.

  7. 13.01.2010 в 09:23 | #7

    Замените Selection на Selection.Sections(1)

    В комментарий я внёс исправления

  8. Владимир
    26.06.2010 в 17:05 | #8

    при попытке компиляции вываливает ошибку User-defined type not defined

  9. 26.06.2010 в 18:24 | #9

    Владимир, проверьте, что всё правильно скопировалось. Если всё правильно, то приведите текст, который выделяется при ошибке

  10. Дмитрий
    26.03.2012 в 11:19 | #10

    Большое спасибо!

  11. Лилия
    26.03.2012 в 13:36 | #11

    Здравствуйте! У меня проблема с колонтитулами...и прошу просветить в ее решении. Скопировав в нэте текст 1 (назовем его так) и сохранив его, я скопировала совершенно иной текст 2, и при вставке в свой файл с текстом 1 начался прикол! Текст разбит на верхний и нижний колонтитул, но читается только текст 2, хотя страниц вместо 10-12 оказалось около 2000! Что это??? Верхний колонтитул четной страницы выделен слабо-слабо, а нечетной четко. Как с этим бороться и превести всё в порядок? Умоляю подскажите!!!

  12. 26.03.2012 в 13:36 | #12

    Обратитесь на наш форум, там помогут.

  13. andybs
    02.10.2012 в 17:52 | #13

    Спасибо, мне очень помогло после распознавания FR. Отработали оба листига. Второй зачистил все полностью

  14. 30.11.2012 в 11:01 | #14

    Эти макросы удаляют только текст, а как удалить Shapes?

  15. Аноним
    16.03.2013 в 15:09 | #15

    Здравствуйте, возможно ли колонтитул не выводить на печать и как это сделать?

  16. Константин
    22.04.2014 в 16:41 | #16

    Огромное спасибо. Кстати, когда я вставил текст макроса (без sub и end sub) - так, как описано по ссылке "Создание макроса из готового кода" - выдало ошибку компиляции, синтаксическая ошибка. Тогда я убрал комментарий и вставил так, чтобы макрос выглядел ровно как здесь. Тогда заработало!

  17. Ольга
    24.06.2014 в 11:54 | #17

    Добрый день! Очень классный макрос!

    Спасибо!

  18. Ольга
    24.06.2014 в 13:09 | #18

    А возможно добавить в этот макрос, чтобы он сам отделял раздел и в этом разделе убивал колонтитулы?

  19. Алекс51
    24.01.2015 в 01:51 | #19

    Ребята а как он должен выглядеть для пакетной обработки? Очень нужно!

  20. Константин
    05.08.2015 в 19:48 | #20

    Здравствуйте! Подскажите, есть ли возможность подсчёта статистики содержимого колонтитулов при подсчёте общей статистики документа или отдельно всех колонтитулов в word 2010. Спасибо.

  21. Вадим
    26.05.2016 в 14:06 | #21

    Добрый день. Очень нужна помощь. Можно ли как-нибудь модифицировать данный макрос,чтобы он вместо удаление всех колонтитулов,изменял размер шрифта?

  22. Махач
    19.09.2021 в 10:56 | #22

    Автору спасибо, очень помог)

Оставьте комментарий!

(обязательно)

^ Наверх