明けましておめでとうございます。本年もよろしくお願いいたします。
今年最初のマクロはこちらです。正月と何にも関係ありません。
Wordで動く翻訳チェックソフト「色deチェック」で今後実装する機能です。一足先にご利用ください。
▼このマクロでできること(Word 2007以降で使えます)
表の列で単語のペアを強調表示します。
ここでいう強調表示というのは蛍光ペンのことではなく、「選択されている文字列を、Word文書内で強調表示するマクロ」で紹介した強調表示のことです。
表内にカーソルを置いてマクロを実行します。
文字列が選択されていればその語句が強調表示の対象になります。
文字列が選択されていない場合には、近くの単語が選択されます。
今回は、文字列が選択されていないので、カーソルの近くにあった「ペン」が自動的に選択されました。
インプットボックスが表示されるので、対になる単語を入力します。
今回の例では、pen と入力しました。
[OK] ボタンをクリックすると、カーソルが置かれていた行の単語のペアが強調表示されます。
▼マクロの解説
HitHighlight メソッドを使います。
メソッドのオプションでハイライトの色(黄色)と文字の色(赤色)を設定し、検索条件として「完全に一致する単語だけを検索する」をオフにしました。
強調表示は、ClearHitHighlight メソッド を用いて解除します。
▼マクロ
Sub 対訳表で比較()
Dim myText1 As String
Dim myText2 As String
Dim myRange As Range
'カーソルが表内であれば、実行します。
If Selection.Information(wdWithInTable) = False Then
MsgBox "2列以上の表内で実行してください。"
Exit Sub
End If
'語句を選択します
If Selection.Type = wdSelectionIP Then
Set myRange = Selection.Range
myRange.Expand wdWord
myText1 = Trim(myRange.Text)
Else
myText1 = Trim(Selection.Text)
End If
'Rangeオブジェクトにカーソルのある行を代入します
Set myRange = Selection.Rows(1).Range
'Inputboxを使って、myText1 に代入した語句に
'対応する語句を入力します
myText2 = Trim(InputBox(myText1 & _
" に対応する語句を入力してください。", "用語を比較"))
If myText2 = "" Then Exit Sub
'Find.HitHighlight メソッド を用いて
'myText1 と myText2 をハイライトします
'英語の複数形もハイライトしたいので、
'MatchWholeWord:=False(部分一致)とします
With myRange.Find
.ClearHitHighlight
.HitHighlight FindText:=myText1, _
HighlightColor:=wdColorYellow, _
TextColor:=wdColorRed, MatchWholeWord:=False
.HitHighlight FindText:=myText2, _
HighlightColor:=wdColorYellow, _
TextColor:=wdColorRed, MatchWholeWord:=False
End With
Set myRange = Nothing
End Sub
Sub 強調表示を解除()
ActiveDocument.Range.Find.ClearHitHighlight
End Sub
▼関連記事
選択されている文字列を、Word文書内で強調表示するマクロ
『検索された項目の強調表示』機能 Word2007
Word2010における検索機能の紹介
↧
【Wordマクロ】表の列で文字列を比較
↧