Макрос для колонтитулов word

Студворк — интернет-сервис помощи студентам

Когда в документе нет специального колонтитула первой страницы, то макрос выполняется нормально, и на каждой странице выходит правильный колонтитул.
Когда же в документе вставлена нумерация страниц и она отображается со второй станице, начинается путаница.
Подскажите как чтобы и при специальном колонтитуле первой страницы, текст в колонтитулах был верным
Спасибо!

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 15.05.2013 rabotnik
'
Dim hfRange As Range 'диапазон колонтитулов
Dim str As String
Dim Sec As String
Dim Sec1 As String
 
Set hfRange = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
 
With hfRange
.Delete
 
Sec1 = Shriftdata
.Fields.Add Range:=hfRange, Text:="DATE  @ dd.MM.yyyy"
Sec = Slesh
.Fields.Add Range:=hfRange, Text:="FILENAME  p" 'поле пути и имени файла
str = Ispolnit
 
End With
 
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False  'скрываем коды полей, если они отображались
ActiveWindow.View.Type = wdPrintView    'переключаемся в режим Разметка страницы
 
End Sub
 
Function Ispolnit()
 
 
    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
    If Selection.HeaderFooter.IsHeader = True Then
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    Else
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    End If
    Selection.TypeText Text:="ОтделФамилия И.О."
    Selection.MoveLeft Unit:=wdCharacter, Count:=100000, Extend:=wdExtend
    Selection.Font.Name = "Times New Roman"
    Selection.Font.Size = 8
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
 
End Function
 
Function Slesh()
'
'
'
    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
    If Selection.HeaderFooter.IsHeader = True Then
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    Else
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    End If
    Selection.TypeText Text:=""
    Selection.MoveLeft Unit:=wdCharacter, Count:=100000, Extend:=wdExtend
    Selection.Font.Name = "Times New Roman"
    Selection.Font.Size = 8
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Function
 
Function Shriftdata()
'
'
'
    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
    If Selection.HeaderFooter.IsHeader = True Then
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    Else
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    End If
    Selection.TypeText Text:=""
    Selection.MoveLeft Unit:=wdCharacter, Count:=100000, Extend:=wdExtend
    Selection.Font.Name = "Times New Roman"
    Selection.Font.Size = 8
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Function

Добавлено через 19 часов 1 минуту
т.е. мне надо чтобы этот макрос выполнялся с первой страницы
и нумерация страниц, но номера на первой странице не было

I have only basic VBA experince and my prior Macro experence was primarily with WORD 2003. Recording Macros used to take GoToFooter (or Edit Footer) Menu Commands and allow subsequent editing. In WORD 2010, this (and many other) commands do not «record» to the Macro (yet when in Record mode, I do get into Edit Footer function).

A research of various VBS options shows several ways to create Footers and to make global Footer setting changes within Macro. However If I simply want to Revise the Company name within the Footer (for example), I can find no way to do this within a Macro subroutine.

This subroutine is one that I would call from the Main Macro that is stepping through each file in a Folder (& subfolders). I have the main Macro functioning.

Does WORD 2010 Macro-VBA preclude simple Edit-Footer function?

Thanks in advance

So, thanks to Issun, here is my solution:

`
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
`

Алена задала вопрос:

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

Есть две возможности вставить колонтитул на нечетные страницы: в первый раздел документа (если он, например, единственный), или во все разделы документа.

Вот примеры макросов, позволяющие реализовать эти два способа.

Sub insertHFoddPages()
'Вставка нижнего колонтитула на нечетные страницы 
'в первом разделе документа
Dim str As String
str = "Текст нижнего колонтитула на нечетной странице"
ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = True 
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.text = str
End Sub

Если нужно вставить текст во все нижние колонтитулы во всех разделах документа, то используйте второй макрос:

Sub insertHFoddPages2()
'Вставка нижнего колонтитула 
'на нечетных страницах во всех разделах документа
Dim str As String
Dim Sec As Section
str = "Текст нижнего колонтитула на нечетной странице"
ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = True
For Each Sec In ActiveDocument.Sections
    Sec.Footers(wdHeaderFooterPrimary).Range.Text = str
Next Sec
End Sub

сделать в Ворде макросом колонтитул нижний

Автор Ципихович Эндрю, 04 февраля 2017, 13:31

Ципихович Эндрю

  • гость
  • Записан

Здравствуйте, как сделать в Ворде макросом, чтобы в конце страницы последней строкой было, например
___________ А.А. Петров?

Эта вещь вроде колонтитулы нижние называется, но не сталкивался.



Администратор

  • Administrator
  • Сообщения: 2,254
  • Записан

Вставка текста в первый раздел, в нижний основной колонтитул:
Sub Макрос()
    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = «___________ А.А. Петров»
End Sub

Примечания

  • Колонтитулы есть в каждом разделе файла. Поэтому, если у вас несколько разделов в файле, то может потребоваться вставлять колонтитулы не в один раздел, а в несколько.
  • Колонтитулы есть трёх видов:
    1) основной  — wdHeaderFooterPrimary
    2) колонтитул первой страницы раздела (именно раздела, а не всего файла) — wdHeaderFooterFirstPage
    3) колонтитул чётной страницы — wdHeaderFooterEvenPages
    Поэтому это нужно помнить. Например, если вы вставили колонтитул, а его не видно, значит в файле нет какого-то колонтитула.


  • Форум по VBA, Excel и Word

  • Word

  • Макросы в Word

  • сделать в Ворде макросом колонтитул нижний

Колонтитулы — программное изменение

zoman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 10.06.2005 (Пт) 9:19

Колонтитулы — программное изменение

Как можно изменить имеющиеся верхние колонтитулы (произвольный текст + № страницы) для Word с помощью VBA?


uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя

 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 10.06.2005 (Пт) 9:38

Запиши макрос, сделай в нем мышкой все действия, потом посмотри его текст.


zoman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 10.06.2005 (Пт) 9:19

Сообщение zoman » 10.06.2005 (Пт) 9:45

Запиши макрос, сделай в нем мышкой все действия, потом посмотри его текст.

А ты сам так пробовал?

После выполнения он делает там где установлен курсор :shock:


uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя

 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 10.06.2005 (Пт) 9:50

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


RayShade
Scarmarked
Scarmarked
Аватара пользователя

 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg
  • Сайт
  • ICQ

Сообщение RayShade » 10.06.2005 (Пт) 10:05

Нечего на Ворд пенять, коли голова не включается. Понятное дело, что он запишет для Selection макрос. Так его надо модифицировать самому потом уже.


uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя

 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 10.06.2005 (Пт) 11:19

Для Selection — это еще хорошо. Ты попробуй с колонтитулами поработать. Там правда уродский код получится, который еще и не работает. Из него, конечно, можно вывести то, что нужно, но далеко не сразу.


zoman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 10.06.2005 (Пт) 9:19

Сообщение zoman » 10.06.2005 (Пт) 11:44

Вот так добавляем колонтитул:

Word.Document.Sections(1).Headers(1).Range.Text = «TEST»

Вот так добавляем к существующему колонтитулу:

Word.Document.Sections.Item(1).Headers.Item(1).Range.InsertBefore «TEST»

А мне надо еще варианты, типа как создать полный колонтитул с номером страницы, датой и временем…


zoman
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 10.06.2005 (Пт) 9:19

Решил…

Сообщение zoman » 14.06.2005 (Вт) 9:54

Вообщем, чтобы не изобретать велосипед, сдлелал так:

В колонтитулах то, что надо менять — сделал полями.

Нюанс:

Word.Document.Fields.Update — обновляет поля для документа.

Word.Document.Sections(1).Headers(1).Range.Fields.Update — ОБНОВЛЯЕТ ПОЛЯ ДЛЯ КОЛОНТИТУЛОВ!!!



Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Категория: Excel
Опубликовано: 30 октября 2021
Просмотров: 1951

Фрагмент кода для работы с верхним и нижним колонтитулами

'верхний колонтитул
With wdDoc
    For Each Section In .Sections
        For Each Header In Section.Headers
            With Header.Range.Find
                .Text = "&sn"
                .Replacement.Text = SN$
                .Wrap = wdFindContinue
                Call .Execute(Replace:=wdReplaceAll)
            End With
        Next
    Next Section
End With

'нижний колонтитул
With wdDoc
    For Each Section In .Sections
        For Each footer In Section.Footers
            With footer.Range.Find
                .Text = "&adress"
                .Replacement.Text = Adress$
                .Wrap = wdFindContinue
                Call .Execute(Replace:=wdReplaceAll)
            End With
        Next
    Next Section
End With

ZIP архив с проектом


Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

 С уважением, авторы сайта Компьютерапия

Понравилось? Поделись этим видео с друзьями!

Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Содержание

  1. Формулировка задачи:
  2. Пример Example
  3. Поддержка и обратная связь Support and feedback
  4. Коллекция HeadersFooters — колонтитулы в ворде
  5. Свойства – верхний колонтитул в ворде
  6. Методы – нижний колонтитул в ворде
  7. Класс HeaderFooter – колонтитулы в Word
  8. Свойства – работа с колонтитулами в Word

Формулировка задачи:

Прошу помочь в следующей ситуации.

Из начально документ имеет один раздел с одной страницей (первая страница — особый колонтитул). По ходу работы с документом возможно появление N — страниц в первом разделе а, также Np — количество разделов. Необходимо создать код который вставляет номер страницы (скажем по центру): — особый колонтитул только для первого раздела; — нумерация последующих разделов с 1. Пробую научиться задать формат номера страницы, не выходит — аленький цветочек.

Следующее специальное форматирование и коды Visual Basic для приложений (VBA) могут быть включены в состав свойств верхнего и нижнего колонтитулов (лефсеадер, центерхеадер, ригхсеадер, лефтфутер, центерфутер, и ригхтфутер). The following special formatting and Visual Basic for Applications (VBA) codes can be included as a part of the header and footer properties (LeftHeader, CenterHeader, RightHeader, LeftFooter, CenterFooter, and RightFooter).

Код формата Format code Описание Description
&L &L Left выравнивает символы, которые следуют. Left aligns the characters that follow.
&C &C Центрирует следующие символы. Centers the characters that follow.
&R &R Right выравнивает символы, которые следуют. Right aligns the characters that follow.
&E &E Включает или выключает печать с двумя подчеркиванием. Turns double-underline printing on or off.
&X &X Включает или выключает печать надстрочных знаков. Turns superscript printing on or off.
&Y &Y Включение или отключение печати подстрочных индексов. Turns subscript printing on or off.
&B &B Включает или выключает печать полужирным шрифтом. Turns bold printing on or off.
&I &I Включает или выключает печать курсивом. Turns italic printing on or off.
&U &U Включает или выключает печать подчеркивания. Turns underline printing on or off.
&S &S Включает или выключает печать текста с зачеркиванием. Turns strikethrough printing on or off.
& «FontName» &»fontname» Печать символов, которые следуют за указанным шрифтом. Prints the characters that follow in the specified font. Не забудьте включить двойные кавычки. Be sure to include the double quotation marks.
&NN &nn Печатает символы, которые следуют за указанным размером шрифта. Prints the characters that follow in the specified font size. Используйте двузначное число, чтобы указать размер в пунктах. Use a two-digit number to specify a size in points.
Цвет & &color Печатает символы указанного цвета. Prints the characters in the specified color. Пользователь предоставляет шестнадцатеричное значение цвета. User supplies a hexadecimal color value.
& «+» &»+» Печать символов, которые следуют за шрифтом заголовка текущей темы. Prints the characters that follow in the Heading font of the current theme. Не забудьте включить двойные кавычки. Be sure to include the double quotation marks.
& «—» &»-« Печать символов, которые следуют за шрифтом текста текущей темы. Prints the characters that follow in the Body font of the current theme. Не забудьте включить двойные кавычки. Be sure to include the double quotation marks.
&K XX. &K xx. S nnn S nnn Печатает символы, которые следуют за указанным цветом, из текущей темы. Prints the characters that follow in the specified color from the current theme.

XX — это двузначное число от 1 до 12, которое указывает цвет темы для использования. xx is a two-digit number from 1 to 12 that specifies the theme color to use.

S nnn задает затенение (оттенок) цвета темы. S nnn specifies the shade (tint) of that theme color. Укажите S как +, чтобы создать более светлую тень; Укажите » S «, чтобы создать темную тень. Specify S as + to produce a lighter shade; specify S as — to produce a darker shade.

nnn это целое число из трех цифр, которое определяет процент от 0 до 100. nnn is a three-digit whole number that specifies a percentage from 0 to 100.

Если значения, задающие цвет или затенение темы, не превышают указанные пределы, Excel будет использовать ближайшее допустимое значение. If the values that specify the theme color or shade are not within the described limits, Excel will use the nearest valid value.

VBA code VBA code Описание Description
&D &D Печатает текущую дату. Prints the current date.
&T &T Печатает текущее время. Prints the current time.
&F &F Печатает имя документа. Prints the name of the document.
&A &A Печатает имя вкладки книги. Prints the name of the workbook tab.
&P &P Печать номера страницы. Prints the page number.
&P + Number &P+number Печать номера страницы и указанного числа. Prints the page number plus the specified number.
&P — номер &P-number Печатает номер страницы за вычетом указанного числа. Prints the page number minus the specified number.
&& Печатает один амперсанд. Prints a single ampersand.
&N &N Печатает общее количество страниц в документе. Prints the total number of pages in the document.
&Z &Z Печатает путь к файлу. Prints the file path.
&G &G Вставляет изображение. Inserts an image.

Пример Example

В приведенном ниже коде показано, как можно использовать форматирование и коды VBA для изменения сведений и внешнего вида заголовка. The following code shows how formatting and VBA codes can be used to modify the header information and appearance.

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Всем привет, с вами автор блога scriptcoding.ru. В данной статье мы рассмотрим коллекцию HeadersFooters и ее объекты HeaderFooter, которые отвечают за редактирование или создание колонтитулов в Word документе.

Важной особенностью при работе с коллекцией HeadersFooters является то, что она содержит в себе не количество классов HeadersFooter для каждой страниц (то есть, если у нас 30 статей в разделе, то это не означает, что у нас 30 колонтитулов в ворде), а количество возможных параметров при работе с колонтитулами в Word, поясню….

В самом документе мы можем вставить верхний колонтитул в ворде или нижний колонтитул в ворде, которые будет отображаться на всех страницах, это понятно. Далее, мы можем указать, что бы для четных и нечетных отображались разные колонтитулы. И, мы можем указать индивидуальный колонтитул для первой страницы Word.

Для доступа к коллекции HeadersFooters используются свойства Headers или Footers, которые указывают: с верхним или с нижним колонтитулом в ворде мы хотим работать . Данные свойства есть у объекта Section, который позволяет обрабатывать нужный раздел. Напомню, что в документ можно вставить несколько разделов, которые будут содержать статьи, обрабатываемые в индивидуальном порядке.

  • Если мы хотим указать, что нужно создавать разные колонтитулы в Word для четных и нечетных, то свойству OddAndEvenPagesHeaderFooter объекта PageSetup нужно присвоить значение true.
  • Если надо создать колонтитул в ворде, который будет уникальным для первой статьи, то свойству DifferentFirstPageHeaderFooter объекта PageSetup присваивается значение true.

Сам процесс создания верхних и нижних колонтитулов в документе Word я рассмотрю в конце статьи, а пока, рассмотрим методы и свойства коллекции HeadersFooters и класса HeaderFooter.

Свойства – верхний колонтитул в ворде

Application — Возвращает объект Application, представляющий приложение Microsoft Word.

Count – Возвращает количество объектов HeaderFooter, данное значение фиксировано и равно 3, так как можно задать три параметры при добавлении колонтитулов в ворд.

Методы – нижний колонтитул в ворде

Item (index) – Позволяет получить доступ к объекту HeaderFooter по его номеру в коллекции.

Index – Данный параметр содержит значения константы WdHeaderFooterIndex:

  • wdHeaderFooterEvenPages — 3 — Все к-тулы, даже на пронумерованных статьях.
  • wdHeaderFooterFirstPage — 2 — Первый к-тул в документе или разделе.

Тут стоит дать некоторое пояснение…. Если вы хотите добавить колонтитулы в Word на все страницы, то для параметра index указывайте значение 3. Если вы хотите создать колонтитулы в ворд индивидуально для четных и нечетных, то указывайте значение 1 для нечетных и 3 для четных, предварительно, нужно использовать свойство OddAndEvenPagesHeaderFooter объекта PageSetup . Если вы хотите указать Word колонтитул только для первой страницы раздела, то используйте значение 2, прописав перед этим свойство DifferentFirstPageHeaderFooter объекта PageSetup .

Объект HeaderFooter содержит в своем арсенале только свойства.

Свойства – работа с колонтитулами в Word

Application — Возвращает объект Application, представляющий приложение Microsoft Word.

Exists – Значение true, если указанный объект HeaderFooter существует. Чтение и запись.

Index – Свойство возвращает значение константы WdHeaderFooterIndex (смотрите выше), которая представляет указанный Word колонтитул в документе или разделе. Только чтение.

IsHeader – Значение true, если указанный HeaderFooter является верхним колонтитулом в ворде и значение false – если нижним колонтитулом в ворде. Только чтение.

LinkToPrevious — Значение true, если указанный колонтитул в Word связан с соответствующим к-тулом в предыдущем разделе. Чтение и запись.

PageNumbers — Возвращает коллекцию PageNumbers, которая представляет все номера страницы, входящие в указанный верхний или нижний колонтитул в ворд.

Range — Возвращает объект Range, представляющий часть документа, которая содержится в указанных колонтитулах Word.

Shapes — Возвращает коллекцию Shapes, представляющую все объекты Shape в нижнем или верхнем колонтитуле в ворд.

Хорошо, теперь, как я и обещал, мы рассмотрим два сценария на языке VBScript и JScript сервера сценариев Windows Script Host, а после, я дам пояснения того, как они работают.

Пример на языке VBSCRIPT:

Пример на языке JSCRIPT:

В данных примерах все довольно просто, мы создаем новый документ, добавляем в него текст и создаем колонтитулы в Word для четных, нечетных страниц и для первой страницы. Обратите внимание, что через свойство Range мы получаем доступ к остальным классам, которые позволяют вставить текст. При желании, вы можете усложнить программный код, добавив выравнивание текста и прочие параметры форматирования.

Спасибо за внимание. Автор блога Владимир Баталий

Советую ещё почитать:

  • Коллекция Word PageNumbers и объекты PageNumber — нумерация страниц в ворде
  • В ожидании повышения посещаемости сайта и роста позиций.
  • VBScript: Остановка процесса из командной строки
  • Пример скрипта «Электронные часы»
  • Spiro – ещё один графический онлайн редактор для рисования

Всем привет, с вами автор блога scriptcoding.ru. В данной статье мы рассмотрим коллекцию HeadersFooters и ее объекты HeaderFooter, которые отвечают за редактирование или создание колонтитулов в Word документе.

Важной особенностью при работе с коллекцией HeadersFooters является то, что она содержит в себе не количество классов HeadersFooter для каждой страниц (то есть, если у нас 30 статей в разделе, то это не означает, что у нас 30 колонтитулов в ворде), а количество возможных параметров при работе с колонтитулами в Word, поясню….

В самом документе мы можем вставить верхний колонтитул в ворде или нижний колонтитул в ворде, которые будет отображаться на всех страницах, это понятно. Далее, мы можем указать, что бы для четных и нечетных отображались разные колонтитулы. И, мы можем указать индивидуальный колонтитул для первой страницы Word.

Для доступа к коллекции HeadersFooters используются свойства Headers или Footers, которые указывают: с верхним или с нижним колонтитулом в ворде мы хотим работать. Данные свойства есть у объекта Section, который позволяет обрабатывать нужный раздел. Напомню, что в документ можно вставить несколько разделов, которые будут содержать статьи, обрабатываемые в индивидуальном порядке.

  • Если мы хотим указать, что нужно создавать разные колонтитулы в Word для четных и нечетных, то свойству OddAndEvenPagesHeaderFooter объекта PageSetup нужно присвоить значение true.
  • Если надо создать колонтитул в ворде, который будет уникальным для первой статьи, то свойству DifferentFirstPageHeaderFooter объекта PageSetup присваивается значение true.

Сам процесс создания верхних и нижних колонтитулов в документе Word я рассмотрю в конце статьи, а пока, рассмотрим методы и свойства коллекции HeadersFooters и класса HeaderFooter.

Содержание

  1. Коллекция HeadersFooters — колонтитулы в ворде
  2. Свойства – верхний колонтитул в ворде
  3. Методы – нижний колонтитул в ворде
  4. Класс HeaderFooter – колонтитулы в Word
  5. Свойства – работа с колонтитулами в Word

Свойства – верхний колонтитул в ворде

колонтитулы в документе ворд

Application— Возвращает объект Application, представляющий приложение Microsoft Word.

Count– Возвращает количество объектов HeaderFooter, данное значение фиксировано и равно 3, так как можно задать три параметры при добавлении колонтитулов в ворд.

Методы – нижний колонтитул в ворде

колонтитулы в документе word

Item(index) – Позволяет получить доступ к объекту HeaderFooter по его номеру в коллекции.

Index – Данный параметр содержит значения константы WdHeaderFooterIndex:

  • wdHeaderFooterEvenPages — 3 — Все к-тулы, даже на пронумерованных статьях.
  • wdHeaderFooterFirstPage — 2 — Первый к-тул в документе или разделе.
  • wdHeaderFooterPrimary — 1 — Возвращает к-тулы на всех, кроме первой страницы документа или раздела.

Тут стоит дать некоторое пояснение…. Если вы хотите добавить колонтитулы в Word на все страницы, то для параметра index указывайте значение 3. Если вы хотите создать колонтитулы в ворд индивидуально для четных и нечетных, то указывайте значение 1 для нечетных и 3 для четных, предварительно, нужно использовать свойство OddAndEvenPagesHeaderFooter объекта PageSetup. Если вы хотите указать Word колонтитул только для первой страницы раздела, то используйте значение 2, прописав перед этим свойство DifferentFirstPageHeaderFooter объекта PageSetup.

Объект HeaderFooter содержит в своем арсенале только свойства.

Свойства – работа с колонтитулами в Word

нижний верхний колонтитулы в документе ворде

Application— Возвращает объект Application, представляющий приложение Microsoft Word.

Exists– Значение true, если указанный объект HeaderFooter существует. Чтение и запись.

Index– Свойство возвращает значение константы WdHeaderFooterIndex(смотрите выше), которая представляет указанный Word колонтитул в документе или разделе. Только чтение.

IsHeader– Значение true, если указанный HeaderFooter является верхним колонтитулом в ворде и значение false – если нижним колонтитулом в ворде. Только чтение.

LinkToPrevious— Значение true, если указанный колонтитул в Word связан с соответствующим к-тулом в предыдущем разделе. Чтение и запись.

PageNumbers— Возвращает коллекцию PageNumbers, которая представляет все номера страницы, входящие в указанный верхний или нижний колонтитул в ворд.

Range— Возвращает объект Range, представляющий часть документа, которая содержится в указанных колонтитулах Word.

Shapes— Возвращает коллекцию Shapes, представляющую все объекты Shape в нижнем или верхнем колонтитуле в ворд.

Хорошо, теперь, как я и обещал, мы рассмотрим два сценария на языке VBScript и JScript сервера сценариев Windows Script Host, а после, я дам пояснения того, как они работают.

верхний и нижний колонтитулы в документе ворд

Пример на языке VBSCRIPT:

' ----------------------------------------------------------------------------
' Коллекция HeadersFooters и классы HeaderFooter
' Колонтитулы в Word
' HeadersFooters.vbs
' ----------------------------------------------------------------------------
Option Explicit
 
dim oWord, oDoc, oSel, i, MyText
 
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents
oDoc.Add()
oWord.Visible = true
Set oSel = oWord.Selection
 
MyText = "Колонтитулы в ворде. "
 
For i=0 to 40
    oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText
    oSel.TypeParagraph
Next
 
With oDoc(1).Sections(1)
    .PageSetup.OddAndEvenPagesHeaderFooter = true                                              ' Различные колонтитулы в Word для четных и нечетных
    .PageSetup.DifferentFirstPageHeaderFooter = true                                                ' Уникальный колонтитул в Word для первой страницы
 
    '-------------------------------------------------------------------------------------------
    ' верхний и нижний колонтитулы в ворде для четных
    '-------------------------------------------------------------------------------------------
    .Headers(3).Range.Text = "Заголовок – четные1, 2,4,6....."
    .Footers(3).Range.Text = "Футер – четные1, 2,4,6....."
    '-------------------------------------------------------------------------------------------
 
    '-------------------------------------------------------------------------------------------
    ' нижний и верхний колонтитулы в ворде для нечетных
    '-------------------------------------------------------------------------------------------
    .Headers(1).Range.Text = "Заголовок – нечетные1, 1,3,5....."
    .Footers(1).Range.Text = "Футер – нечетные1, 1,3,5....."
    '-------------------------------------------------------------------------------------------
 
    '-------------------------------------------------------------------------------------------
    ' Верхний и нижний колонтитулы в Word для первой страницы
    '-------------------------------------------------------------------------------------------
    .Headers(2).Range.Text = "Заголовок"
    .Footers(2).Range.Text = "Футер"
    '-------------------------------------------------------------------------------------------
End With

Пример на языке JSCRIPT:

// ----------------------------------------------------------------------------
// Коллекция HeadersFooters и классы HeaderFooter
// Колонтитулы в Word
// HeadersFooters.js
// ----------------------------------------------------------------------------
var oWord1, oDoc1, oSel1, i, MyText1;
 
oWord1 = WScript.CreateObject("Word.Application");
oDoc1 = oWord1.Documents;
oDoc1.Add();
oWord1.Visible = true;
oSel1 = oWord1.Selection;
 
MyText1 = "Колонтитулы в ворде. ";
 
for(i=0; i<=40; i++){
    oSel1.TypeText(MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1);
    oSel1.TypeParagraph();
}
 
with(oDoc1(1).Sections(1)){
    PageSetup.OddAndEvenPagesHeaderFooter = true                                   // Различные колонтитулы в Word для четных и нечетных
    PageSetup.DifferentFirstPageHeaderFooter = true                                      // Уникальный колонтитул в Word для первой страницы
 
    //-------------------------------------------------------------------------------------------
    // верхний и нижний колонтитулы в ворде для четных
    //-------------------------------------------------------------------------------------------
    Headers(3).Range.Text = "Заголовок – четные1, 2,4,6....."
    Footers(3).Range.Text = "Футер – четные1, 2,4,6....."
    //-------------------------------------------------------------------------------------------
 
    //-------------------------------------------------------------------------------------------
    // нижний и верхний колонтитулы в ворде для нечетных
    //-------------------------------------------------------------------------------------------
    Headers(1).Range.Text = "Заголовок – нечетные1, 1,3,5....."
    Footers(1).Range.Text = "Футер – нечетные1, 1,3,5....."
    //-------------------------------------------------------------------------------------------
 
    //-------------------------------------------------------------------------------------------
    // Верхний и нижний колонтитулы в Word для первой страницы
    //-------------------------------------------------------------------------------------------
    Headers(2).Range.Text = "Заголовок"
    Footers(2).Range.Text = "Футер"
    //-------------------------------------------------------------------------------------------
}

В данных примерах все довольно просто, мы создаем новый документ, добавляем в него текст и создаем колонтитулы в Word для четных, нечетных страниц и для первой страницы. Обратите внимание, что через свойство Range мы получаем доступ к остальным классам, которые позволяют вставить текст. При желании, вы можете усложнить программный код, добавив выравнивание текста и прочие параметры форматирования.

Понравилась статья? Поделить с друзьями:
  • Макрос для колонтитула excel
  • Макрос для изменения размера рисунков в word
  • Макрос для изменения размера рисунка в word
  • Макрос для изменения значения в ячейке excel
  • Макрос для защиты всех листов книги excel