I have created a macro to number the pages of a book according to publishing convention:
- The preliminaries (section 1 of the file) is numbered by Roman numerals (i, ii, iii...x)
- Sections 2 to x are numbered by Arabic numerals (1,2,3...500)
- The first page of each section is unnumbered
The file is divided into 15 sections, and different rules applied to the footers for section 1, section 2 (which switches from Roman to Arabic numbers
and has the first page unnumbered), and the remaining sections (where each first page must be unnumbered).
The trouble is that this code produces two {PAGE} fields in the footer to each section. Where is this field being created and how do I stop it?
Code:
Sub CreatePageRefs()
Application.ScreenUpdating = False
Dim rng As Word.Range, Sec As Word.Section, ft As Word.HeaderFooter
Set Sec = ActiveDocument.Sections(1) 'The first section, in Roman (i, ii, iii)
Set ft = Sec.Footers(wdHeaderFooterPrimary)
Set rng = ft.Range
With ft.PageNumbers
.NumberStyle = wdPageNumberStyleLowercaseRoman
.RestartNumberingAtSection = True
.StartingNumber = 1
.ShowFirstPageNumber = False
End With
rng.Style = wdStyleFooter
rng.ParagraphFormat.Alignment = wdAlignParagraphCenter
rng.Collapse wdCollapseEnd
rng.Fields.Add Range:=rng, Type:=wdFieldPage
Set Sec = ActiveDocument.Sections(2) 'The second section,
'switch to Arabic numbering (1,2,3)
Set ft = Sec.Footers(wdHeaderFooterPrimary)
Set rng = ft.Range
ft.LinkToPrevious = False
With ft.PageNumbers
.NumberStyle = wdPageNumberStyleArabic
.RestartNumberingAtSection = True
.StartingNumber = 1
.ShowFirstPageNumber = False
End With
Dim numOfSections As Integer
numOfSections = ActiveDocument.Sections.Count
For i = 3 To numOfSections 'All remaining sections
' -- restart so that first page number set to "False"
Set Sec = ActiveDocument.Sections(i)
Set ft = Sec.Footers(wdHeaderFooterPrimary)
ft.LinkToPrevious = False
Set rng = ft.Range
With ft.PageNumbers
.NumberStyle = wdPageNumberStyleArabic
.RestartNumberingAtSection = False
.StartingNumber = 1
.ShowFirstPageNumber = False
End With
Next
End Sub
This code produces two center aligned fields {PAGE} and {PAGE \* MERGEFORMAT } in section 1. In the remaining sections, {PAGE} is right aligned, and {PAGE \* MERGEFORMAT } is centered. In all cases, I want just one, center-aligned {PAGE} field.