Wordの文字列を置き換える

Wordで作成したテンプレート文章で、特定の文字を検索して置き換える処理になります。
検索対象の文字列は、Wordの本文と重複しない文字列に設定しておいてください。
テンプレートを使用しない場合は、Wordファイルを開くを参考にしてください。

【サンプルプログラム】

' ------------------------------------------------------------
' 説明:Word のテンプレートファイルを開く
' 引数:1:テンプレートファイル名
' 戻値:-
' 備考:-
' ------------------------------------------------------------
Sub WordTemplateOpen(filename As String)
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document

    Set WordApp = New Word.Application

    ' Wordを表示する
    WordApp.Visible = True

    ' 指定したWordテンプレートファイルを起動します。
    Set WordDoc = WordApp.Documents.Add(Template:=filename)

    ' 処理
    WordStrReplace WordDoc, "###名前###", "トロのさしみ"
    WordStrReplace WordDoc, "###電話番号###", "012-3456-7890"
    WordStrReplace WordDoc, "###コメント###", "Excel VBAで自動化"

    ' 終了
    WordDoc.Close
    WordApp.Quit
End Sub

【関数化】

' ------------------------------------------------------------
' 説明:Word の文字列を置き換える
' 引数:1:Wordのオブジェクト
'       2:置き換える前の文字列
'       3:置き換える後の文字列
' 戻値:-
' 備考:-
' ------------------------------------------------------------
Sub WordStrReplace(WordDoc As Word.Document, key As String, rep As String)
    With WordDoc.Content.Find
        .Text = key
        .Replacement.Text = rep
        .Execute replace:=2
    End With
End Sub

【補足】

Word.Application を使用しています。
初期設定では、エラーが発生するので、参照設定「Microsoft Word 16.0 Object Library」の設定
が必要です。

コメント