Windows8 & Office2013 Word2013

複数の置換を一括で行うマクロ

投稿日:

Wordで複数の置換作業と一括で行うマクロです。
実は、毎週置換作業をしているのだけど、置換する文字列が多くてどうにかなりませんか?との質問を受けました。置換するための一覧表は下のようにExcelで作成されていました。
変換文字列は300個以上ありました。A列の文字があれば、B列の文字に置換したいとのこと。
Excel表

Wordの文書は下のようになっていて、毎回、置換作業をしなければならないとのことです。
文書

Wordの自動マクロで1文字を置換して記録してみたのですが・・・その後がわからない。
ネットで検索すると、有難いページがヒットしました。
ワードで複数の文字を一括・連続置換するマクロ - オフィス系ソフト - 教えて!goo

上記ページを参考にして作成することが出来ました。(^人^)感謝♪です。
まず、置換表のExcelブックをCSVファイルに変換しました。
[名前を付けて保存]ダイアログボックスで[CSV(カンマ区切り)(*.csv)]を選択して、保存します。
[名前を付けて保存]ダイアログボックス

スポンサーリンク
[開発]タブから[Visual Basic]をクリックして起動します。
※[開発]タブがなければ、[Wordのオプション]を表示して[リボンのユーザー設定]から設定してください。
開発タブの表示が参考になると思います。Office2010での解説ですが、設定方法は同じです。

VBEは、[Alt]キーと[F11]キーを同時に押しても表示させることができます。
VBE

[挿入]から[標準モジュール]をクリックします。
標準モジュール

そして、そこへ下のコードを貼り付けます。CSVのパスは変更してください。
ファイルのパスを確認する方法は、パスとしてコピーを参照されてください。

Sub 置換()

Open "C:\Users\hama1\Documents\sample\記号置換表.csv" For Input As #1
While Not EOF(1)
Line Input #1, a
s = Split(a, ",")

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = s(0)
.Replacement.Text = s(1)
.Forward = True
.Wrap = wdFindContinue

End With
Selection.Find.Execute Replace:=wdReplaceAll

Wend
Close #1

End Sub

下のようにできたら、VBEは閉じます。
VBE

[開発]タブにある[マクロ]をクリックします。します。

マクロに[置換]というマクロが表示されています。選択して、[実行]ボタンをクリックします。

一気に置換することができます。

このマクロを全ての文書で実行できるようにする方法は、Wordのマクロを全ての文書で使えるようにしたいで解説しています。
Word2010でも動作確認しています。これって、他にも便利に使えそうです。


置換後の文字を太字で、赤い色にしたい場合は、上記コードに追記してください。

Selection.Find.Replacement.ClearFormatting
追加コード
With Selection.Find.Replacement.Font
 .Bold = True
 .Color = wdColorRed
End With

トラブルをすぐに解決したいならteratail

お勧め記事と広告

関連記事

ペイントの起動画面とボタンの役割

ペイントを起動したときの各部の名称と操作方法です。 ①ウィンドウ操作ボタン このボタンをクリックすると、[元のサイズに戻す]、[移動]、[サ ...

PowerPivot2013のリレーションシップ

Excel2013のPowerPivotで、下の操作でExcelファイルを取込ました。 Excel2013のPowerPivotでExcel ...

イメージコントロールに外部の画像ファイルを表示

Accessのフォームに画像を表示する方法としては、テーブルのデータ型で[添付ファイル]を選択するのが一番簡単ですが、イメージのコントロール ...

表を削除して文字列だけ残すには

表は削除したいけど、セル内の文字列は残したいということがあります。 こういう場合は、[表の解除]ボタンを使います。 まず、表内でクリックして ...

タイムラインの挿入

Excel2013の新機能です。 Excel2013でピボットテーブルを作成します。 日付フィールドがある場合、タイムラインの挿入を利用する ...

-Windows8 & Office2013 Word2013

Copyright © 2001-2017 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2017 AllRights Reserved Powered by AFFINGER4.