最近、蛍光ペンのマーキングのマクロを2つ紹介しました。
【コード】キーワードを蛍光ペンで着色するWordマクロ(その2)
また、応用技として、下線を引くマクロも紹介しました。
【コード】キーワードを一重下線でマーキングするWordマクロ
上記の3つのマクロでは、インプットボックスを使って、検索対象を入力しました。
今回は、検索対象をワイルドカードを設定する方法をご紹介します。
<目次>
このマクロでできること
本文中の半角数字を黄色の蛍光ペンで着色します。
マクロの解説
これまでのマクロでは、対象となるキーワードを、InputBox関数を使って自由に入力できるようにしました。
今回は、「半角数字」を対象にすることが決まっているので、InputBox関数は利用しません。
その代わり、「検索と置換」ダイアログボックスの設定部分にて、半角数字を設定します(17行目)。
.Text = "[0-9]{1,}" '検索する文字列
お決まりの書き方です。
"[0-9]{1,}"は、半角数字を1回以上連続して繰り返している文字列のことです。
私たちは、これを「1桁以上の半角数字」と呼びます。
ワイルドカードの検索式は、以下のページで紹介されているPDFファイルに細かく記載しました。
参考にしてみてください。
「検索と置換」ダイアログボックスにてワイルドカードを使うときには、検索オプションにて、[ワイルドカードを使用する] をオンにします。
これと同じ操作をマクロで設定します(29行目)。
.MatchWildcards = True 'ワイルドカードを使用する
ここでの重要なルールは、オンにする項目を一番最後に記載するということです。
今回のマクロではどこに書いても問題がありませんが、Selectionオブジェクトを使ってマクロを書く場合には、上記ルールを守る必要があります。
癖にしておくといいでしょう。
マクロ
Sub 半角数字を蛍光ペンで着色()
Dim myRange As Range
Dim myColor As String
'現在の蛍光ペンの色を保存
myColor = Options.DefaultHighlightColorIndex
'蛍光ペンの色を黄色に設定
Options.DefaultHighlightColorIndex = wdYellow
'myRange(オブジェクト変数)を設定
Set myRange = ActiveDocument.Range(0, 0)
'一括置換を実行(「検索と置換」ダイアログボックスの設定)
With myRange.Find
.Text = "[0-9]{1,}" '検索する文字列
.Replacement.Text = "" '置換後の文字列(空欄でOK)
.Replacement.Highlight = True '置換後の文字列の蛍光ペンをオン
.Forward = True
.Wrap = wdFindStop
.Format = True '書式の設定をオン
.MatchCase = False '大文字と小文字の区別する
.MatchWholeWord = False '完全に一致する単語だけを検索する
.MatchByte = False '半角と全角を区別する
.MatchAllWordForms = False '英単語の異なる活用形を検索する
.MatchSoundsLike = False 'あいまい検索(英)
.MatchFuzzy = False 'あいまい検索(日)
.MatchWildcards = True 'ワイルドカードを使用する
.Execute Replace:=wdReplaceAll
End With
'蛍光ペンの色を元に戻す
Options.DefaultHighlightColorIndex = myColor
'myRangeを解放
Set myRange = Nothing
End Sub
関連記事
【コード】キーワードを蛍光ペンで着色するWordマクロ(その2)





