VBA Tips - Delay

































Blog Office VBA | Blog Excel | Blog Access |


As funções de delay são muito úteis quando precisamos desacelerar algum processamento ou funcionalidade em detrimento de esperarmos conexões de banco de dados, processos pendentes fora da nossa aplicação e por aí afora.














Divirtam-se!


  Public Function Delay(dblInterval As Double)
   '----------------------------------------------------
   ' Name: Delay
   ' Purpose: Generic delay code
   ' Inputs: dblInterval As Double
   ' Author: Arvin Meyer
   ' Date: January 2, 1999
   ' Comment: 
   '----------------------------------------------------
  On Error GoTo Err_Delay
  Dim Timer1 As Double
  Dim Timer2 As Double
  Timer1 = Timer()
    Do Until Timer2 >= Timer1 + dblInterval
        DoEvents
        Timer2 = Timer()
    Loop

Exit_Delay:
 Exit Function

Err_Delay:
 Select Case Err

 Case Else
  MsgBox Err.Description
  Resume Exit_Delay
 End Select

End Function

Agora, este código, pode ser usado para fazer um texto piscar ou animá-lo. Também pode usá-lo SendKeys, ou outra necessidade qualquer:
Option Explicit 
'API declaration to suspend operation for a specified time (Milliseconds)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Ou  
Option Explicit 
 Sub Wait(tSecs As Single) 
     '   Timer to create a pause
    Dim sngSec As Single      
    sngSec = Timer + tSecs 
    Do While Timer < sngSec 
        DoEvents 
    Loop 
End Sub 


No MS Excel:
Application.Wait Now + TimeValue("0:00:01")

Verifique o Help do VBA para o comando "Wait":
newHour = Hour(Now())newMinute = Minute(Now())newSecond = Second(Now()) + 10waitTime = TimeSerial(newHour, newMinute, newSecond)Application.Wait waitTime

Caso deseje esperar apenas 1 minuto, então:Application.Wait (now() + timevalue("00:01:00"))

Tags: VBA, Office, Tips, delay, wait, espera

Inspiration: 

Nenhum comentário:

Postar um comentário

diHITT - Notícias