24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 11: Procedimentos e Eventos Automáticos

179

Esta linha de código em especial pode ser útil para avisá-lo de que

precisa ir para casa e se preparar para as festas do Ano Novo.

Eis outro exemplo que usa o evento OnTime. Executar os procedimentos

UpdateClock escreve a hora na célula A1 e também programa um

outro evento cinco segundos depois. Esse evento roda novamente o

procedimento UpdateClock. O efeito em cadeia ocorre porque a célula

A1 é atualizada com o horário atual a cada cinco segundos. Para

interromper os eventos, execute o procedimento StopClock (que pode

cancelar o evento). Veja que NextTick é uma variável ao nível de

módulo que armazena o horário para o próximo evento.

Dim NextTick As Date

Sub UpdateClock()

‘ Atualiza a célula A1 com a hora atual

ThisWorkbook.Sheets(1).Range(“A1”) = Time

‘ Configura o próximo evento para

NextTick = Now + TimeValue(“00:00:05”)

Application.OnTime NextTick, “UpdateClock”

End Sub

Sub StopClock()

‘ Cancela o evento atual (para o relógio)

On Error Resume Next

Application.OnTime NextTick, “UpdateClock”, , False

End Sub

CUIDADO!

O evento OnTime prossegue mesmo depois de a pasta de trabalho estar

fechada. Em outras palavras, se você fechar a pasta de trabalho sem

rodar o procedimento StopClock, a pasta de trabalho se abrirá por si

própria em cinco segundos (supondo que o Excel ainda estava rodando).

Para evitar isso, use um procedimento de evento Workbook_BeforeClose,

que contém a seguinte declaração:

Call StopClock

O método OnTime tem dois argumentos adicionais. Se você pretende usar

esse método, deve consultar a ajuda online quanto a detalhes completos.

Se você quiser ver um aplicativo bem complicado, faça um download de

uma cópia da minha pasta de trabalho de relógio analógico, mostrado na

Figura 11-6. O rosto do relógio, na verdade, é um gráfico atualizado a cada

segundo, para exibir a hora do dia. Inútil, mas divertido.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!