Selection Object

See Also         Properties         Methods        

Multiple objects
Selection object
Multiple objects

Represents the selection in a window pane. The selection can either encompass an area in the document or be collapsed to an insertion point.

Note   There can only be one Selection object per document window pane and only one Selection object can be active.

Using the Selection Object

Use the Selection property to return the Selection object. The following example collapses the selection (if necessary) and moves the insertion point to the end of the current line.

Selection.EndKey Unit:=wdLine, Extend:=wdMove

The following example updates the results of the fields in the selection.

If Selection.Fields.Count >= 1 Then Selection.Fields.Update

Use the Type property to return the selection type (for example, a block selection or an insertion point). The following example selects the current paragraph if the selection is an insertion point.

If Selection.Type = wdSelectionIP Then
    Selection.Paragraphs(1).Range.Select
End If

Use the Information property to return information about the selection. If the selection is in a table, the following example displays the number or rows and columns in the table.

If Selection.Information(wdWithInTable) = True Then
    MsgBox "Columns = " _
        & Selection.Information(wdMaximumNumberOfColumns) _
        & vbCr & "Rows = " _
        & Selection.Information(wdMaximumNumberOfRows)
End If

Use the Select method to select an item in a document. The following example selects the first bookmark in the active document and formats it to appear in red.

If ActiveDocument.Bookmarks.Count >= 1 Then
    ActiveDocument.Bookmarks(1).Select
    Selection.Font.ColorIndex = wdRed
End If

The Selection object also includes various methods you can use to expand or move an existing selection. For example, the MoveDown method has an Extend argument that you can set to wdExtend. The following example selects the next three paragraphs in the active window.

With Selection
    .StartOf Unit:=wdParagraph, Extend:=wdMove
    .MoveDown Unit:=wdParagraph, Count:=3, Extend:=wdExtend
End With

Remarks

Use the Range property to return a Range object from the Selection object. The following example defines the variable myRange as the selected range.

Set myRange = Selection.Range

When you record macros, the macro recorder will often record changes to the Selection object. The following recorded macro applies bold formatting to the first two words in the document, and then inserts a new paragraph.

Selection.HomeKey Unit:=wdStory
Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend
Selection.Font.Bold = wdToggle
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeParagraph

The following example accomplishes the same task as the preceding example, but without using the Selection object.

Set myRange = ActiveDocument.Range(Start:=0, _
    End:=ActiveDocument.Words(2).End)
myRange.Bold = True
myRange.InsertParagraphAfter

There can be only one Selection object per window pane; however, you can have multiple Range objects defined in a single document. A Range object represents an document area that may or may not be selected. Working with Range objects, you can manipulate a document with minimal screen updates. For more information, see Working with Range objects.