一意の単語のリストの生成(Microsoft Word)
Isaoは、ドキュメント内のすべての一意の単語のリストを簡単に作成する方法があるかどうか疑問に思います。彼は、各単語が何回出現するかを知る必要はありません。彼はただユニークな単語のリストが必要です。さらに、同じ単語の大文字と小文字のバリエーションは、同じ単語としてカウントする必要があります。
これを行うための組み込みのWord関数やツールはありません。ただし、VBAでは、ドキュメント内のすべての単語を含むWordsコレクションにアクセスできます。これを念頭に置いて、ドキュメント内の一意の単語の並べ替えられたリストを作成し、それらの単語をドキュメントの最後に追加するマクロを作成できます。
Sub UniqueWordList() Dim wList As New Collection Dim wrd Dim chkwrd Dim sTemp As String Dim k As Long For Each wrd In ActiveDocument.Range.Words sTemp = Trim(LCase(wrd)) If sTemp >= "a" And sTemp <= "z" Then k = 0 For Each chkwrd In wList k = k + 1 If chkwrd = sTemp Then GoTo nw If chkwrd > sTemp Then wList.Add Item:=sTemp, Before:=k GoTo nw End If Next chkwrd wList.Add Item:=sTemp End If nw: Next wrd sTemp = "There are " & ActiveDocument.Range.Words.Count & " words " sTemp = sTemp & "in the document, before this summary, but there " sTemp = sTemp & "are only " & wList.Count & " unique words." ActiveDocument.Range.Select Selection.Collapse Direction:=wdCollapseEnd Selection.TypeText vbCrLf & sTemp & vbCrLf For Each chkwrd In wList Selection.TypeText chkwrd & vbCrLf Next chkwrd End Sub
ドキュメント内の各単語が抽出され、小文字に変換されてから、並べ替えられた順序でwListコレクションに追加されることに注意してください。
単語はアルファベットの場合にのみ追加され(したがって、句読点と同様に数字は除外されます)、マクロは単語の大文字と小文字を区別しません。また、マクロはドキュメントの本体にある単語のみを参照することに注意してください。ヘッダー、フッター、テキストボックス、図形などの場所に単語は含まれません。
マクロは、さまざまなニーズに対応するために簡単に変更できます。たとえば、現在のドキュメントの最後ではなく、マクロでワードリストを別のドキュメントに貼り付けることができます。ここで2番目に示されている既存の行の前にこの行を挿入するだけです:
sTemp = "There are " & ActiveDocument.Range.Words.Count & " words " sTemp = sTemp & "in " & ActiveDocument.Name & ", but there " sTemp = sTemp & "are only " & wList.Count & " unique words." Documents.Add ActiveDocument.Range.Select Selection.Collapse Direction:=wdCollapseEnd Selection.TypeText vbCrLf & sTemp & vbCrLf For Each chkwrd In wList Selection.TypeText chkwrd & vbCrLf Next chkwrd End Sub
マクロに実質的な変更が1つだけあることに注意してください。要約用の新しいドキュメントを作成するための「Documents.Add」メソッドの追加です。
単語の頻度を集計するマクロなど、ドキュメントから単語を取得するためのその他のアイデアについては、次のヒントを参照してください。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(7697)は、Microsoft Word 2007、2010、2013、および2016に適用されます。