Aktuelle Seite:
/vba/vbpzeichenzaehler.htm
Letzte Änderung: 24.06.2006

Getestet unter Word2000Getestet unter WordXPGetestet unter Word2003Getestet unter Win2000Getestet unter WinXP  
VBA-Code verfügbar: ja
Beispiel anzeigen
Makro/Datei speichern
Print

Zu jedem Dokument kann man in den Eigenschaften auf der Registerkarte "Statistik" eine Übersicht über die geschriebenen Zeichen/Wörter und Sätze ablesen.
Allerdings ist es umständlich erst die Eigenschaften aufzurufen, vor allem, wenn man diese Informationen gerne während der Arbeit an einem Dokument sehen möchte.

Dieses Problem löst das kleine AddIn CHFZeichenzähler.

Dieses AddIn zeigt die Informationen, die VBA über die ComputeStatistics-Methoden anbietet, in einer eigenen Symbolleiste CHFZähler im Format

Zeichen (Zeichen mit Leerstellen) / Wörter / Absätze / Seiten

an.

ActiveDocument.ComputeStatistics(wdStatisticCharacters)  '# Zeichen  
ActiveDocument.ComputeStatistics(wdStatisticCharactersWithSpaces)  '# Zeichen m. Leerstellen
ActiveDocument.ComputeStatistics(wdStatisticWords)  '# Wörter  
ActiveDocument.ComputeStatistics(wdStatisticParagraphs)  '# Absätze  
ActiveDocument.ComputeStatistics(wdStatisticPages)  '# Seiten  

In einem einstellbaren Intervall werden diese Angaben mit dem aktuellen Dokument abgeglichen und die Anzeige wird aktualisiert. Über den Start-Button wird der Timer gestartet und über den Stop-Button wieder beendet.

Die Konfiguration des TimerIntervalls erfolgt im inaktiven Zustand des Timers, indem Ihr mit gedrückter Strg-Taste den Start-Button anklickt.

Anschließend gebt Ihr in das Eingabefeld das Aktualisierungsintervall in Sekunden an.

Zum Aktualisieren der Anzeige wird ein API-Timer verwendet, da eine VBA-Schleife oder die OnTime-Methode das System zu sehr auslasten und ein flüssiges Arbeiten beeinträchtigen.
Der API-Timer umfasst die beiden APIs SetTimer und KillTimer, mit denen der Timer gestartet und beendet wird.

Der Eingabewert wird über die SaveSetting-Funktion in die Registry geschrieben. Dazu wird der Extrabereich verwendet, in dem VB nud VBA-Programme ihre Daten schreiben dürfen:

HKEY_CURRENT_USER\Software\VB and VBA Program Settings

Die Makros in dem AddIn CHFZeichenzähler verwenden in diesem Bereich die Einträge:

  • Eintrag: chf-online.de
  • Untereintrag: CHFZeichenzähler
  • Schlüssel: TimerIntervall"

Function fkt_MakeRegEntry(iTimer As Integer)  
Const c_Sec As String = "chf-online.de"
Const c_String As String = "CHFZeichenzähler"
Const s_Timer As String = "TimerIntervall"
VBA.SaveSetting c_Sec, c_String, s_Timer, iTimer
End Function  

Beim Start des Timers wird mit der GetSetting-Funktion der gespeicherte Wert aus der Registry ausgelesen und als Intervall im API-Aufruf verwendet.

Hinweis
In Word 2003 ist eine ähnliche Symbolleiste bereits vorhanden, die sich aber nicht automatisch aktualisiert.


 www.chf-online.de/vba/vbpzeichenzaehler.htm © 2001-11 Christian Freßdorf (Zaphod-Systems)