sintassi
Sleep millisecondi
esempi:
Sleep 10000 10 secondi
Sleep 60000 1 minuto
Sleep 3600000 1 ora
sintassi
Application.Wait "ora"
Application.Wait("ora")
esempi: aspetta 5 secondi
Application.Wait (Now + TimeValue("0:00:05"))
esempi:
Application.Wait "15:30:00" aspetta le 3 e mezzo del pomeriggio
Application.Wait Now + TimeValue("0:00:01") aspetta 1 secondo
Application.Wait(Now + TimeValue("00:00:01")) aspetta 1 secondo
Application.Wait DateAdd("s", 10, Now) aspetta 10 secondi
Application.Wait DateAdd("n", 1, Now) aspetta 1 minuto
Application.Wait DateAdd("h", 1, Now) aspetta 1 ora
sintassi: aggiunta un temporizzatore x secondi
Dim pausa, inizio
pausa = x secondi
inizio = Timer
Do While Timer < inizio + pausa
DoEvents passa il controllo ad altri processi, lascia lavorare in ExcelLoop
esempio: macro conto alla rovescia
Range("B1").Value = 60 assegniamo ad una cella (B1) un valore espresso in secondi che rappresenta il tempo massimo iniziale
10: indice riga a cui si ritorna per continuare il ciclo GoTo
Dim pausa, inizio dimensionamento delle due variabiliGoTo 10 altrimenti (se non siamo a zero in B1), si ritorna alla riga 10
pausa = 1 imposta la durata espressa in secondi
inizio = Timer imposta il momento di inizio
Do While Timer < inizio + pausa controlla il tempo per aggiornare la cella B1DoEvents passa il controllo ad altri processi, lascia lavorare in ExcelLoop
Range("B1").Value = Range("B1").Value - 1 quindi ad ogni secondo trascorso temporizzato dal Timer si sottrae 1 al valore presente nella cella B1
If Range("B1").Value = 0 Then inseriamo l'istruzione se B1 é uguale a 0MsgBox "L'ora X é scoccata" avvisiamo con un messaggioEnd If fine ciclo if
Exit Sub si esce dalla routine