以前の記事「【コード】括弧内の言葉をマーキングして読みやすくするWordマクロ」の改良版です。コメントをいただいたので、その参考になるように改良してみました。
つまり、括弧内の言葉をマーキングする際に、括弧を除外して括弧内の言葉だけをマーキングするための処理です。
上記コメントでは、()だけではなく、ダブルクオーテーションも対象になっていますが、ダブルクオーテーションの場合にはまた別のことを考えなければならないので、ひとまずは簡単に全角と半角の丸括弧だけでサンプルを作ってみます。
<目次>
このマクロでできること
全角や半角の丸括弧で囲まれた文字列の背景を灰色25パーセントで着色します。
この際に、括弧は着色しません。
実行前
実行後
マクロの解説
前回のマクロとの変更点は、15行目と16行目だけです。ここで、括弧を除外するために検索された箇所を先頭の1文字と末尾の1文字を除外しているのです。
15行目:開始位置を1文字分進める
16行目:末尾位置を1文字分戻す
という操作となります。
マクロ
Sub 括弧内の文字の背景を灰色25パーセント2() Dim myRange As Range Set myRange = ActiveDocument.Range(0, 0) With myRange.Find .Text = "[((]*[))]" '検索する文字列 .Forward = True .Wrap = wdFindStop .MatchWildcards = True 'ワイルドカードを使用する Do While .Execute = True '見つかったら背景を灰色25パーセント With myRange .Start = .Start + 1 .End = .End - 1 .Font.Shading.BackgroundPatternColor = wdColorGray25 .Collapse wdCollapseEnd End With Loop End With Set myRange = Nothing End Sub
応用技
ダブルクオーテーションの場合には、検索対象にダブルクオーテーションを追加しなければなりませんし、それ以外にもすることがあるので今回の記事では割愛します。別の記事で解説します。