過去質問に回答が出ている者です。
ファイルのもっとも原始的なものはテキストファイルです。
この際はCSVファイルを使います。
ワードの文章に
名称 関東大会
開催地 東京都
時刻 1時
参加 小学生
とあるとして
メモ帳に
関東,東北
東京都,宮城県
小学,中学
1時,2時半
のようなのを(実際例では100行ばかり)作り、名前をつけて保存します。
各行の、各ペアーはカンマの左を、右の語句で置き換えるつもりです。
この場合は「置換2.csv」にしてます。
VBEの標準モジュールに
Sub test06()
Open "置換2.csv" For Input As #1
While Not EOF(1)
Line Input #1, a
s = Split(a, ",")
MsgBox s(0) & " " & s(1)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = s(0)
.Replacement.Text = s(1)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Wend
Close #1
End Sub
を貼り付け実行します。
結果
名称 東北大会
開催地 宮城県
時刻 2時半
参加 中学生
ただ注意事項は
東京都と東京など1部共通語があるときは語数が長いほうを、CSVファイルの先に置くこと。
先に出現の語で変換後、後出の語に当てはまり、後出のペアーで変換されて、うまく思い通りに行かない場合があるかもしれないので、ロジック的に難しい面を含んでいるように推測するが、普通のケースでは使えるように思う。
お礼
ありがとうございます!! VBAは素人ですが、見よう見まねで少しいじってみました。 変更履歴をONにするために、次の文を追加して、 With ActiveDocument .TrackRevisions = True .ShowRevisions = True CommandBars("Reviewing").Visible = True End With 置換語のダイアログは隠すようにしました。 'MsgBox s(0) & " " & s(1) ちなみに、Openのファイルのパスの設定がよく分からないので、とりあえず"c:\置換2.csv"にしたらうまくいきました。 「取扱い注意=OK」「取(り)扱います=NG」のようなものは、置換よりもコメント付与でチェックするなどの工夫が必要。 自分のイメージに近いものが出来上がりそうです。ありがとうございました!