Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 423
  • Last Modified:

Insert formatted blank page before section break?

While Word will put a blank page before a break so the next section starts on an odd page, I do not see a way to have a "blank" page have header/footer and phrase "This page intentionally left blank".  I'm working on a macro, but no luck yet.
1 Solution
michaelv071198Author Commented:
Why do I need this? The normal blank page works fine if manuals are double-sided, but I get questions about missing pages if distributed as one-sided so people can make copies.  I used to manually put in the "intentionally left blank" phase as needed, but it adds a lot of proofing time since they always jumped around during editting.
I use to run a macro in word 5 to do something similar in that I had a standard header that used sheet numbering within chapter/section etc. I had a macro that I used on that but I found that it was easiest to apply it after writing the document. what I used to do was have the macro insert a Page Break & 'key phrase or character string' with the text I wanted but have that key phrase set to hidden. On editing when the macro was run it would remove all pages from the document that had the key phrase and then start from the beginning of the document inserting new pages with the key phrase and text just before a change of section. I no longer used Word 5 so I have lost the MACRO, but the principle is still valid and it should be possible to  write the same in the latest versions.
Here are the macro "InsertDocPrint" that you can use:

Sub InsertDocPrint()
Dim prtDoc As Document
Dim tmpDoc As Document
Dim tmpDocFooter As Range
Dim prtDlg As Dialog
Dim numPage As Long
Dim page As Long
Dim emptyPage As Long

Set prtDoc = ActiveDocument
Set prtDlg = Dialogs(wdDialogFilePrint)
Set tmpDoc = ActiveDocument
tmpDoc.Content.InsertAfter "This page is intentionally left blank"
Set tmpDocFooter = tmpDoc.Sections.First.Footers(wdHeaderFooterPrimary).Range
tmpDocFooter.ParagraphFormat.Alignment = wdAlignParagraphCenter

On Error GoTo Reset
Application.ScreenUpdating = False

numPage = prtDoc.Content.Information(wdNumberOfPagesInDocument)

page = 1
  emptyPage = EvenEmptyPage(page + 1, numPage)
  If emptyPage = 0 Then
    page = numPage + 1
    With prtDlg
      .Pages = Str$(page) & "-" & Str$(emptyPage - 1)
    End With
    tmpDocFooter.Text = "Page " & Str$(emptyPage) & " of " & Str$(numPage)
    page = emptyPage + 1
  End If
Loop While page <= numPage

tmpDoc.Close wdDoNotSaveChanges

Set tmpDoc = Nothing
Set tmpDocFooter = Nothing
Set prtDoc = Nothing
Set prtDlg = Nothing

  Application.ScreenUpdating = True
End Sub

Private Function EvenEmptyPage(ByVal startPage As Long, numPage As Long) As Long
  Dim startRange As Range
  Dim endRange As Range
  Dim pageRange As Range
  Dim evenPageNumber As Long
  Dim found As Boolean
  If (startPage Mod 2) = 1 Then
    startPage = startPage + 1
  End If
  If startPage > numPage Then
    EvenEmptyPage = 0
    Exit Function
  End If
  found = False
    Set startRange = ActiveDocument.GoTo(wdGoToPage, wdGoToAbsolute, startPage)
    Set endRange = ActiveDocument.GoTo(wdGoToPage, wdGoToAbsolute, startPage + 1)
    Set pageRange = ActiveDocument.Range(startRange.Start, endRange.End)
    If Len(pageRange.Text) = 0 Then
      found = True
      startPage = startPage + 2
    End If
  Loop While (startPage <= numPage) And Not found
  If found Then
    evenPageNumber = startPage
    evenPageNumber = 0
  End If
  Set startRange = Nothing
  Set endRange = Nothing
  Set pageRange = Nothing
  EvenEmptyPage = evenPageNumber
End Function
The idea is check for empty even page, then print an empty document with the note: "This page is intentionally left blank"

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now