Anzeigen einer Live Word Count (Microsoft Word)
Word zeigt in der Statusleiste eine Vielzahl von Informationen an, die Ihnen beim Schreiben helfen können. In der Statusleiste werden beispielsweise die Anzahl der Seiten im Dokument und die Zeilennummer auf der aktuellen Seite angezeigt. Eine Sache, die hilfreich wäre, wäre, wenn in der Statusleiste die Anzahl der Wörter im Dokument angezeigt würde, während Sie tippten.
Eine solche Funktion ist jedoch nicht in Word integriert. Die Statusleiste kann nicht über ein Makro rekonfiguriert werden, außer um die gesamte Leiste ein- oder auszublenden oder eine Nachricht darauf zu schreiben. Das Codieren eines Makros, das kontinuierlich eine Nachricht in die Statusleiste schreibt, würde bedeuten, dass die normalen Informationen nicht angezeigt werden. Daher ist eine Lösung, die die Statusleiste verwendet, wahrscheinlich nicht akzeptabel.
Es ist möglich, ein Makro zu schreiben, das die Wortanzahl in einem Dokument kontinuierlich überprüft und das Ergebnis dann in einem anderen Bereich des Dokuments anzeigt, z. B. in der Titelleiste oder einer Symbolleistenschaltfläche. Abhängig von der Art Ihres Systems ist eine solche Lösung möglicherweise nicht akzeptabel. Sie müssen einige Tests durchführen, um festzustellen, ob dies der Fall ist. Der interne Code zum Berechnen der Wortanzahl für ein Dokument ist ziemlich langsam, insbesondere wenn Ihre Dokumente größer werden. Dies bedeutet, dass eine ständige Überprüfung der Wortanzahl Ihr gesamtes System verlangsamen kann, möglicherweise in einem inakzeptablen Ausmaß.
Berücksichtigen Sie unter Berücksichtigung dieser Einschränkung die folgenden Makros:
Sub AutoExec() NumberOfWords End Sub Sub NumberOfWords() Dim lngWords As Long Dim myRange As Range With Word.Application If .Windows.Count > 0 Then Set myRange = ActiveDocument.Content lngWords = myRange.ReadabilityStatistics(1).Value .Caption = Format(lngWords, "##,##0") & " words - Microsoft Word" Else .Caption = "Microsoft Word" End If .OnTime Now + TimeValue(OnTm(lngWords)), "NumberOfWords" End With End Sub Private Function OnTm(ByVal lngWd As Long) As String Select Case lngWd \ 1000 Case 0 To 10 OnTm = "00:00:01" Case 11 To 20 OnTm = "00:00:05" Case 21 To 30 OnTm = "00:00:10" Case 31 To 40 OnTm = "00:00:15" Case Else OnTm = "00:00:20" End Select End Function
In diesem Satz sind drei Makros enthalten, von denen jedes eine andere Aufgabe ausführt. Das erste Makro mit dem Namen AutoExec wird automatisch ausgeführt, wenn Word gestartet wird. Der einzige Zweck besteht darin, das nächste Makro, NumberOfWords, zum ersten Mal aufzurufen.
Das NumberOfWords-Makro ist das Arbeitspferd dieses Satzes. Es wird überprüft, ob in Word Fenster geöffnet sind. In diesem Fall wird die interne Codierung von Word aufgerufen, um die Anzahl der Wörter im Dokument zu bestimmen. Anschließend wird die Ausgabe formatiert und in der Titelleiste des Fensters angezeigt.
Wenn keine Fenster geöffnet sind, zeigt das Makro einfach „Microsoft Word“ in der Titelleiste an.
Das Letzte, was NumberOfWords tut, ist sich selbst zu sagen, wann es erneut ausgeführt werden soll. Dazu wird die OnTime-Funktion von VBA verwendet und die Neustartzeit auf einen Wert innerhalb der nächsten 20 Sekunden festgelegt. Hier kommt das dritte Makro, OnTm, ins Spiel. Es überprüft die Anzahl der Wörter im aktuellen Dokument und bestimmt das Intervall zwischen den Ausführungen des NumberOfWords-Makros. Wenn Ihr Dokument 10.000 oder weniger Wörter enthält, wird das Makro jede Sekunde ausgeführt. Wenn es 11.000 bis 20.000 Wörter gibt, wird es alle fünf Sekunden ausgeführt und so weiter.
Der Grund für diese Überprüfung wurde bereits in diesem Tipp behandelt: Die Berechnung der Wortanzahl und die Formatierung der Titelleisteninformationen kann eine Weile dauern (in der VBA-Terminologie). Wenn Ihr Dokument groß ist, kann dies zu unerwünschten und spürbaren Verzögerungen führen bei der Aktualisierung Ihres Dokuments. Falls gewünscht, können Sie mit der Codierung in der OnTm-Funktion spielen, um die beste Aufschlüsselung der Verzögerungen für die von Ihnen verwendeten Dokumenttypen zu ermitteln.
_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 beliebteste Textverarbeitungssoftware der Welt.) Dieser Tipp (1608) gilt für Microsoft Word 97, 2000, 2002 und 2003.