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
- Characters
- Collapse
- Copy
- Cut
- Delete
- Expand
- InsertAfter
- InsertBarcode
- InsertBefore
- InsertDateTime
- InsertMailMergeField
- InsertPageNumber
- InsertSymbol
- Lines
- Move
- MoveEnd
- MoveStart
- Paragraphs
- Paste
- Select
- Words
Properties
- Application
- BoundHeight
- BoundLeft
- BoundTop
- BoundWidth
- ContainingObject
- DropCap
- Duplicate
- End
- Fields
- Find
- Font
- Hyperlinks
- InlineShapes
- LanguageID
- Length
- LinesCount
- MajorityFont
- MajorityParagraphFormat
- ParagraphFormat
- ParagraphsCount
- Parent
- Script
- Start
- Story
- Text
- WordsCount
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.