【Word VBA】蛍光ペンへジャンプ

2016年7月17日

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

-コード
-,