Share via


TextFrame Object [Publisher 2003 VBA Language Reference]

Multiple objects
TextFrame
Multiple objects

Represents the text frame in a Shape object. Contains the text in the text frame as well as the properties that control the margins and orientation of the text frame.

Using the TextFrame Object

Use the TextFrame property to return the TextFrame object for a shape. The TextRange property returns a TextRange object that represents the range of text inside the specified text frame. The following example adds text to the text frame of shape one in the active publication, and then formats the new text.

Sub AddTextToTextFrame()
    With ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange
        .Text = "My Text"
        With .Font
            .Bold = msoTrue
            .Size = 25
            .Name = "Arial"
        End With
    End With
End Sub

Note  Some shapes don't support attached text (lines, freeforms, pictures, and OLE objects, for example). If you attempt to return or set properties that control text in a text frame for those objects, an error occurs.

Use the HasTextFrame property to determine whether the shape has a text frame and the HasText property to determine whether the text frame contains text as shown in the following example.

Sub GetTextFromTextFrame()
    Dim shpText As Shape

    For Each shpText In ActiveDocument.Pages(1).Shapes
        If shpText.HasTextFrame = msoTrue Then
            With shpText.TextFrame
                If .HasText Then MsgBox .TextRange.Text
            End With
        End If
    Next
End Sub

Text frames can be linked together so that the text flows from the text frame of one shape into the text frame of another shape. Use the NextLinkedTextFrame and PreviousLinkedTextFrame properties to link text frames. The following example creates a text box (a rectangle with a text frame) and adds some text to it. It then creates another text box and links the two text frames together so that the text flows from the first text frame into the second one.

Sub LinkTextBoxes()
    Dim shpTextBox1 As Shape
    Dim shpTextBox2 As Shape

    Set shpTextBox1 = ActiveDocument.Pages(1).Shapes.AddTextbox _
        (msoTextOrientationHorizontal, 72, 72, 72, 36)
    shpTextBox1.TextFrame.TextRange.Text = _
        "This is some text. This is some more text."

    Set shpTextBox2 = ActiveDocument.Pages(1).Shapes.AddTextbox _
        (msoTextOrientationHorizontal, 72, 144, 72, 36)
    shpTextBox1.TextFrame.NextLinkedTextFrame = shpTextBox2 _
        .TextFrame
End Sub

Properties | Application Property | AutoFitText Property | Columns Property | ColumnSpacing Property | HasNextLink Property | HasPreviousLink Property | HasText Property | MarginBottom Property | MarginLeft Property | MarginRight Property | MarginTop Property | NextLinkedTextFrame Property | Orientation Property | Overflowing Property | Parent Property | PreviousLinkedTextFrame Property | Story Property | TextRange Property | VerticalTextAlignment Property

Methods | BreakForwardLink Method | ValidLinkTarget Method

Parent Objects | Shape Object | ShapeRange Collection | Story Object | TextFrame Object

Child Objects | Story Object | TextFrame Object | TextRange Object