Die Zeit zwischen zwei Tastatur-Anschlägen messen

Ich suche nach einer Möglichkeit, mit Excel die Zeit zwischen zwei Tastatur-Anschlägen zu messen. Dabei sollte nach Möglichkeit der Buchstabe der entsprechenden Tasten, beispielsweise [P] für das Starten und [V] für das Beenden, nicht in der Zelle auftauchen. Können Sie mir dabei helfen?

Dieses Problem läßt sich nur durch Programmierung lösen. Dabei können Sie sich auf die Eigenschaft OnKey des Objekts Application stützen, die einen Tastendruck abfangen und durch einen Prozeduraufruf ersetzen kann. So rufen Sie zum Beispiel mit der Taste [P] eine Startprozedur für die Zeitmessung auf und mit der Taste [V] die Prozedur zum Beenden. Dabei schreibt die Startprozedur die aktuelle Zeit in eine globale Variable, während die zweite Prozedur diesen Wert von der aktuellen Zeit abzieht und die Differenz ausgibt.
Starten Sie den Visual-Basic-Editor mit dem Befehl Extras – Makro – Visual-Basic-Editor. Dort wechseln Sie im Projekt-Fenster in den Ordner Microsoft-Excel-Objekte und markieren den Eintrag Diese Arbeitsmappe. Mit der Taste [F7] öffnen Sie das Editor-Fenster mit den Anweisungen. Wählen Sie im ersten Kombinationsfeld den Eintrag Workbook und im zweiten Open. In das Editor-Fenster geben Sie ein:

Private Sub Workbook_Open ()¶
Application.OnKey ôpô, ôStartTimerô¶
Application.OnKey ôvô, ôStopTimerô¶
Timing = False¶
End Sub¶
Die Anweisungen unter Open führt Excel beim Öffnen der Arbeitsmappe aus. Die erste Zeile sorgt für den Prozedur-Aufruf StartTimer durch die Taste [P], die zweite für den Aufruf von StopTimer durch [V]. Damit das doppelte Drücken der Tasten nicht zu falschen Ergebnissen führt, benutzen Sie die globale Variable Timing zur Prüfung.
Zu Beginn der Messung setzt StartTimer die Variable auf den Wert Wahr. Nach der Messung setzt StopTimer die Variable wieder auf Falsch. Das bedeutet: Nur wenn Timing den Wert Falsch aufweist, darf eine neue Messung beginnen. Damit die erste Messung problemlos starten kann, initialisieren Sie also Timing entsprechend mit dem Wert False (falsch).
Um die Prozeduren und Variablen anzulegen, fügen Sie dem Visual-Basic-Projekt mit dem Befehl Einfügen – Modul ein neues Modul hinzu. Das markieren Sie im Projekt-Fenster und wechseln mit der Taste [F7] in den zugehörigen Anweisungstext. Dort wählen Sie im ersten Kombinationsfeld den Eintrag Allgemein und im zweiten Deklarationen. Im Textbereich geben Sie folgende Anweisung ein:
Dim Timing As Boolean, TimeStore As Variant¶
Die Variable TimeStore dient der Zwischenspeicherung des Zeitwertes während des Meßvorgangs. Im Anschluß daran legen Sie mit Hilfe des Befehls Einfügen – Prozedur die beiden Prozeduren StartTimer und StopTimer an. Die VBA-Anweisungen für Start- Timer lauten wie folgt:
Public Sub StartTimer ()¶
If Not Timing Then¶
Timing = True¶
TimeStore = Timer¶
End If¶
End Sub¶
Falls keine Messung aktiv ist, bekommt die Prüf-Variable Timing den Wert Wahr und danach die Speicher- Variable TimeStore die aktuelle Zeit zugewiesen. Die zweite Prozedur sieht dann folgendermaßen aus:
Public Sub¶
StopTimer ()¶
If Timing Then¶
Duration = Timer - TimeStore¶
Timing = False¶
MsgBox ôGemessen: ô & Duration & ô Sec.ô, vbOKOnly, ôMeßergebnisô¶
End If¶
End Sub¶
Falls eine Messung läuft, ermittelt die Prozedur die Differenz der aktuellen Zeit zur Startzeit, setzt Timing wieder auf den Wert Falsch und gibt den gemessenen Wert in Sekunden in einem Dialogfenster an. Um den Wert beispielsweise in die erste Zelle der aktuellen Tabelle zu übernehmen, tauschen Sie die Anweisung MsgBox durch folgenden Befehl aus:
ActiveWorkbook.Cells (1,1) = Duration¶
Bedenken Sie, daß die Anweisung OnKey nicht für Tastaturanschläge während der Bearbeitung einer Zelle funktioniert. Die Eingabe des Textes Dies ist ein p führt ebensowenig zum Start einer Messung wie die Tastenkombination [Shift]+[P]. Um die Messungen nicht versehentlich zu starten, empfiehlt sich eine Tastenkombina- tion wie [Strg]+[Shift]+[P]. Dann verändert sich die entsprechende Anweisung wie folgt:
Application.OnKey  ä+^pô,  äStartTimerô¶