【Word VBA】キーワードの含まれる文章に下線をつけるWordマクロ(その2)

2012年4月11日

キーワードの含まれる文章に下線をつけるマクロ を以前ご紹介しましたが、同じプログラムの中に、変数を追加して複数のキーワードに対して下線をつけられるようにしてみました。

私は、英文特許明細書の内容を把握するための支援に使っています。

もともと目でキーワードをひろって、蛍光ペンで色つけをしていたのですが、その作業を自動化してみました。

いらないところまで拾いますが、ざっと全体像を把握するのには役に立つのではないでしょうか?

あくまでも「支援」なので、自分がおいしいと思うところだけもらえればいいかなと思っています。

このマクロでできること

今回のマクロでは4つのキーワードを入力しています。

キーワードと言っても、英単語の文字の一部も含まれます。

myKW(1) = "advantage"
myKW(2) = "effect"
myKW(3) = "improv"
myKW(4) = "achiev"

このキーワードが含まれる文章の下線を引きます。

マクロの解説

myKW()という変数にキーワードを格納しています。

この変数を11個(myKW(0)~myKW(10))定義していますが、実際に入力しているのは4つです。

検索条件を指定していないので、単語の一部を記入して、部分一致の単語も拾えるようにしています。

Do...Loop ステートメントにて、キーワードが見つかる間、処理を続けています。

マクロ


Sub キーワードを含む文章をアンダーライン()

 Dim myRange As Range
 Dim myKW(10) As String
 Dim i As Integer

 myKW(1) = "advantage"
 myKW(2) = "effect"
 myKW(3) = "improv"
 myKW(4) = "achiev"

 '本文中の文字列をオブジェクトに設定
 Set myRange = ActiveDocument.Content

 'myKWの数だけ繰り返す(10回)
 For i = 1 To UBound(myKW)

  '毎回、先頭から検索開始
  myRange.SetRange Start:=0, End:=0

  With myRange.Find
   .Text = myKW(i)
   .Forward = True
   .Wrap = wdFindStop

   Do While .Execute = True
    With myRange
    .Expand Unit:=wdSentence
    .Underline = wdUnderlineSingle
    .Collapse direction:=wdCollapseEnd
    End With
   Loop

  End With

 Next i

 Set myRange = Nothing

End Sub

-コード
-,