エクセルVBAでワードの文章のテキストを置換する

エクセルVBAを使用して、ワード内の文章にあるキーワードを置換します。
このVBA記入ファイル内に「作業シート」という名のシートがあります。
そのシートのA列に検索値を、B列に置換する文字が記入してあります。

尚、こちらのコードは、ほとんどChatgptを使って作成しました。

Sub ReplaceTextInWordDocument()
    Dim wordApp As Object           ' Wordアプリケーションオブジェクトを宣言
    Dim wordDoc As Object           ' Wordドキュメントオブジェクトを宣言
    Dim findText As String          ' 検索するテキストを格納する変数を宣言
    Dim replaceText As String       ' 置換するテキストを格納する変数を宣言
    
    ' Wordアプリケーションのインスタンスを作成
    Set wordApp = CreateObject("Word.Application")
    
    ' Wordドキュメントを開く
    Set wordDoc = wordApp.Documents.Open("C:\Users\hoge\Desktop\Document.docx") ' ドキュメントのパスを指定してください
    
    Dim i As Long
    With ThisWorkbook.Worksheets("作業シート")
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            ' 置換する文字列を指定
            findText = .Cells(i, 1)    '置換前のテキスト
            replaceText = .Cells(i, 2) '置換後のテキスト
            
            ' テキストの置換を実行
            With wordApp.Selection.Find           ' Wordアプリケーションの選択範囲で検索する
                .Text = findText                  ' 検索するテキストを設定
                .Replacement.Text = replaceText   ' 置換するテキストを設定
                .Forward = True                   ' 検索を前方向に行う
                .Wrap = 1                         ' テキストの末尾に到達した場合、検索を継続
                .Execute Replace:=2               ' 置換を実行し、すべての一致を置換
            End With
        Next i
    End With
    
    Debug.Print Cells(Rows.Count, 1).End(xlUp).Row
    ' ドキュメントを保存して閉じる
    wordDoc.Save
    wordDoc.Close
    
    ' Wordアプリケーションを終了
    wordApp.Quit
    
    ' オブジェクトの解放
    Set wordDoc = Nothing
    Set wordApp = Nothing
    
    MsgBox "終わりです"
End Sub

コードは以上になります。
ご覧頂きありがとうございました。

おすすめの記事