Como usar a instrução SendKeys em VBA?

A instrução `SendKeys` em VBA é utilizada para enviar pressionamentos de teclas para a janela que está atualmente ativa. Isso pode ser útil para automatizar tarefas que requerem a interação com a interface do usuário de um aplicativo, como o Microsoft Excel, Word, ou outros programas que aceitam entrada de teclado.

Aqui estão os passos básicos sobre como usar `SendKeys` no VBA:

   Sub ExemploSendKeys()
       ' Ativa a janela do Excel (ou outro aplicativo em que você deseja enviar as teclas)
       AppActivate "Microsoft Excel"

       ' Envia a combinação de teclas CTRL + N (para criar uma nova pasta de trabalho, por exemplo)
       SendKeys "^n", True

       ' Envia texto
       SendKeys "Olá, mundo!", True

       ' Envia ENTER
       SendKeys "~", True
   End Sub
  • Abra o Editor do VBA:
    • No Excel ou Word, pressione `ALT + F11` para abrir o editor do Visual Basic for Applications.
  • Escreva o Código VBA:
    • Insira um módulo ou use um existente, onde você deseja adicionar o código.
  • Use o Método `SendKeys`:
    • A sintaxe básica do `SendKeys` é `SendKeys(string, wait)`.
    • `string`: a sequência de teclas a serem enviadas.
    • `wait`: opcional; se `True`, aguarda a conclusão do processamento das teclas antes de executar a próxima linha de código.
  • Exemplo de Uso:
  • Executar o Código:
    • Você pode executar a macro diretamente do editor do VBA, ou pode adicionar um botão à sua planilha do Excel, por exemplo, e vinculá-lo à macro para execução simples.

Notas Importantes:

  • Foco na Janela: A janela para a qual as teclas são enviadas deve estar ativa. Caso contrário, as teclas serão enviadas para qualquer aplicativo que estiver ativo no momento.
  • Segurança e Estabilidade: O uso de `SendKeys` pode ser instável, especialmente em sistemas onde outras janelas podem se tornar ativas em resposta a eventos assíncronos. Aplicativos que necessitam de alta confiabilidade devem preferir métodos de automação mais robustos.
  • Sintaxe de Teclas Especiais: Algumas teclas têm representações especiais na `string`, por exemplo:
    • `^{}` para CTRL + qualquer tecla.
    • `%{}` para ALT + qualquer tecla.
    • `~` para a tecla ENTER.
    • `{TAB}` para a tecla TAB.
    • `{F1}` para a tecla F1, etc.

Use o `SendKeys` com cautela, pois ele simula a entrada do teclado no sistema operacional de forma direta e pode não funcionar conforme esperado se o ambiente mudar (como uma janela inesperada se tornando ativa).

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project