こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ワードで複数の文字を一括・連続置換するマクロ

ワード(Word)で複数の文字を一括・連続置換するマクロを作りたいのです。
次の回答を参考にしてマクロを作ってみました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=994495

ところが、置換したい単語が100くらいになってきて扱いづらいので、
ワード(又はテキストやエクセルでも可)の置換文字のリストのファイルを参照して、同じように連続置換させたいのですが、どのような方法があるでしょうか?

シェアウェアでも同様の機能をもつものがありますが、自由にカスタマイズできないので使えません。
(置換後の文字列に蛍光ペンをかけたいので)

投稿日時 - 2005-12-03 01:49:15

QNo.1816095

困ってます

質問者が選んだベストアンサー

過去質問に回答が出ている者です。
ファイルのもっとも原始的なものはテキストファイルです。
この際は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ファイルの先に置くこと。
先に出現の語で変換後、後出の語に当てはまり、後出のペアーで変換されて、うまく思い通りに行かない場合があるかもしれないので、ロジック的に難しい面を含んでいるように推測するが、普通のケースでは使えるように思う。

投稿日時 - 2005-12-03 07:45:50

お礼

ありがとうございます!!
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」のようなものは、置換よりもコメント付与でチェックするなどの工夫が必要。
自分のイメージに近いものが出来上がりそうです。ありがとうございました!

投稿日時 - 2005-12-03 12:47:42

ANo.2

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

単にテキストの文字列置換であれば、「Speeeeed」というフリーソフトはいかがでしょう。(参考URL)
私も実際に使用していましたが、動作も快適だと思います。
宜しければ試してみて下さい。

参考URL:http://akky.cjb.net/download/index.html

投稿日時 - 2005-12-03 03:48:31

お礼

ありがとうございます。Speeeeedは気になっていましたが、既に書式やレイアウトが完成しているワード文書を置換して、変更履歴で確認したいのでNGなのです。

投稿日時 - 2005-12-03 11:56:38

あなたにオススメの質問