翻訳手順として、括弧内の文字列をマーキングして読みやすくするという手法をされている方がいることを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
コメント
このようなマクロで括弧内の文字を赤色にするなどのマクロはできますでしょうか?
はい、赤色にできます。
以下の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
いつも活用させていただいております。ありがとうございます。質問させて下さい。
( )ではなく” “内の言葉をマーキングするにはどうしたら良いでしょうか?また、マーキングする際に、( )や” “には色を付けず、その中の言葉にだけ色を付けることは可能でしょうか?
どうぞよろしくおねがいいたします。
マクロ超初心者さん
こんにちは。コメントをありがとうございます。
括弧の場合の対処方法をこちらの記事で説明しました。
https://www.wordvbalab.com/code/12127/
ダブルクオーテーションの場合は別の処理をしますので後日、別の記事にします。
早々にありがとうございます!早速使わせていただきます。ダブルクォーテーションのやり方も別途書いていただけるとのこともありがとうございます。お忙しい中恐縮ですがどうぞよろしくお願いいたします!
ご確認をどうもありがとうございます。ダブルクオーテーションについては、以下の記事で解説しました。こちらもお試しください。
https://www.wordvbalab.com/code/12133/
ダブルクオーテーションのやり方につきましても早速追記していただきありがとうございました!こちらも使わせていただきます。
「[]内の文字色のみ橙色にを変更するマクロ」の作成の参考にさせていただきました。
おかげで、勉強するための赤シートを作る為に、一つ一つ手作業で[]内の文字の色を変更しなくてよくなり、大幅に無駄な時間を短縮して勉強時間を増やす事ができました。
本当にありがとうございます!
薬学部大学生さん、
勉強時間を増やすことができたとのことよかったですね!
お役に立ててうれしいです!