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
andwdGoToPage
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
andMoveRight
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.