O método OnTime programa um procedimento para ser executado em um momento
especificado no futuro (seja em uma determinada hora do dia ou após uma
quantidade específica de tempo decorrido).
A estrutura de chamada à função OnTime se faz da seguinte forma:
Application.OnTime([EarliestTime], [Procedure], [LatestTime], [Schedule])
EarliestTime
Variant necessário. Especifica quando você deseja que esse procedimento seja executado.
Procedure
String necessário. O nome do procedimento a ser executado.
LatestTime
Variant opcional. Especifica até quando o procedimento pode ser executado. Por exemplo, se LatestTime estiver definido como EarliestTime + 30 e o Microsoft Excel não estiver em modo Pronto, Copiar, Recortar ou Localizar em EarliestTime devido a um outro procedimento estar sendo executado, o Microsoft Excel esperará 30 segundos para que o primeiro procedimento termine. Se o Microsoft Excel não estiver em modo Pronto dentro de 30 segundos, o procedimento não será executado. Se esse argumento for omitido, o Microsoft Excel esperará até que o procedimento possa ser executado.
Schedule
Variant opcional. True para programar um novo procedimento OnTime. False para limpar um procedimento definido anteriormente. O valor padrão é True.
Para informar ao VBA um valor de data válido para execução do método OnTime,
usa-se a propriedade Now do VBA juntamente com a função TimeValue()
. Somando as duas, é possível programar o procedimento para ser
executado quando uma quantidade de tempo específica (contando a partir de
agora) tiver decorrido.
Caso seja necessário informar uma hora específica, por exemplo, 3 da tarde (ou
15:00), usa-se TimeValue(time) onde time
� um valor de hora
informado atrav�s de uma String.
Veja os exemplos de código abaixo:
1 2 3 4 5 6 7 |
Public Sub ExecutaOnTime() |
1 2 3 4 5 6 7 |
Public Sub ExecutaOnTime() |
Da forma que está, o código irá configurar a função ExecutaOnTime (linha 1) para ser executada às na próxima 13:00 do computador em que está sendo executada. Como este é apenas um exemplo, configure uma hora que estiver mais próxima para não esperar muito.
1 2 3 4 5 6 7 8 9 10 11 |
Public Sub ExecutaOnTime() Public Sub CancelaOnTime() |
Tomás Vásquez