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!

~ 0 min
19.06.2008 12:48
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.

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Kommentieren nicht möglich