【Word VBA】特定の英単語を含む文章を書き出すWordマクロ

2013年5月24日

特定の英単語を含む文章を別ファイルに書き出すマクロです。

 

英単語は、活用形に応じて表記が変化します。

例えば、driveの過去形はdrove、そして過去分詞はdriven です。

drive に関する文章をファイル中から探す場合、「検索する文字列」にこの活用形をすべて入力するのは面倒ですね。

そこで、「検索と置換」ダイアログボックスの「英単語の異なる活用形も検索」機能を用います。

この機能を使うと、英単語の動詞の活用形を考慮して検索できます。

この機能は、動詞だけではなく、形容詞の比較級や名詞の複数形の検索にも応用できます。

(Word 2010の場合)

上記の「英単語の異なる活用形も検索」チェックボックスが表示されていない場合は、別の記事「『英単語の異なる活用形も検索』機能を使う」をご覧ください。

このマクロでできること

このマクロでは、指定した単語を含む文章を別ファイルに書き出します。

上記の「英単語の異なる活用形も検索」機能を用いるので、より正確に多くの文章を書き出せます。

 

用途は、、、、学習用や参考資料として例文集をつくることを想定しています。

特定のキーワードを仕込むことができれば、便利な英語表現を集められるのではないでしょうか。

まあ、サンプルのマクロなので、あんまり深く考えずに使ってみてください(笑)。

マクロの解説

15行目と18行目のSetステートメントで、現在の文書と新規文書を定義しています。

このようなことをしておくと、後々の処理で文書を指定しやすくなるので便利です。

今回の例文では、actDocもnewDocも一回だけですね。

もっと複雑に文書間でやりとりするときに便利になります。

 

Wordの「英単語の異なる活用形も検索」機能は、40行目です。

設定はこれだけです。

マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Sub 特定の英単語を含む文章を書き出す()
 
 Dim myRange As Range
 Dim actDoc As Document
 Dim newDoc As Document
 Dim myKW(10) As String '登録できる単語数
 Dim i As Integer
 
 myKW(1) = "drive"
 myKW(2) = "write"
 myKW(3) = "eat"
 myKW(4) = "abide"
 
 '対象となる文書(現在、カーソルが置かれている文書)
 Set actDoc = ActiveDocument
 
 '書き出す文書(新規文書を追加)
 Set newDoc = Documents.Add
 
 '本文中の文字列をオブジェクトに設定
 Set myRange = actDoc.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
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchByte = False
   .MatchSoundsLike = False
   .MatchWildcards = False
   .MatchFuzzy = False
   .MatchAllWordForms = True '英単語の異なる活用形も検索
   Do While .Execute = True
    With myRange
    .Expand Unit:=wdSentence
    newDoc.Range.InsertAfter Text:=.Text & vbCr
    .Collapse direction:=wdCollapseEnd
    End With
   Loop
  End With
 
 Next i
 
 Set myRange = Nothing
 Set actDoc = Nothing
 Set newDoc = Nothing
 
End Sub

関連記事

『英単語の異なる活用形も検索』機能を使う

キーワードの含まれる文章に下線をつけるマクロ

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

-コード
-, ,

S