TextRange.Replace Method

PowerPoint Developer Reference

Finds specific text in a text range, replaces the found text with a specified string, and returns a TextRange object that represents the first occurrence of the found text. Returns Nothing if no match is found.

Syntax

expression.Replace(FindWhat, ReplaceWhat, After, MatchCase, WholeWords)

expression   A variable that represents a TextRange object.

Parameters

Name Required/Optional Data Type Description
FindWhat Required String The text to search for.
ReplaceWhat Required String The text you want to replace the found text with.
After Optional Integer The position of the character (in the specified text range) after which you want to search for the next occurrence of FindWhat. For example, if you want to search from the fifth character of the text range, specify 4 for After. If this argument is omitted, the first character of the text range is used as the starting point for the search.
MatchCase Optional MsoTriState Determines whether a distinction is made on the basis of case.
WholeWords Optional MsoTriState Determines whether only whole words are found.

Return Value
TextRange

Remarks

The

MatchCase

parameter value can be one of these MsoTriState constants.

Constant Description
msoFalse The default. Does not distinguish between uppercase and lowercase characters.
msoTrue Distinguish between uppercase and lowercase characters.

The

WholeWords

parameter value can be one of these MsoTriState constants.

Constant Description
msoFalse The default. Does not find only entire words.
msoTrue Finds only entire words.

Example

This example replaces every whole-word occurrence of "like" in all of the shapes in the active presentation with "NOT LIKE".

Visual Basic for Applications
  Sub ReplaceText()
    
    Dim oSld As Slide
    Dim oShp As Shape
    Dim oTxtRng As TextRange
    Dim oTmpRng As TextRange
     
    Set oSld = Application.ActivePresentation.Slides(1)
    
    For Each oShp In oSld.Shapes
        Set oTxtRng = oShp.TextFrame.TextRange
        Set oTmpRng = oTxtRng.Replace(FindWhat:="like", _
            Replacewhat:="NOT LIKE", WholeWords:=True)
        Do While Not oTmpRng Is Nothing
            Set oTxtRng = oTxtRng.Characters(oTmpRng.Start + oTmpRng.Length, _
                oTxtRng.Length)
            Set oTmpRng = oTxtRng.Replace(FindWhat:="like", _
                Replacewhat:="NOT LIKE", WholeWords:=True)
        Loop
    Next oShp

End Sub

See Also