Microsoft

How to create and use Word bookmarks to navigate a long document

A long or complex document can be difficult to navigate. Susan Harkins explains how Word's bookmarks can help.

Word bookmarks

Bookmarks identify text so you can quickly navigate to a specific spot instead of scrolling through several paragraphs or pages. While they're convenient to use sporadically, steady use can become tedious because there are so many keystrokes to using one.

Ultimately, bookmarks are much more than a navigation tool, because you can use them as links or references. In this article, we'll review their use for navigating a document. You can create bookmarks in most any Word document, or you can download the demonstration .docm if you'd like to follow along with an example file.

Before you begin

Don't try to insert bookmarks as you enter text and other objects. Most documents change quite a bit from their inception to completion. For that reason, you should wait until the document is complete, more or less, before inserting navigational bookmarks. Otherwise, you might find yourself moving, duplicating, or even deleting bookmarks unintentionally as you modify the document's text.

If you find you must move bookmarked text, keep the following behaviors in mind:

  • If you copy all or part of a bookmarked text (or object) within the same document, the bookmark remains with the original text. The copied text isn't bookmarked.
  • If you copy bookmarked text or an object in its entirety to another document, both documents will be bookmarked.
  • If you move bookmarked text within the same document, the bookmark moves with the text.
  • If you delete part of bookmarked text, Word won't delete the bookmark.

If you forget where your bookmarks are, you can display a visual clue as follows:

  1. Click the File tab (or Office button).
  2. Choose Options (or click Word Options).
  3. In the left pane, choose Advanced.
  4. In the Show document content section, check Show bookmarks (Figure A).
    Figure A
    Figure A
  5. Click OK.

Word will enclose bookmarked text in a set of brackets. You probably won't want to display these brackets in the final document, but turning on the display while completing the document is helpful.

Inserting bookmarks

Deciding where to insert the bookmarks shouldn't be difficult if the document is mostly done. Consider how you and your users will actually use the document. The process for inserting a bookmark is simple:

  1. Click where you want to add the bookmark. If you select text, select the smallest string that makes sense. It's okay to select a word or heading, but it's probably not a great idea to bookmark an entire paragraph.
  2. Click the Insert tab.
  3. Click Bookmark in the Links group.
  4. In the resulting dialog, give the bookmark a name. Use only letters and numbers with no spaces (Figure B).
    Figure B
    Figure B
  5. Click Add.

Figure C shows the bookmark. If you didn't enable the view for your document earlier, you won't see the brackets.

Figure C

Figure C

If you check the right option, Word will display bookmarks.

Using a bookmark

After inserting bookmarks, you can then use them to quickly move to other areas of the document. To use the bookmark in this way, do the following:

  1. Click the Insert tab and choose Bookmark from the Links group.
  2. In the resulting dialog, select the bookmark you want to move to (Figure D).
    Figure D
    Figure D
  3. Click Go To.
  4. Click Close.

Inserting bookmarks takes a few clicks, but it's easy. Once they're in place, you're done. On the other hand, moving to a bookmark might be a task you perform often. Even though doing so requires only a few clicks, it'll become tedious.

Hyperlink instead

One possible alternative to tedious bookmark clicking is to use a hyperlink instead. You're probably familiar with hyperlinks, but you might not realize that Word will let you create them to navigate long documents. Users won't have to travel through the interface to use them — they'll just click the link.

The downside is the placement. Instead of choosing a bookmark from a list of bookmarks, you'll have only the hyperlink to click — users must be in that spot to utilize it. Still, in most documents, it's a useful navigational tool.

You can use existing text (which is the best option, when available) or enter text specifically to create a hyperlink. To create a hyperlink, find text that references the area you want the hyperlink to link to, or add text and select it. For this example, I added a heading for Buttons and selected it. Next, add the hyperlink as follows:

  1. Click the Insert tab.
  2. In the Links group, choose Hyperlink.
  3. In the resulting dialog, click the Place In This Document shortcut on the left.
  4. If you're using Word's built-in heading styles, you can link to one of those. In this case, link to the bookmark we created earlier, ButtonReference (Figure E).
    Figure E
    Figure E
  5. Click OK.

When you click the hyperlinked text (at the beginning of the document), Word selects the bookmarked text new buttons. It's a helpful addition, but if you're nowhere near the hyperlink when you decide to review the new buttons paragraph, the hyperlink doesn't help.

A macro

If your document contains several bookmarks, referring to them will become tedious. Offering a macro that displays a list of bookmarks that the user can then select is more efficient. Listing A includes several sub and function procedures that your users can run as a macro. It will display a UserForm that lists all of the document's bookmarks. The user simply selects a bookmark from the list to select that bookmark. I recommend that you add the macro to the Quick Access Toolbar (QAT) for even quicker access. That's where Listing B comes in. While in the VBA, insert a module and add this short procedure.

Don't attempt to copy and paste the code from this article into the UserForm's module because the VBE will object to web characters. Instead, download the demonstration .docm file or frmSelectBookmark.frm. If you want to import the UserForm yourself, you can by using the instructions that follow:

  1. Press [Alt]+[F11] to open the VBE.
  2. Select UserForm from the Insert menu. Name it frmSelectBookmark.
  3. Using Figure F as a guide, add the following controls:
    Controls

    Figure F
    Figure F
  4. Double-click the UserForm to open its module and enter the code in Listing A. (If you copy the code from the web page into a Word document and then copy that code into the module, it might work, but I can't guarantee it.)
  5. Insert a module by selecting Module from the Insert menu.
  6. Enter the code in Listing B.
  7. Return to the document and save it as a macro-enabled document (if necessary).

Listing A

Option Explicit
Private m_gotoInProgress As Boolean
' Load bookmarks on bookmarks selection form activation.
Private Sub UserForm_Activate()
Dim bmk As Bookmark
    lstBookmarks.Clear
    For Each bmk In ActiveDocument.Bookmarks
       lstBookmarks.AddItem (bmk.Name)
    Next bmk
    txtBookmarkName.SetFocus
End Sub
' Select bookmark using quick selection textbox.
Private Sub txtBookmarkName_Change()
    If (Not isNullOrEmpty(txtBookmarkName.Text)) Then
        Dim bmkName As Variant
        Dim listIndex As Integer
        listIndex = -1
        For Each bmkName In lstBookmarks.List
           listIndex = listIndex + 1
           If (Len(bmkName) >= Len(txtBookmarkName.Text)) Then
              If (UCase(Left(bmkName, Len(txtBookmarkName.Text))) = UCase(txtBookmarkName.Text)) Then
                 lstBookmarks.Selected(listIndex) = True
                Exit For
              End If
           End If
        Next bmkName
    End If
End Sub
' Check if a string is null or empty.
Private Function isNullOrEmpty(ByVal s As String)
    If (IsNull(s)) Then
        isNullOrEmpty = True
    ElseIf (Len(s) = 0) Then
        isNullOrEmpty = True
    End If
End Function
' Process [Enter] and [Esc] keys for quick selection textbox.
Private Sub txtBookmarkName_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   Debug.Print KeyCode
   If (KeyCode = 13) Then    ' Enter
      m_gotoInProgress = True
      cmdGoto_Click
   ElseIf (KeyCode = 27) Then ' Esc
      cmdCancel_Click
   End If
End Sub
' Go to selected bookmark.
Private Sub cmdGoto_Click()
    On Error GoTo cmdGoTo_Click_Finally
    If (IsNull(lstBookmarks.listIndex)) Then
        MsgBox "There is no any bookmarks selected", vbExclamation + vbOKOnly, "Warning"
        Return
    End If
    Selection.GoTo What:=wdGoToBookmark, Name:=lstBookmarks.List(lstBookmarks.listIndex)
cmdGoTo_Click_Finally   
     If (m_gotoInProgress) Then
         m_gotoInProgress = False
         DoEvents
         txtBookmarkName.SetFocus
    End If
End Sub
' Close bookmarks selection form.
Private Sub cmdCancel_Click()
    Me.Hide
End Sub

Listing B

Public Sub ShowBookmarksSelectionForm()
    frmSelectBookmark.Show
End Sub

Your users could run the macro as is, but it'll be more convenient if you add it to the QAT as follows:

  1. Click the QAT drop-down (circled in Figure G), and choose More Commands.
  2. From the Choose commands from drop-down, select Macro.
  3. Select ShowSelectionBookmarksForm (Figure G), and click Add.
    Figure G
    Figure G
  4. Click Close.

Now, you're ready to access all those bookmarks with a few quick clicks. On the QTA, click the new macro button to open the UserForm, shown in Figure H. Select a bookmark, and click the Go To button to quickly access the selected bookmark.

Figure H

Figure H

Quickly display all of a document's bookmarks.

Shamil Salakhetdinov, a freelance software developer in St. Petersburg, Russia submitted the macro I used in this article. You can reach Shamil at mcp2004@mail.ru.

Send me your question about Office

I answer readers' questions when I can, but there's no guarantee. When contacting me, be as specific as possible. For example, "Please troubleshoot my workbook and fix what's wrong" probably won't get a response, but "Can you tell me why this formula isn't returning the expected results?" might. I'm not reimbursed by TechRepublic for my time or expertise, nor do I ask for a fee from readers. You can contact me at susansalesharkins@gmail.com.

About Susan Harkins

Susan Sales Harkins is an IT consultant, specializing in desktop solutions. Previously, she was editor in chief for The Cobb Group, the world's largest publisher of technical journals.

Editor's Picks

Free Newsletters, In your Inbox