FindReplace.FoundTextRange property (Publisher)
Returns a TextRange object that represents the found text or replaced text of a find operation. Read-only.
Syntax
expression.FoundTextRange
expression A variable that represents a FindReplace object.
Return value
TextRange
Remarks
The actual TextRange object returned by the FoundTextRange property is determined by the value of the ReplaceScope property. The following table lists the corresponding values of these properties (see also the PbReplaceScope enumeration).
When ReplaceScope = | FoundTextRange = |
---|---|
pbReplaceScopeAll | Empty |
pbReplaceScopeNone | Find text range |
pbReplaceScopeOne | Replace text range |
When ReplaceScope is set to pbReplaceScopeAll, the FoundTextRange property is empty. Any attempt to access it returns "Access Denied." The way to manipulate the text range of the searched text is to set the ReplaceScope property to pbReplaceScopeNone or pbReplaceScopeOne and access the text range of the searched or replaced text for each occurrence found.
Example
When ReplaceScope is set to pbReplaceScopeNone, FoundTextRange returns the text range of the searched text. The following example illustrates how the font attributes of the find text range can be accessed when ReplaceScope is set to pbReplaceScopeNone.
With TextRange.Find
.Clear
.FindText = "important"
.ReplaceScope = pbReplaceScopeNone
Do While .Execute = True
'The FoundTextRange contains the word "important".
If .FoundTextRange.Font.Italic = msoFalse Then
.FoundTextRange.Font.Italic = msoTrue
End If
Loop
End With
When ReplaceScope is set to pbReplaceScopeOne, the text range of the searched text is replaced. Therefore, the FoundTextRange property returns the text range of the replacement text. The following example demonstrates how the font attributes of the replaced text range can be accessed when ReplaceScope is set to pbReplaceScopeOne.
With Document.Find
.Clear
.FindText = "important"
.ReplaceWithText = "urgent"
.ReplaceScope = pbReplaceScopeOne
Do While .Execute = True
'The FoundTextRange contains the word "urgent".
If .FoundTextRange.Font.Bold = msoFalse Then
.FoundTextRange.Font.Bold = msoTrue
End If
Loop
End With
This example replaces each example of the word "bizarre" with the word "strange" and applies italic formatting and bold formatting to the replaced text.
Dim objDocument As Document
Set objDocument = ActiveDocument
With objDocument.Find
.Clear
.FindText = "bizarre"
.ReplaceWithText = "strange"
.ReplaceScope = pbReplaceScopeOne
Do While .Execute = True
.FoundTextRange.Font.Italic = msoTrue
.FoundTextRange.Font.Bold = msoTrue
Loop
End With
This example finds all occurrences of the word "important" and applies italic formatting to it.
Dim objTextRange As TextRange
Set objTextRange = ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange
With objTextRange.Find
.Clear
.FindText = "important"
.ReplaceScope = pbReplaceScopeNone
Do While .Execute = True
.FoundTextRange.Font.Italic = msoTrue
Loop
End With
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.