【コード】括弧内の言葉をマーキングして読みやすくするWordマクロ

翻訳手順として、括弧内の文字列をマーキングして読みやすくするという手法をされている方がいることをFacebookの投稿で知りました。

その投稿への書き込みからヒントをいただいてつくってみました。

このマクロでできること

丸括弧(半角・全角)で囲まれた文字列の背景色を「灰色25%」で着色します。

背景色のマーキングには、[ホーム]タブの段落グループにある以下のボタンを使います。

背景色なので、蛍光ペンとは独立しています。そのため、通常のマーキングと区別してマーキングできます。

開く括弧と閉じる括弧の数があっていない場合、意図していない大きな範囲がマーキングされてしまいますから、誤記の判定にも使えます。

マクロの解説

[検索と置換]ダイアログボックスを用いた置換で文字列の背景色を置換することはできません。

そのため、1つ1つ対象箇所を探して、それぞれに背景色の変更の処理(15行目)をしています。

myRange.Font.Shading.BackgroundPatternColor = wdColorGray25

マクロ


Sub 括弧内の文字の背景を灰色25パーセント()

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
   .Font.Shading.BackgroundPatternColor = wdColorGray25
   .Collapse wdCollapseEnd
  End With
 Loop
End With

Set myRange = Nothing

End Sub

コメント

  1. 無知で申し訳ありません より:

    このようなマクロで括弧内の文字を赤色にするなどのマクロはできますでしょうか?

    • 新田順也 より:

      はい、赤色にできます。
      以下のWordマクロを使うと、括弧を除いた文字だけを赤色にします。

      Sub 括弧内の文字を赤色にする()

      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.ColorIndex = wdRed
      .Collapse wdCollapseEnd
      End With
      Loop
      End With

      Set myRange = Nothing

トップへ戻る