【VBA】Word文書中の単語一覧をExcelに出力する
Word文書内で使われている単語の一覧をExcelに出力するマクロ。
同じ意味でも表記が違うとかで混乱する時があるので、用語は管理しとくべき。
以下、Word文書内のVBAコード。
Sub 単語一覧取得()
Set excel = CreateObject("Excel.Application")
Set book = excel.workbooks.Add
Dim i As Long
i = 1
Dim tmp As Variant
With excel.workbooks(book.Name).worksheets(1)
' Word文書内の全ての単語をtmpに格納する
tmp = .Range(.Cells(1, 1), .Cells(ActiveDocument.Words.Count, 1))
For Each w In ActiveDocument.Words
tmp(i, 1) = w.Text
i = i + 1
Next
' tmpの中身をExcelに出力する。
' 1単語ずつExcelに出力するよりも、このように変数に格納しおいて最後にドンと書き出す方が断然高速である。
Range(.Cells(1, 1), .Cells(ActiveDocument.Words.Count, 1)) = tmp
' 出力した単語をソートする。
.Range(.Cells(1, 1), .Cells(ActiveDocument.Words.Count, 1)).Sort Key1:=.Range("A1"), _
Order1:=1, Header:=0, _
OrderCustom:=1, MatchCase:=False, Orientation:=1, SortMethod:=1, DataOption1:=0
' 出力した単語の重複を省く。
.Range(.Cells(1, 1), .Cells(ActiveDocument.Words.Count, 1)).AdvancedFilter Action:=1, Unique:=True
End With
' 単語を出力したExcelを保存する。
excel.workbooks(book.Name).SaveAs "C:\WordList.xls"
book.Close
excel.Quit
End Sub