Kleiner Zeichenzähler |
|
|||||||||||||||||||||
Zu jedem Dokument kann man in den Eigenschaften auf der Registerkarte "Statistik" eine Übersicht über
die geschriebenen Zeichen/Wörter und Sätze ablesen. 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. Private Declare Function SetTimer Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerFunc As Long _ ) As Long Private Declare Function KillTimer Lib "user32" ( _ ByVal hwnd As Long, _ ByVal nIDEvent As Long _ ) As Long 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:
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 |
www.chf-online.de/vba/vbpzeichenzaehler.htm | © 2001-11 Christian Freßdorf (Zaphod-Systems) |