【Word VBA】括弧内の言葉をマーキングして読みやすくする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

  2. マクロ超初心者 より:

    いつも活用させていただいております。ありがとうございます。質問させて下さい。
    ( )ではなく” “内の言葉をマーキングするにはどうしたら良いでしょうか?また、マーキングする際に、( )や” “には色を付けず、その中の言葉にだけ色を付けることは可能でしょうか?
    どうぞよろしくおねがいいたします。

    • 新田順也 より:

      マクロ超初心者さん
      こんにちは。コメントをありがとうございます。
      括弧の場合の対処方法をこちらの記事で説明しました。
      https://www.wordvbalab.com/code/12127/

      ダブルクオーテーションの場合は別の処理をしますので後日、別の記事にします。

      • マクロ超初心者 より:

        早々にありがとうございます!早速使わせていただきます。ダブルクォーテーションのやり方も別途書いていただけるとのこともありがとうございます。お忙しい中恐縮ですがどうぞよろしくお願いいたします!

        • 新田順也 より:

          ご確認をどうもありがとうございます。ダブルクオーテーションについては、以下の記事で解説しました。こちらもお試しください。
          https://www.wordvbalab.com/code/12133/

          • マクロ超初心者 より:

            ダブルクオーテーションのやり方につきましても早速追記していただきありがとうございました!こちらも使わせていただきます。

  3. 薬学部大学生 より:

    「[]内の文字色のみ橙色にを変更するマクロ」の作成の参考にさせていただきました。
    おかげで、勉強するための赤シートを作る為に、一つ一つ手作業で[]内の文字の色を変更しなくてよくなり、大幅に無駄な時間を短縮して勉強時間を増やす事ができました。

    本当にありがとうございます!

    • 新田順也 より:

      薬学部大学生さん、
      勉強時間を増やすことができたとのことよかったですね!
      お役に立ててうれしいです!

トップへ戻る