最近、蛍光ペンのマーキングのマクロを2つ紹介しました。
【コード】キーワードを蛍光ペンで着色するWordマクロ(その2)
これを応用して、一重下線でマーキングをするマクロを紹介します。
<目次>
このマクロでできること
インプットボックスでキーワードを指定します。
[OK] ボタンをクリックすると、本文中のキーワードが一重下線でマーキングされます。キーワードの検索条件は、「半角と全角を区別する」です。
マクロの解説
前回の蛍光ペンのマクロでは、蛍光ペンの色の指定がポイントでした。
「検索と置換」ダイアログボックスでは蛍光ペンの色を指定できないため、別の方法が必要でしたね。
今回の一重下線の指定は、「検索と置換」ダイアログボックスでできます。
なので、かなりシンプルです。
25行目で、[置換後の文字列] の書式を指定します。
フォントのプロパティで下線を一重下線にしています。
.Replacement.Font.Underline = wdUnderlineSingle '一重下線
28行目で、置換操作で書式を使うのかどうかを設定します。
フォントの書式を変更するので、オンにします。
.Format = True '書式の設定をオン
マクロ
Sub キーワードを一重下線()
Dim myRange As Range
Dim myDefault As String 'インプットボックスのデフォルトの文字列
Dim myKW As String '着色するキーワード
'キーワードが選択されていない場合
If Selection.Type = wdSelectionIP Then
myDefault = ""
Else
'キーワードが選択されている場合
myDefault = Trim(Selection.Text)
End If
myKW = InputBox("文字列を入力してください。" & vbCr & _
"検索条件:半角と全角を区別する", "一括一重下線", myDefault)
'myRange(オブジェクト変数)を設定
Set myRange = ActiveDocument.Range(0, 0)
'一括置換を実行(「検索と置換」ダイアログボックスの設定)
With myRange.Find
.Text = myKW '検索する文字列
.Replacement.Text = "" '置換後の文字列(空欄でOK)
.Replacement.Font.Underline = wdUnderlineSingle '一重下線
.Forward = True
.Wrap = wdFindStop
.Format = True '書式の設定をオン
.MatchCase = False '大文字と小文字の区別する
.MatchWholeWord = False '完全に一致する単語だけを検索する
.MatchAllWordForms = False '英単語の異なる活用形を検索する
.MatchSoundsLike = False 'あいまい検索(英)
.MatchFuzzy = False 'あいまい検索(日)
.MatchWildcards = False 'ワイルドカードを使用する
.MatchByte = True '半角と全角を区別する
.Execute Replace:=wdReplaceAll
End With
'myRangeを解放
Set myRange = Nothing
End Sub





