TextRange object (Publisher)

Contains the text that is attached to a shape, in addition to properties and methods for manipulating the text.

Remarks

Use the TextRange property of the TextFrame object to return a TextRange object for any shape that you specify. Use the Text property to return the string of text in the TextRange object.

Use the ShapeRange.HasTextFrame property to determine whether a shape has a text frame, and use the TextFrame.HasText property to determine whether the text frame contains text.

Use the TextRange property of the Selection object to return the currently selected text.

Use one of the following methods to return a portion of the text of a TextRange object: Characters, Lines, Paragraphs, or Words.

Use one of the following methods to insert characters into a TextRange object: InsertAfter, InsertBefore, InsertDateTime, InsertPageNumber, or InsertSymbol.

Example

The following example adds a rectangle to the active publication and sets the text it contains.

Sub AddTextToShape() 
    With ActiveDocument.Pages(1).Shapes.AddShape(Type:=msoShapeRectangle, _ 
        Left:=72, Top:=72, Width:=250, Height:=140) 
        .TextFrame.TextRange.Text = "Here is some test text" 
    End With 
End Sub

Because the Text property is the default property of the TextRange object, the following two statements are equivalent.

ActiveDocument.Pages(1).Shapes(1).TextFrame _ 
    .TextRange.text = "Here is some test text" 
ActiveDocument.Pages(1).Shapes(1).TextFrame _ 
    .TextRange = "Here is some test text"

The following example copies the selection to the Clipboard.

Sub CopyAndPasteText() 
    With ActiveDocument 
        .Selection.TextRange.Copy 
        .Pages(1).Shapes(1).TextFrame.TextRange.Paste 
    End With 
End Sub

The following example formats the second word in the first shape on the first page of the active publication. For this example to work, the specified shape must contain text.

Sub FormatWords() 
    With ActiveDocument.Pages(1).Shapes(1).TextFrame _ 
            .TextRange.Words(2).Font 
        .Bold = msoTrue 
        .Size = 15 
        .Name = "Text Name" 
    End With 
End Sub

This example inserts a new line with text after any existing text in the first shape on the first page of the active publication.

Sub InsertNewText() 
    Dim intCount As Integer 
    With ActiveDocument.Pages(1).Shapes(1).TextFrame _ 
            .TextRange 
        For intCount = 1 To 3 
            .InsertAfter vbLf  "This is a test." 
        Next intCount 
    End With 
End Sub

Methods

Properties

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.