How to print list of bookmarks in Word document?
Have you ever tried to print a list of bookmarks in a Word document? Here we will show you methods to achieve it.
Extract all bookmarks and print with VBA
Directly print all bookmarks with VBA
Extract all bookmarks and print with VBA
The below VBA code will help to list all bookmarks from current document to a new one, and you can manually print the extracted bookmarks as you need. Please do as follows.
1. Open the document you will print the bookmarks, press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module, then copy below code into the Module window.
VBA code: Extract all bookmarks to a new document
Sub ExtractBookmarksInADoc()
'Updated by Extendoffice 20181123
Dim xRow As Long
Dim xTable As Table
Dim xDoc As Document
Dim xBookMark As Bookmark
Dim xBookMarkDoc As Document
Dim xParagraph As Paragraph
Set xDoc = ActiveDocument
If xDoc.Bookmarks.Count = 0 Then
MsgBox "There is no bookmark in this document", vbInformation, "KuTools for Word"
Exit Sub
End If
Set xBookMarkDoc = Documents.Add
xRow = 1
Selection.TypeText "BookMarks in " & "'" & xDoc.Name & "'"
Set xTable = Selection.Tables.Add(Selection.Range, 1, 3)
xTable.Borders.Enable = True
With xTable
.Cell(xRow, 1).Range.Text = "Name"
.Cell(xRow, 2).Range.Text = "Texts"
.Cell(xRow, 3).Range.Text = "Page Number"
For Each xBookMark In xDoc.Bookmarks
xTable.Rows.Add
xRow = xRow + 1
.Cell(xRow, 1).Range.Text = xBookMark.Name
.Cell(xRow, 2).Range.Text = xBookMark.Range.Text
.Cell(xRow, 3).Range.Text = xBookMark.Range.Information(wdActiveEndAdjustedPageNumber)
xDoc.Hyperlinks.Add Anchor:=.Cell(xRow, 3).Range, Address:=xDoc.Name, _
SubAddress:=xBookMark.Name, TextToDisplay:=.Cell(xRow, 3).Range.Text
Next
End With
xBookMarkDoc.SaveAs xDoc.Path & "\" & "Bookmarks in " & xDoc.Name
End Sub
3. Press the F5 key to run the code.
Then a new document is created automatically with all bookmarks of specified document listing inside.
4. You can click File > Print to print the list of extracted bookmarks as you need.
Directly print all bookmarks with VBA
If you want to directly print all bookmarks in current document, please do as follows.
1. Open the document you will print the bookmarks, press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module, then copy below code into the Module window.
VBA code: Print all bookmarks in a document
Sub ExtractBookmarksInADoc()
'Updated by Extendoffice 20181123
Dim xRow As Long
Dim xTable As Table
Dim xDoc As Document
Dim xBookMark As Bookmark
Dim xBookMarkDoc As Document
Dim xParagraph As Paragraph
On Error Resume Next
Set xDoc = ActiveDocument
If xDoc.Bookmarks.Count = 0 Then
MsgBox "There is no bookmark in this document", vbInformation, "KuTools for Word"
Exit Sub
End If
Set xBookMarkDoc = Documents.Add
xRow = 1
Selection.TypeText "BookMarks in " & "'" & xDoc.Name & "'"
Set xTable = Selection.Tables.Add(Selection.Range, 1, 3)
xTable.Borders.Enable = True
With xTable
.Cell(xRow, 1).Range.Text = "Name"
.Cell(xRow, 2).Range.Text = "Texts"
.Cell(xRow, 3).Range.Text = "Page Number"
For Each xBookMark In xDoc.Bookmarks
xTable.Rows.Add
xRow = xRow + 1
.Cell(xRow, 1).Range.Text = xBookMark.Name
.Cell(xRow, 2).Range.Text = xBookMark.Range.Text
.Cell(xRow, 3).Range.Text = xBookMark.Range.Information(wdActiveEndAdjustedPageNumber)
xDoc.Hyperlinks.Add Anchor:=.Cell(xRow, 3).Range, Address:=xDoc.Name, _
SubAddress:=xBookMark.Name, TextToDisplay:=.Cell(xRow, 3).Range.Text
Next
End With
xBookMarkDoc.SaveAs xDoc.Path & "\" & "Bookmarks in " & xDoc.Name
xBookMarkDoc.PrintOut
xBookMarkDoc.Close
Kill xBookMarkDoc.Path
End Sub
3. Press the F5 key to print the bookmarks directly.
Recommended Word Productivity Tools
Kutools For Word - More Than 100 Advanced Features For Word, Save Your 50% Time
- Complicated and repeated operations can be done one-time processing in seconds.
- Insert multiple images across folders into Word document at once.
- Merge and combine multiple Word files across folders into one with your desired order.
- Split the current document into separate documents according to heading, section break or other criteria.
- Convert files between Doc and Docx, Docx and PDF, collection of tools for common conversions and selection, and so on...