WORD 2010 Макрос для редактирования верхних и нижних колонтитулов - PullRequest
7 голосов
/ 15 ноября 2011

У меня есть только базовый опыт работы с VBA, и мой предыдущий опыт работы с макросами был в основном с WORD 2003. Запись макросов использовалась для получения команд меню GoToFooter (или Edit Footer) и разрешения последующего редактирования.В WORD 2010 эта (и многие другие) команды не «записывают» в макрос (но в режиме записи я попадаю в функцию «Редактировать нижний колонтитул»).

Исследование различных вариантов VBS показывает несколько способовсоздавать нижние колонтитулы и вносить глобальные изменения настроек нижнего колонтитула в макрос.Однако, если я просто хочу пересмотреть название компании в нижнем колонтитуле (например), я не могу найти способ сделать это в подпрограмме макроса.

Эта подпрограмма будет вызываться из основного макроса, которыйпошагово просматривает каждый файл в папке (& подпапках).У меня есть основной функционал Macro.

Предусматривает ли WORD 2010 Macro-VBA исключение простой функции Edit-Footer?

Заранее спасибо

Итак, благодаря Issun, вот мойрешение:

`
Sub Sub_FTR_0()
'
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter

For i = 1 To ActiveDocument.Sections.Count
 'REM: INSERT Code from RECORD MACRO recorded when editing one Footer correctly
    Selection. [[xxx]], etc.

If i = ActiveDocument.Sections.Count Then GoTo Line1

    ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter

Line1:
Next

    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

End Sub
`

Ответы [ 2 ]

10 голосов
/ 15 ноября 2011

Вот способ доступа к верхним и нижним колонтитулам через VBA. Как видите, это довольно сложный синтаксис, чтобы добраться до чего-то такого простого: p там

Sub EditHeadersAndFooters()

Dim i As Long

For i = 1 To ActiveDocument.Sections.Count
    With ActiveDocument.Sections(i)
        .Headers(wdHeaderFooterPrimary).Range.Text = "Foo"
        .Footers(wdHeaderFooterPrimary).Range.Text = "Bar"
    End With
Next

End Sub

Вот ссылка на пример кода о том, как изменить заголовки в каждом файле в папке. Это другой подход, и я никогда не пробовал, но для справки: http://www.vbaexpress.com/kb/getarticle.php?kb_id=45

1 голос
/ 05 декабря 2016

Это сработало для меня на всех страницах документа.

word.ActiveDocument.Sections (1) .Headers (1) .Range.Text = "Поместить заголовок здесь"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...