VBA ExcelでWordのテキストボックス内の文字列を置換

Sub EXCEL_WORD01() 'EXCEL VBAから既存のWORDファイルを起動する。
 
    Dim WordApp As Object
    Dim WordDoc As Word.Document
                            '
    Set WordApp = CreateObject("Word.Application") ' CreateObject関数でWordをセット
 
    WordApp.Visible = True 'Wordを起動する
  
    Set WordDoc = WordApp.Documents.Open("C:\Users\sannp\OneDrive\デスクトップ\test01.docx") ' 指定したWordファイルを起動します。
 
 
     '--- 置換前の文字列 ---'
    Dim srcText As String
    srcText = "置換前"
    
    '--- 置換後の文字列 ---'
    Dim replaceText As String
    replaceText = "置換後"
 
 
 
    Dim shp As Object  ' Word.Shape
 
    For Each shp In WordApp.ActiveDocument.Shapes
        If shp.Type = msoTextBox Then
            'MsgBox shp.TextFrame.TextRange.Text
            Call ReplaceShapeText(shp, srcText, replaceText)
        End If
    Next
    

    
End Sub
 

Public Sub ReplaceShapeText(shp As Variant, srcText As String, replaceText As String)
    
    If shp.TextFrame.HasText Then
        Dim objFind As Find
        Set objFind = shp.TextFrame.TextRange.Find
        
        objFind.ClearFormatting
        objFind.Forward = True
        objFind.Text = srcText
        objFind.Replacement.Text = replaceText
        Call objFind.Execute(Replace:=wdReplaceAll)
        
    End If
End Sub