Tipps & Tricks 24.08.2010, 13:40 Uhr

Word-Makro zum Wörter und Zeichen zählen

Problem: Vielen Dank für den Artikel «Ein Makro zum Zählen» im PCtipp 10/2004 auf Seite 37. Als Redaktor einer wissenschaftlichen Zeitschrift muss ich auch die Anzahl Anschläge langer Artikel zählen. Bei einem Arikel mit ca. 33000 Anschlägen kam die Meldung: «Laufzeitfehler 6 Überlauf». Wie kann dieses Problem behoben werden?
Lösung: Sie sprechen hier folgendes Makro aus dem Artikel [1] an:
So sieht das ursprüngliche Makro aus
Der Grund für die Fehlermeldung ist, dass die Makro-Variablen im Datentyp «Integer» deklariert wurden. Dies ist auch in Ordung, solange das Ergebnis nicht ausserhalb des Bereichs von -32'768 bis 32'767 liegt. Sobald dies der Fall ist, das Ergebnis z.B. 33'000 lautet, kann die Rechnung nicht mehr verarbeitet werden.
Im Makro ist der Datentyp als «Integer» definiert
Das führt bei grossen Dokumenten zu diesem Laufzeitfehler
Um diesen Laufzeitfehler zu verhindern, können Sie in den Datentyp «Variant» verwenden, der allerdings mehr Speicherplatz benötigt.
Hier die neue Variante
Damit funktionierts.
Grundsätzlich gilt also: Für kleinere Dokumente macht es mehr Sinn mit dem bisherigen Makro zu arbeiten, da dieses weniger Speicherplatz benötigt. Sobald Sie an die Ergebnis-Grenze von 30'000 stossen, ändern Sie den Datentyp im Makro dieses Dokumentes.
---------------------------------------------
MAKRO ZUM KOPIEREN:
---------------------------------------------
Sub ZeichenZaehlen()
Dim intWords As Variant
Dim intChars As Variant
intWords = ActiveDocument.BuiltInDocumentProperties(wdPropertyWords)
intChars = ActiveDocument.BuiltInDocumentProperties(wdPropertyCharsWSpaces)
MsgBox "Diese Datei besteht aus " & intWords _
& " Wörtern und " & intChars & " Zeichen (inkl. Leerzeichen)."
End Sub
---------------------------------------------



Kommentare
Es sind keine Kommentare vorhanden.