Returning an Object from a Collection (Word)
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
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.
Some collections have predefined index values that you can use to return single objects. Each predefined index value is represented by a constant. For example, you specify a 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