2018年2月19日追記 カーソル移動が少しスムーズになりました。以下の記事で紹介しています。 【コード】カーソルジャンプ(移動)をスムーズにする方法
Wordで動く翻訳チェックソフト「色deチェック」や「蛍光と対策」どのアドインで使っている蛍光ペンへジャンプするマクロです。
ブログに掲載していなかったので紹介します。
<目次>
このマクロでできること
2種類のマクロを紹介します。
1つは、カーソル位置より末尾側にある蛍光ペンへカーソルをジャンプさせるマクロです。
もう1つは、カーソル位置より先頭側にある蛍光ペンへカーソルをジャンプさせるマクロです。
マクロ1の解説
よくあるRangeオブジェクトの検索系のマクロです。
蛍光ペン箇所を見つけたときに、見つけた文字列を選択してカーソルを移動させます。(13行~17行、36行~40行)
マクロ1
Sub 蛍光ペンへジャンプ_次() Dim myRange As Range Set myRange = Selection.Range With myRange.Find .Text = "" .Highlight = True .Format = True .Forward = True .Wrap = wdFindContinue If .Execute = True Then myRange.Select Else MsgBox "蛍光箇所はありません。", vbInformation, "お知らせ" End If End With Set myRange = Nothing End Sub Sub 蛍光ペンへジャンプ_前() Dim myRange As Range Set myRange = Selection.Range With myRange.Find .Text = "" .Highlight = True .Format = True .Forward = False .Wrap = wdFindContinue If .Execute = True Then myRange.Select Else MsgBox "蛍光箇所はありません。", vbInformation, "お知らせ" End If End With Set myRange = Nothing End Sub
マクロ2の解説
マクロ1で紹介した2つのマクロは、ほとんど内容が同じです。
検索方向が異なるだけです。
そこで、2つのマクロの共通部分をサブプロシージャーにして実行する記述にしました。
検索方向を引数(blnForward)にして、サブプロシージャー(Jump2Highlight)の19行目で設定しています。
マクロ2
Sub 蛍光ペンへジャンプ_次2() Call Jump2Highlight(True) End Sub Sub 蛍光ペンへジャンプ_前2() Call Jump2Highlight(False) End Sub Private Sub Jump2Highlight(blnForward As Boolean) Dim myRange As Range Set myRange = Selection.Range With myRange.Find .Text = "" .Highlight = True .Format = True .Forward = blnForward .Wrap = wdFindContinue If .Execute = True Then myRange.Select Else MsgBox "蛍光箇所はありません。", vbInformation, "お知らせ" End If End With Set myRange = Nothing End Sub