明けましておめでとうございます。本年もよろしくお願いいたします。
今年最初のマクロはこちらです。正月と何にも関係ありません。
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