Wie kann ich ein Makro eine bestimmte Zeit pausieren lassen? Im Windowsscriptinghost gibt es die Funktion WScript.Sleep(). Der Aufruf dieser Funktion aus dem Makro schlägt jedoch fehl!
Beschreibung:
Es kann unter Umständen notwendig sein ein Makro zu pausieren. Beispielsweise weil man per COM eine andere Anwendung startet und auf die Bereitschaft der Anwendung warten möchte um weitere Eingaben an die Anwendung zu senden.
Im Windows Scripting Host steht hierfür die Funktion WScript.Sleep(<Anzahl Millisekunden>)zur Verfügung. Diese Funktion kann in einem Makro jedoch so nicht aufgerufen werden.
Lösung:
Mit einer kleinen Funktion die einfach am Ende des Makrocode eingefügt werden kann, steht diese Funktionalität zur Verfügung.
Kopieren Sie dazu einfach den folgenden Code am Ende Ihres Makros ein:
'Eigene Milisekunden timerfunktion
Function Sleep(milliseconds)
Dim starttimer, endtimer
milliseconds=milliseconds/1000
starttimer=Timer()
endtimer=starttimer+milliseconds
If endtimer>=86400 Then
endtimer=endtimer-86400
End If
do while Timer()<endtimer
loop
End Function
Mit dem Aufruf von
Sleep(<Millisekunden>)
kann die Funktion dann genutzt werden.
Beispiel:
'10 Sekunden warten, dann MsgBox öffnen:
Sleep(10000)
MsgBox "Diese Nachricht wird erst nach 10 Sekunden angezeigt!"
Hinweis: Ab der Version AG VIP SQL 1.10.007 wird Ihnen die bequemere und effizientere Funktion Application.Sleep(<Millisekunden>) zur Verfügung stehen.