1

Тема: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

Как указать в макросе параметр колонтитула Особый колонтитул для первой страницы для раздела документа?
При записи установки этого флажка в макрорекордере ничего не изменяется.
Нужно указать этот параметр не для всего документа, а для текущего раздела.

Также очень интересует, как указать в макросе отключение кнопки Как в предыдущем разделе?
В макрорекордере и при включении, и при выключении этой кнопки появляется одинаковая строка кода:

Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter.LinkToPrevious
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

2

Re: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

Нашел решение данной проблемы:

Убрать параметр "Как в предыдущем разделе" (отменяется параметр по умолчанию):

Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter.LinkToPrevious

Установить флажок "Особый колонтитул для первой страницы":

ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True

Тогда весь макрос в целом будет выглядеть так:

Sub Макрос1()
'
' Макрос для формирования нового раздела с новой страницы 
' с параметром Особый колонтитул для первой страницы 
' и с отключенной кнопкой Как в предыдущем разделе
'
'   Вставка раздела с новой страницы:
    Selection.InsertBreak Type:=wdSectionBreakNextPage
'   Изменение верхнего колонтитула:
    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
'   Убрать параметр "Как в предыдущем разделе" (отменяется параметр по умолчанию):
    Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter.LinkToPrevious
'   Установить флажок "Особый колонтитул для первой страницы":
    ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
'   Вставить текст в колонтитул:
    Selection.TypeText Text:="Привет, мир!"
'   Возврат от колонтитула к основному тексту:
    Selection.EscapeKey
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3

Re: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

Строка кода:

Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter.LinkToPrevious

будет работать если номер выделенного раздела больше 1, если Selection.HeaderFooter.LinkToPrevious = True соответствует нажатой кнопке Как в предыдущем разделе и, соответственно при выполнении кода будет меняться на Selection.HeaderFooter.LinkToPrevious = False и наоборот

4

Re: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

Значки Особый колонтитул для первой страницы и Разные колонтитулы для четных и нечетных страниц лучше всего регулировать через свойства раздела Section, например:

Selection.Sections(1).PageSetup.DifferentFirstPageHeaderFooter = True[False]
Selection.Sections(1).PageSetup.OddAndEvenPagesHeaderFooter = True[False]

5

Re: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

aap77 пишет:

Значки Особый колонтитул для первой страницы и Разные колонтитулы для четных и нечетных страниц лучше всего регулировать через свойства раздела Section, например:

Selection.Sections(1).PageSetup.DifferentFirstPageHeaderFooter = True[False]
Selection.Sections(1).PageSetup.OddAndEvenPagesHeaderFooter = True[False]

Спасибо. А как будет для текущего раздела (если мне неизвестен номер раздела)?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

6

Re: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

Selection.Sections(Selection.Information(wdActiveEndSectionNumber)).PageSetup.DifferentFirstPageHeaderFooter = True[False]
Selection.Sections(Selection.Information(wdActiveEndSectionNumber)).PageSetup.OddAndEvenPagesHeaderFooter = True[False]

7

Re: "Особый колонтитул для 1-ой страницы" и "Как в предыдущем разделе"

Можно сделать новый класс clsMySection  в который добавить свойство Name, а также форму пользователя по настройке как всех колонтитулов документа так и выборочно по имени раздела.