
ワード(Word)で複数の文字を一括・連続置換するマクロを作りたいのです。
次の回答を参考にしてマクロを作ってみました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=994495
ところが、置換したい単語が100くらいになってきて扱いづらいので、
ワード(又はテキストやエクセルでも可)の置換文字のリストのファイルを参照して、同じように連続置換させたいのですが、どのような方法があるでしょうか?
シェアウェアでも同様の機能をもつものがありますが、自由にカスタマイズできないので使えません。
(置換後の文字列に蛍光ペンをかけたいので)
No.2ベストアンサー
- 回答日時:
過去質問に回答が出ている者です。
ファイルのもっとも原始的なものはテキストファイルです。
この際は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」のようなものは、置換よりもコメント付与でチェックするなどの工夫が必要。
自分のイメージに近いものが出来上がりそうです。ありがとうございました!
No.1
- 回答日時:
単にテキストの文字列置換であれば、「Speeeeed」というフリーソフトはいかがでしょう。
(参考URL)私も実際に使用していましたが、動作も快適だと思います。
宜しければ試してみて下さい。
参考URL:http://akky.cjb.net/download/index.html
ありがとうございます。Speeeeedは気になっていましたが、既に書式やレイアウトが完成しているワード文書を置換して、変更履歴で確認したいのでNGなのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Word(ワード) ワードフォント 一括置換の方法 4 2022/12/31 00:27
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- その他(IT・Webサービス) 少し複雑なテキスト置換がしたいです。 2 2022/10/13 14:42
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- フリーソフト サクラエディタの正規表現(grep機能)の使い方 3 2022/06/22 10:29
- Word(ワード) ワードで,特定の文字だけ,字体を一括変換する方法は? 1 2023/04/26 10:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
秀丸で余分なスペースを削除したい
-
エクセルで濁点カナの変換方法...
-
一括置換ソフトTTextSS 3.20に...
-
Word:差し込み印刷時に文字列...
-
エクセル重複削除で綺麗に削除...
-
CSVファイルの任意の列をダブル...
-
セルの文字列後ろのスペース削除
-
Wordの置換を使って複数のスペ...
-
エクセルの『検索と置換ボック...
-
テキストでタブを検索してスペ...
-
複数のスペースをひとつのカン...
-
「すべて置換」を実行しても飛...
-
文字の列を揃えるには
-
エクセルの「置換」で1行の部分...
-
Excelで全角ハイフンを半角ハイ...
-
ワードでの文字変換
-
エクセル 置換又は関数でかっこ...
-
段落番号の前に記号を付けて段...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
エクセル重複削除で綺麗に削除...
-
文字列に含まれているダブルク...
-
文字の列を揃えるには
-
秀丸で余分なスペースを削除したい
-
Excelで全角ハイフンを半角ハイ...
-
エクセルの『検索と置換ボック...
-
Word:差し込み印刷時に文字列...
-
セルの文字列後ろのスペース削除
-
エクセルで濁点カナの変換方法...
-
CSVファイルの任意の列をダブル...
-
1文字だけ置換したい
-
word 改行マークを印刷時に表示...
-
エクセルでコンマとピリオドを...
-
ワード (word ) 日本語の文字...
-
Word VBA フッターでの文字の置換
-
エクセル 置換又は関数でかっこ...
-
テキストでタブを検索してスペ...
-
【MS Office Word 2007】文章の...
おすすめ情報