How to Use VBA to Get to the Beginning and the End of a Microsoft Word Document

819021 How to Use VBA to Get to the Beginning and the End of a Microsoft Word Document

Here is a 1500-word article on “How to Use VBA to Get to the Beginning and the End of a Microsoft Word Document”:

How to Use VBA to Get to the Beginning and the End of a Microsoft Word Document

Introduction

When working with Microsoft Word documents in VBA (Visual Basic for Applications), it is often necessary to navigate to the beginning or end of the document. This allows you to insert content at the start or end, select the entire document contents, or perform other actions related to the document extremities.

VBA provides several methods to accomplish this easily. This article will cover the key concepts and provide code examples to:

  • Move the cursor to the start of a Word document
  • Select all content from the cursor to the beginning
  • Move the cursor to the end of a Word document
  • Select all content from the cursor to the end

Move the Cursor to the Start of a Document

To move the cursor in VBA to the absolute start of the Word document, use the HomeKey method of the Selection object:

Selection.HomeKey Unit:=wdStory

Here wdStory refers to the entire story contents of the document.

So if the cursor is currently at page 5 of a 10 page document, the above code will jump it right back to the beginning of page 1.

Select Content from Cursor to Start of Document

To select all content from the current cursor position to the start of the document, add the Extend parameter to the HomeKey method:

“`vb
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend

This will highlight/select everything from the cursor to the absolute start.

## Move the Cursor to the End of a Document

Jumping to the end of a Word document works similarly using the `EndKey` method:

vb
Selection.EndKey Unit:=wdStory

Again this will move the cursor to the very end, regardless of what page it is currently on.

## Select Content from Cursor to End of Document

To select all content from the cursor to the end, use `Extend` again:

vb
Selection.EndKey Unit:=wdStory, Extend:=wdExtend

This will select/highlight from the current position to the absolute document end.

## Example VBA Code

Below is some example VBA code that utilizes these methods to navigate to the start and end of a document:

vb
Sub NavigateDocEnds()

'Move cursor to start
Selection.HomeKey Unit:=wdStory

'Select from cursor to start
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend

'Move cursor to end
Selection.EndKey Unit:=wdStory 

'Select from cursor to end
Selection.EndKey Unit:=wdStory, Extend:=wdExtend

End Sub
“`

This VBA macro first moves the cursor to the beginning, then selects all content back to the start. Then it moves the cursor to the end, and selects everything from that position to the end.

The result is fully selecting the document contents from start to finish.

Tips

Here are some additional tips when working with navigation in VBA:

  • Use wdGoToLine and wdGoToPage to jump to specific lines and pages
  • Bookmarks can be used to save positions and jump back to them later
  • Methods like MoveUp, MoveDown, MoveLeft and MoveRight navigate relative to the current cursor location

Conclusion

VBA makes navigating to the extremities of a Word document straightforward using the HomeKey and EndKey methods. This allows inserting content at the start/end, selecting the full contents, and other document-edge related operations.

The examples provided here should give you a good starting point for incorporating start/end navigation into your own Word VBA macros.

About The Author