Como usar eventos OnTime e Keypress Events no Excel 2016 VBA

Como usar eventos OnTime e Keypress Events no Excel 2016 VBA

Existem dois tipos de eventos que você pode usar na programação VBA para Excel 2016 que não estão associados a objetos: hora e pressionamentos de tecla. Como o tempo e os pressionamentos de tecla não estão associados a um objeto específico, como uma pasta de trabalho ou uma planilha, você programa esses eventos em um módulo VBA normal.

O evento OnTime

O evento OnTime ocorre quando ocorre uma hora específica do dia. O exemplo a seguir demonstra como fazer o Excel executar um procedimento quando ocorre o evento 15h. Nesse caso, uma voz de robô diz para você acordar, acompanhada por uma caixa de mensagem:

Sub SetAlarm ()
  Application.OnTime 0.625, “DisplayAlarm”
End Sub
Sub DisplayAlarm ()
  Application.Speech.Speak (“Ei, acorda”)
  MsgBox “É hora do seu recesso da tarde!”
End Sub

Neste exemplo, o método OnTime do objeto Aplicativo é usado. Este método leva dois argumentos: a hora (0,625 ou 3:00 pm) e o nome do procedimento Sub a ser executado quando o evento de hora ocorrer (DisplayAlarm).

Este procedimento é bastante útil se você tende a ficar tão envolvido com o trabalho que se esquece das reuniões e dos compromissos. Basta definir um evento OnTime para se lembrar.

A maioria das pessoas acha difícil pensar no tempo em termos do sistema de numeração do Excel. Portanto, você pode querer usar a função VBA TimeValue para representar a hora. TimeValue converte uma string que se parece com uma hora em um valor que o Excel pode manipular. A declaração a seguir mostra uma maneira mais fácil de programar um evento para as 15h:

Application.OnTime TimeValue (“3:00:00 pm”), “DisplayAlarm”

Se quiser agendar um evento em relação ao horário atual (por exemplo, daqui a 20 minutos), você pode usar uma declaração como esta:

Application.OnTime Now + TimeValue (“00:20:00”), “DisplayAlarm”

Você também pode usar o método OnTime para executar um procedimento VBA em um determinado dia. Você deve se certificar de que seu computador continue funcionando e que a pasta de trabalho com o procedimento seja mantida aberta. A seguinte declaração executa o procedimento DisplayAlarm às 17h do dia 31 de dezembro de 2016:

Application.OnTime DateValue (“31/12/2016 5:00 pm”), “DisplayAlarm”

Esta linha de código específica pode ser útil para avisá-lo de que você precisa ir para casa e se preparar para as festividades da véspera de Ano Novo.

Aqui está outro exemplo que usa o evento OnTime. Executar os procedimentos UpdateClock grava a hora na célula A1 e também programa outro evento cinco segundos depois. Este evento executa novamente o procedimento UpdateClock. O efeito líquido é que a célula A1 é atualizada com a hora atual a cada cinco segundos. Para interromper os eventos, execute o procedimento StopClock (que cancela o evento). Observe que NextTick é uma variável de nível de módulo que armazena a hora do próximo evento.

Dim NextTick As Date
Sub UpdateClock ()
'Atualiza a célula A1 com a hora atual
  ThisWorkbook.Sheets (1) .Range (“A1”) = Time
'Configure o próximo evento daqui a cinco segundos
  NextTick = Now + TimeValue (“00:00:05”)
  Application.OnTime NextTick, “UpdateClock”
End Sub
Sub StopClock ()
'Cancela o evento OnTime (para o relógio)
  On Error Resume Next
  Application.OnTime NextTick, “UpdateClock”,, False
End Sub

O evento OnTime persiste mesmo depois que a pasta de trabalho é fechada. Em outras palavras, se você fechar a pasta de trabalho sem executar o procedimento StopClock, a pasta de trabalho se abrirá novamente em cinco segundos (supondo que o Excel ainda esteja em execução). Para evitar isso, use um procedimento de evento Workbook_BeforeClose que contém a seguinte instrução:

Call StopClock

O método OnTime possui dois argumentos adicionais. Se você planeja usar este método, deve consultar o sistema de Ajuda para obter os detalhes completos.

Se você gostaria de ver um aplicativo bastante complicado, verifique este aplicativo de relógio analógico. O mostrador do relógio é na verdade um gráfico, e o gráfico é atualizado a cada segundo para exibir a hora do dia. Inútil, mas divertido.

Como usar eventos OnTime e Keypress Events no Excel 2016 VBA

Um aplicativo de relógio analógico.

Eventos de keypress

Enquanto você trabalha, o Excel monitora constantemente o que você digita. Por causa disso, você pode configurar as coisas de forma que um pressionamento de tecla ou uma combinação de teclas execute um procedimento.

Aqui está um exemplo que reatribui as teclas PgDn e PgUp:

Sub Setup_OnKey ()
  Application.OnKey “{PgDn}”, “PgDn_Sub”
  Application.OnKey “{PgUp}”, “PgUp_Sub”
End Sub
Sub PgDn_Sub ()
  On Error Resume Next
  ActiveCell.Offset (1, 0) .Activate
End Sub
Sub PgUp_Sub ()
  On Error Resume Next
  ActiveCell.Offset (-1, 0) .Activate
End Sub

Depois de configurar os eventos OnKey executando o procedimento Setup_OnKey, pressione PgDn para descer uma linha. Pressionar PgUp move você uma linha para cima.

Observe que os códigos das teclas estão entre colchetes, não entre parênteses. Para obter uma lista completa dos códigos do teclado, consulte o sistema de Ajuda. Pesquise OnKey.

Neste exemplo, On Error Resume Next é usado para ignorar quaisquer erros gerados. Por exemplo, se a célula ativa estiver na primeira linha, tentar mover uma linha para cima causa um erro que pode ser ignorado com segurança. E se uma planilha de gráfico estiver ativa, não há nenhuma célula ativa.

Ao executar a seguinte rotina, você cancela os eventos OnKey:

Sub Cancel_OnKey ()
  Application.OnKey “{PgDn}”
  Application.OnKey “{PgUp}”
End Sub

Usar uma string vazia como o segundo argumento para o método OnKey não cancela o evento OnKey. Em vez disso, faz com que o Excel simplesmente ignore o pressionamento de tecla. Por exemplo, a instrução a seguir informa ao Excel para ignorar Alt + F4. O sinal de porcentagem representa a tecla Alt:

  Application.OnKey “% {F4}”, ““

Embora você possa usar o método OnKey para atribuir uma tecla de atalho para executar uma macro, você deve usar a caixa de diálogo Opções de macro para esta tarefa.

Se você fechar a pasta de trabalho que contém o código e deixar o Excel aberto, o método OnKey não será redefinido. Como consequência, pressionar a tecla de atalho fará com que o Excel abra automaticamente o arquivo com a macro. Para evitar que isso aconteça, você deve incluir o código em seu código de evento Workbook_BeforeClose para redefinir o evento OnKey.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.