Подвійна нумерація сторінок у документі

Виникла необхідність вести в документа дві нумерації сторінок – наскрізну (внизу сторінки) і внутрішню, по розділах, тобто частина номерів сторінок у верхньому і нижньому колонтитулі не збігається – можна це автоматизувати?


Я написав макрос. На жаль, в редакторі Word 2007 макрос хоч і працює, але наскрізна нумерація сторінок не підтримується (в нижньому колонтитулі). Якщо хто-небудь зможе доопрацювати цей макрос для Word 2007, я буду вдячний (не один я, напевно).


Sub twinNumberingPages()”, що складається з розділів:”Верхній колонтитул – номер сторінки у поточному розділі”Нижній колонтитул – наскрізний номер сторінки всього документа”Створений на основі статті Microsoft http://support.microsoft.com/kb/291283″Макрос був Підправлено Steven Graig Miller 09.06.2008 р.
Dim oRange As Range
Dim hfRange As Range
Dim nSections As Long
Dim nIndex As Long
“”Крок 1: Додаємо поля в початок першої сторінки першого розділу
“Set oRange = ActiveDocument.Range (0, 0) “визначаємо початок документа
oRange.Select
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable1 h “, PreserveFormatting:=False
ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
Selection.Move wdCharacter, -1
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSectionPages, PreserveFormatting:=False
Selection.Move wdCharacter, 1
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable2 h 0”, PreserveFormatting:=False
nSections = ActiveDocument.Sections.Count
“”Крок 2: Додаємо два поля в початок кожного розділу окрім 1-го розділу

If nSections > 1 Then
For nIndex = 2 To nSections
Set oRange = ActiveDocument.Sections(nIndex).Range
oRange.Collapse wdCollapseStart
oRange.Select
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable2 h “, PreserveFormatting:=False
Selection.Move wdCharacter, -1
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldExpression, PreserveFormatting:=False
Selection.Move wdCharacter, 3
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable1 c”, PreserveFormatting:=False
Selection.Move wdCharacter, 3
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable1 h “, PreserveFormatting:=False
Selection.Move wdCharacter, -1
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldExpression, Text:=”+”, PreserveFormatting:=False
Selection.Move wdCharacter, 3
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSectionPages, PreserveFormatting:=False
Selection.Move wdCharacter, 3
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable2 c”, PreserveFormatting:=False
Next nIndex
End If
“”Крок 3: Додаємо верхній і нижній колонтитули

ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
Set hfRange = oRange.Sections(1).Headers(wdHeaderFooterPrimary).Range
With hfRange
.Delete. Text = “Сторінка”
.MoveEnd unit:=wdCharacter, Count:=1
.Collapse wdCollapseEnd
oRange.Fields.Add Range:=hfRange, Type:=wdFieldPage
.MoveEnd unit:=wdCharacter, Count:=1
.Collapse wdCollapseEnd. Text = “з”
.MoveEnd unit:=wdCharacter, Count:=1
.Collapse wdCollapseEnd
oRange.Fields.Add Range:=hfRange, Type:=wdFieldSectionPages
End With
Set hfRange = oRange.Sections(1).Footers(wdHeaderFooterPrimary).Range
ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
hfRange.Collapse wdCollapseStart
hfRange.Select
hfRange.Fields.Add Range:=Selection.Range, Type:=wdFieldExpression, Text:=”+”, PreserveFormatting:=False
Selection.Move wdCharacter, 3
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldSequence, Text:=”variable2 c”, PreserveFormatting:=False
Selection.Move wdCharacter, 3
oRange.Fields.Add Range:=Selection.Range, Type:=wdFieldPage, PreserveFormatting:=False
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
“”Крок 4: Встановлюємо формат номерів (нумерація починається з 1 в кожному розділі)

For nIndex = 1 To nSections
With ActiveDocument.Sections(nIndex).Headers(wdHeaderFooterPrimary)
.PageNumbers.NumberStyle = wdPageNumberStyleArabic
.PageNumbers.HeadingLevelForChapter = 0
.PageNumbers.IncludeChapterNumber = False
.PageNumbers.ChapterPageSeparator = wdSeparatorHyphen
.PageNumbers.RestartNumberingAtSection = True
.PageNumbers.StartingNumber = 1
End With
Next nIndex
ActiveDocument.Range(0, 0).SelectActiveWindow.View.Type = wdPrintView “перемикаємося в режим Розмітка сторінки
ActiveWindow.View.Zoom.PageFit = wdPageFitBestFit
End Sub

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*