Windows8 & Office2013 Word2013

Print Friendly, PDF & Email

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

投稿日:2017年1月12日 更新日:

Wordで複数の置換作業を一括で行うマクロです。

関連大文字と小文字、半角と全角を区別して置換する方法は、こちらで解説しています。
実は、毎週置換作業をしているのだけど、置換する文字列が多くてどうにかなりませんか?との質問を受けました。置換するための一覧表は下のようにExcelで作成されていました。
変換文字列は300個以上ありました。A列の文字があれば、B列の文字に置換したいとのこと。
Excel表

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

Wordの自動マクロで1文字を置換して記録してみたのですが・・・その後がわからない。

Wordの記録マクロ

Wordでは、操作手順をマクロに記録することができます。[マクロの記録]操作を実行するには、まず[開発]タブを表示させます。 開発タブの表示 ...

続きを見る

ネットで検索すると、有難いページがヒットしました。
ワードで複数の文字を一括・連続置換するマクロ - オフィス系ソフト - 教えて!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

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

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

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

Word2010でも動作確認しています。これって、他にも便利に使えそうです。

このマクロを全ての文書で実行できるようにする方法は、Wordのマクロを全ての文書で使えるようにしたいで解説しています。

Wordのマクロを全ての文書で使えるようにしたい

Wordで作成したマクロを全ての文書で使えるようにする方法です。 まず、マクロを作成した文書を開きます。そして[開発]タブの[マクロ]をクリ ...

続きを見る

 

半角と全角を区別して置換する方法

上記マクロでは「あいまい検索」となっていて、半角や全角を区別して置換できないという問い合わせがありました。

例えば置換表に以下のように記していて、
置換表

以下の文字列を上記マクロで実行すると、
変換したい文字列

下のように同じ変換になってしまいます。
マクロ実行後

これは、あいまい検索で実行しているからです。[検索と置換]ダイアログボックスを表示して、[オプション]ボタンをクリックして展開します。
検索と置換ダイアログボックス

開くとわかるのですが、Wordの既定では、[あいまい検索]オンになっています。
検索と置換ダイアログボックスのオプション

では、大文字と小文字を区別、半角と全角も区別して検索する場合は、[検索オプション]で[あいまい検索]のチェックボックスをオフにして、[大文字と小文字を区別する]と[半角と全角を区別する]のチェックボックスをオンにします。
検索オプション

この状態で自動マクロを作成してみました。そうすると、下のようになっていました。
自動マクロで記録したコード

では、このコードを上記コードに追加してみます。
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
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False

End With
Selection.Find.Execute Replace:=wdReplaceAll

Wend
Close #1

End Sub

これで実行してみると、きちんと変換できるようになりました。
変換後

置換後の文字を太字で赤く

置換後の文字を太字で、赤い色にしたい場合は、以下のコードの間に追記してください。
End With
Selection.Find.Execute Replace:=wdReplaceAll

End With
追加コード↓
With Selection.Find.Replacement.Font
 .Bold = True
 .Color = wdColorRed
End With
ここまで↑
Selection.Find.Execute Replace:=wdReplaceAll

関連Wordの検索と置換の関連記事です。

タブ文字の削除

Excelで作成された文書をコピーして、Wordへ貼り付けると下のように多くのタブが挿入されてしまうことがあります。 この不要なタブを一気に ...

続きを見る

改ページを一括削除するには

Word2013で改ページを一括で削除する方法です。他のバージョンのWordも同じ操作です。 改ページは、1つずつ削除するには、編集記号の改 ...

続きを見る

行区切りを一気に削除

Webページの文章をコピーしてWordに貼り付けすると、改行マークがたくさんあって邪魔に感じることがありますね。 Internet Expl ...

続きを見る

参考Officeのバージョンによって操作が異なる場合があります。以下の記事で、お使いのOfficeのバージョンを確認する方法を解説しています。

Office(Word、Excel、PowerPointなど)のバージョンを確認する方法

Microsoft Officeも時を得て、大きく様変わりしてきました。トラブルを解決しようとするとき、あるいは、何かの操作を探すときなど、 ...

続きを見る

あなたへのおすすめ

関連記事

ビューの切り替えができない

Access2013に限ったことではありませんが、ビューの切り替えができるフォームと出来ないフォームがあるんですが・・ との質問を受けること ...

ぬるっとした動きをオフにする

Excel2013を使ったことがある人は、わかると思うのですが、Excelでアクティブセルが移動するたびに後を追ってくるようなぬるっとした動 ...

水平スクロールバーがない、シート見出しもない

Excel2013で時々、水平スクロールバーもシート見出しもない状態になってしまうことがあります。 どういう状況の時にこの現象が出るのかわか ...

コンボボックスの値をボタンで切替

Accessのフォームでコンボボックスの値集合ソースをボタンで切り替える方法です。 下のようなフォームを作成しています。 [日本食]ボタンを ...

グラフのデータラベルの大きさを変更

Excel2013では、グラフのデータラベルの大きさをマウス操作で変更することができます。 ラベルの周りにある○(サイズハンドルボタン)にマ ...

-Windows8 & Office2013 Word2013

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

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