Returning an Object from a Collection

Microsoft Word Visual Basic

Show All

Returning an Object from a Collection

   

The Item method returns a single object from a collection. The following example sets the firstDoc variable to a Document object that represents the first document in the Documents collection.

Sub SetFirstDoc()
    Dim docFirst As Document
    Set docFirst = Documents.Item(1)
End Sub

The Item method is the default method for most collections, so you can write the same statement more concisely by omitting the Item keyword.

Sub SetFirstDoc()
    Dim docFirst As Document
    Set docFirst = Documents(1)
End Sub

Named Objects

Although you can usually specify an integer value with the Item method, it may be more convenient to return an object by name. The following example switches the focus to a document named Sales.doc.

Sub ActivateDocument()
    Documents("Sales.doc").Activate
    MsgBox ActiveDocument.Name
End Sub

The following example selects the text marked by the first bookmark in the active document.

Sub SelectBookmark()
    ActiveDocument.Bookmarks(1).Select
    MsgBox Selection.Text
End Sub

Not all collections can be indexed by name. To determine the valid collection index values, see the collection object topic.

Predefined Index Values

Some collections have predefined index values you can use to return single objects. Each predefined index value is represented by a constant. For example, you specify an WdBorderType constant with the Borders property to return a single Border object.

The following example adds a single 0.75 point border below the first paragraph in the selection.

Sub AddBorderToFirstParagraphInSelection()
    With Selection.Paragraphs(1).Borders(wdBorderBottom)
        .LineStyle = wdLineStyleSingle
        .LineWidth = wdLineWidth300pt
        .Color = wdColorBlue
    End With
End Sub