![]() |
||
![]() |
Die Zeit zwischen zwei Tastatur-AnschlΣgen messenIch 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ô╢ |
![]() |