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