Während Sie Ihre Dokumente analysieren, fragen Sie sich möglicherweise, ob es eine Möglichkeit gibt, eine Worthäufigkeitsliste zu erstellen. Mit anderen Worten, Sie möchten möglicherweise eine Liste aller eindeutigen Wörter in Ihrem Dokument zusammen mit der Häufigkeit, mit der sie angezeigt werden, erstellen.

Leider enthält Word eine solche Funktion nicht. Sie können jedoch mithilfe eines Makros ein eigenes erstellen. Das folgende VBA-Makro ist ein Beispiel:

Sub WordFrequency()

Dim SingleWord As String           'Raw word pulled from doc     Const maxwords = 9000              'Maximum unique words allowed     Dim Words(maxwords) As String      'Array to hold unique words     Dim Freq(maxwords) As Integer      'Frequency counter for unique words     Dim WordNum As Integer             'Number of unique words     Dim ByFreq As Boolean              'Flag for sorting order     Dim ttlwds As Long                 'Total words in the document     Dim Excludes As String             'Words to be excluded     Dim Found As Boolean               'Temporary flag     Dim j As Integer                   'Temporary variables     Dim k As Integer                   '     Dim l As Integer                   '     Dim Temp As Integer                '     Dim tword As String                '

' Set up excluded words     Excludes = "[the][a][of][is][to][for][this][that][by][be][and][are]"



' Find out how to sort     ByFreq = True     ans = InputBox$("Sort by WORD or by FREQ?", "Sort order", "WORD")

If ans = "" Then End     If UCase(ans) = "WORD" Then         ByFreq = False     End If          Selection.HomeKey Unit:=wdStory     System.Cursor = wdCursorWait     WordNum = 0     ttlwds = ActiveDocument.Words.Count

' Control the repeat     For Each aword In ActiveDocument.Words         SingleWord = Trim(LCase(aword))

If SingleWord < "a" Or SingleWord > "z" Then SingleWord = ""    'Out of range?

If InStr(Excludes, "[" & SingleWord & "]") Then SingleWord = "" 'On exclude list?

If Len(SingleWord) > 0 Then             Found = False             For j = 1 To WordNum                 If Words(j) = SingleWord Then                     Freq(j) = Freq(j) + 1                     Found = True                     Exit For                 End If             Next j             If Not Found Then                 WordNum = WordNum + 1                 Words(WordNum) = SingleWord                 Freq(WordNum) = 1             End If             If WordNum > maxwords - 1 Then                 j = MsgBox("The maximum array size has been exceeded. _                   Increase maxwords.", vbOKOnly)

Exit For             End If         End If         ttlwds = ttlwds - 1         StatusBar = "Remaining: " & ttlwds & "     Unique: " & WordNum     Next aword

' Now sort it into word order     For j = 1 To WordNum - 1         k = j         For l = j + 1 To WordNum             If (Not ByFreq And Words(l) < Words(k)) Or                 (ByFreq And Freq(l) > Freq(k)) Then k = l         Next l         If k <> j Then             tword = Words(j)

Words(j) = Words(k)

Words(k) = tword             Temp = Freq(j)

Freq(j) = Freq(k)

Freq(k) = Temp         End If         StatusBar = "Sorting: " & WordNum - j     Next j

' Now write out the results     tmpName = ActiveDocument.AttachedTemplate.FullName     Documents.Add Template:=tmpName, NewTemplate:=False     Selection.ParagraphFormat.TabStops.ClearAll     With Selection         For j = 1 To WordNum             .TypeText Text:=Trim(Str(Freq(j))) & vbTab & Words(j) & vbCrLf         Next j     End With     System.Cursor = wdCursorNormal     j = MsgBox("There were " & Trim(Str(WordNum)) & _         " different words ", vbOKOnly, "Finished")

End Sub

Wenn Sie ein Dokument öffnen und dieses Makro ausführen, werden Sie gefragt, ob Sie eine nach Wort oder Häufigkeit sortierte Liste erstellen möchten. Wenn Sie ein Wort auswählen, wird die resultierende Liste in alphabetischer Reihenfolge angezeigt. Wenn Sie die Häufigkeit auswählen, wird die resultierende Liste in absteigender Reihenfolge angezeigt, je nachdem, wie oft das Wort im Dokument angezeigt wurde.

Während das Makro ausgeführt wird, zeigt die Statusleiste an, was gerade passiert.

Abhängig von der Größe Ihres Dokuments und der Geschwindigkeit Ihres Computers kann es einige Zeit dauern, bis das Makro fertig ist. (Ich habe es mit einem 719-seitigen Dokument mit über 349.000 Wörtern ausgeführt und es dauerte ungefähr fünf Minuten.)

Beachten Sie, dass das Makro eine Zeile enthält, die einen Wert in der Zeichenfolge Ausschlüsse festlegt. Diese Zeichenfolge enthält Wörter, die das Makro beim Zusammenstellen der Wortliste ignoriert. Wenn Sie der Liste Wörter hinzufügen möchten, fügen Sie sie einfach der Zeichenfolge zwischen [eckigen Klammern] hinzu. Stellen Sie außerdem sicher, dass die Ausschlusswörter in Kleinbuchstaben geschrieben sind.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (879) gilt für Microsoft Word 97, 2000, 2002 und 2003.