TextFrame object (Publisher)
Represents the text frame in a Shape object. Contains the text in the text frame and the properties that control the margins and orientation of the text frame.
Remarks
Use the Shape.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.
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.
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.
Example
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
Use the Shape.HasTextFrame property to determine whether the shape has a text frame, and use 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
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
Methods
Properties
- Application
- AutoFitText
- Columns
- ColumnSpacing
- HasNextLink
- HasPreviousLink
- HasText
- IncludeContinuedFromPage
- IncludeContinuedOnPage
- MarginBottom
- MarginLeft
- MarginRight
- MarginTop
- NextLinkedTextFrame
- Orientation
- Overflowing
- Parent
- PreviousLinkedTextFrame
- Story
- TextRange
- VerticalTextAlignment
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.