Generieren einer Anzahl von Wortvorkommen (Microsoft Word)
Während Sie Ihre Dokumente analysieren, fragen Sie sich möglicherweise, ob es eine Möglichkeit gibt, die Anzahl der Wörter im Dokument zu zählen. Leider enthält Word eine solche Funktion nicht, aber Sie können einige Dinge tun.
Wenn Sie wissen möchten, wie oft ein bestimmtes Wort oder eine bestimmte Phrase verwendet wird, können Sie zunächst die folgenden Schritte ausführen:
-
Drücken Sie Strg + H, um die Registerkarte Ersetzen des Dialogfelds Suchen und Ersetzen anzuzeigen. (Siehe Abbildung 1.)
-
Geben Sie im Feld Suchen nach das Wort oder die Phrase ein, die gezählt werden soll.
-
Geben Sie im Feld Ersetzen durch ^ & ein. Diese Zeichenfolge teilt Word mit, dass Sie das, was Sie finden, durch das ersetzen möchten, was Sie in das Feld Suchen nach eingegeben haben. (Mit anderen Worten, Sie ersetzen das Wort oder die Phrase durch sich selbst.)
-
Wenn Sie nach einzelnen Wörtern suchen, aktivieren Sie das Kontrollkästchen Nur ganze Wörter suchen.
-
Klicken Sie auf Alle ersetzen. Word nimmt die Ersetzungen vor und zeigt Ihnen, wie viele Instanzen ersetzt wurden. Das ist die Nummer, die Sie wollen.
Dieser Ansatz funktioniert hervorragend, wenn Sie nur ein oder zwei Wörter oder Sätze haben, die Sie kennen möchten. Sie können den Prozess ein wenig automatisieren, indem Sie das Dokument mithilfe eines Makros durchsuchen und für Sie zählen. Das folgende Makro fordert den Benutzer zur Eingabe eines Wortes auf und zählt dann, wie oft dieses Wort im Dokument angezeigt wird. Es wird weiterhin nach einem anderen Wort gefragt, bis der Benutzer auf die Schaltfläche Abbrechen klickt.
Sub FindWords() Dim sResponse As String Dim iCount As Integer ' Input different words until the user clicks cancel Do ' Identify the word to count sResponse = InputBox( _ Prompt:="What word do you want to count?", _ Title:="Count Words", Default:="") If sResponse > "" Then ' Set the counter to zero for each loop iCount = 0 Application.ScreenUpdating = False With Selection .HomeKey Unit:=wdStory With .Find .ClearFormatting .Text = sResponse ' Loop until Word can no longer ' find the search string and ' count each instance Do While .Execute iCount = iCount + 1 Selection.MoveRight Loop End With ' show the number of occurences MsgBox sResponse & " appears " & iCount & " times" End With Application.ScreenUpdating = True End If Loop While sResponse <> "" End Sub
Wenn Sie alle eindeutigen Wörter in einem Dokument sowie die Häufigkeit der einzelnen Wörter im Dokument ermitteln möchten, ist ein anderer Ansatz erforderlich. Das folgende Makro macht genau das.
Sub WordFrequency() Const maxwords = 9000 'Maximum unique words allowed Dim SingleWord As String 'Raw word pulled from doc 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, k, l, Temp As Integer 'Temporary variables Dim ans As String 'How user wants to sort results Dim tword As String ' Dim aword As Object ' Dim tmpName As String ' ' Set up excluded words Excludes = "[the][a][of][is][to][for][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)) 'Out of range? If SingleWord < "a" Or SingleWord > "z" Then SingleWord = "" End If 'On exclude list? If InStr(Excludes, "[" & SingleWord & "]") Then SingleWord = "" End If 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("Too many words.", 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 Ausschlussliste 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.
Wenn Sie aus irgendeinem Grund keine Makros verwenden möchten, gibt es andere Programme, mit denen Sie Wortzahlen erstellen können. Beispielsweise enthält der NoteTab-Texteditor (die „Light“ -Version kann kostenlos unter https://www.notetab.com/ heruntergeladen werden) eine Funktion, die eine Wortzahl bereitstellt.
Sie müssen lediglich Ihr gesamtes Dokument kopieren und in NoteTab einfügen. Wählen Sie dann in NoteTab Extras | Textstatistik | Mehr. Es enthält eine Analyse der Worthäufigkeit einschließlich der Prozentsätze.
_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 (10761) gilt für Microsoft Word 2007, 2010, 2013 und 2016. Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: