Editing Text
This topic includes Visual Basic examples related to the following tasks:
- Determining whether text is selected
- Collapsing a selection or range
- Extending a selection or range
- Redefining a Range object
- Changing text
For information about and examples of other editing tasks, see the following topics:
Returning text from a document
Manipulating a portion of a document
Determining whether text is selected
The Type property of the Selection object returns information about the type of selection. The following example displays a message if the selection is an insertion point.
Sub IsTextSelected()
If Selection.Type = wdSelectionIP Then MsgBox "Nothing is selected"
End Sub
Collapsing a selection or range
Use the Collapse method to collapse a Selection or Range object to it's beginning or ending point. The following example collapses the selection to an insertion point at the beginning of the selection.
Sub CollapseToBeginning()
Selection.Collapse Direction:=wdCollapseStart
End Sub
The following example cancels the range to it's ending point (after the first word) and adds new text.
Sub CollapseToEnd()
Dim rngWords As Range
Set rngWords = ActiveDocument.Words(1)
With rngWords
.Collapse Direction:=wdCollapseEnd
.Text = "(This is a test.) "
End With
End Sub
Extending a selection or range
The following example uses the MoveEnd method to extend the end of the selection to include three additional words. The MoveLeft, MoveRight, MoveUp, and MoveDown methods can also be used to extend a Selection object.
Sub ExtendSelection()
Selection.MoveEnd Unit:=wdWord, Count:=3
End Sub
The following example uses the MoveEnd method to extend the range to include the first three paragraphs in the active document.
Sub ExtendRange()
Dim rngParagraphs As Range
Set rngParagraphs = ActiveDocument.Paragraphs(1).Range
rngParagraphs.MoveEnd Unit:=wdParagraph, Count:=2
End Sub
Redefining a Range object
Use the SetRange method to redefine an existing Range object. For more information, see Working with Range objects.
Changing text
You can change existing text by changing the contents of a range. The following instruction changes the first word in the active document by setting the Text property to "The."
Sub ChangeText()
ActiveDocument.Words(1).Text = "The "
End Sub
You can also use the Delete method to delete existing text and then insert new text using the InsertAfter or InsertBefore method. The following example deletes the first paragraph in the active document and inserts new text.
Sub DeleteText()
Dim rngFirstParagraph As Range
Set rngFirstParagraph = ActiveDocument.Paragraphs(1).Range
With rngFirstParagraph
.Delete
.InsertAfter Text:="New text"
.InsertParagraphAfter
End With
End Sub