VBA SendKeys
O método SendKeys do VBA é usado para enviar pressionamentos de tecla para o aplicativo ativo:
1 | Application.SendKeys ("s") |
O código acima irá imitar o pressionamento da tecla “s” no teclado.
O método SendKeys leva dois argumentos:
- Chaves - a (s) chave (s) que você deseja enviar para o aplicativo como texto.
- Esperar (Opcional)- Este valor pode ser True ou False. Se for True, o Excel espera que as chaves sejam processadas antes de executar a próxima linha de código. Se for False, o Excel continuará a executar o procedimento sem esperar que as chaves sejam processadas.
SendKeys é geralmente usado ao interagir com outros aplicativos porque é uma maneira rápida e fácil de realizar tarefas. Por exemplo, você pode usar SendKeys ao automatizar o Internet Explorer.
No entanto, você deve ter muito cuidado ao usar o método SendKeys, pois ele pode ter resultados inesperados. Recomendamos usar SendKeys apenas como último recurso e / ou quando os erros forem toleráveis (ou facilmente detectáveis).
Exemplos VBA SendKeys
Cada chave em termos de letras é representada por seu caractere, por exemplo, a é “a”.
Se desejar usar as teclas em combinação com Ctrl, Shift ou Alt, você deve preceder o código da tecla com o seguinte:
Chave | Código |
---|---|
Ctrl | ^ |
Mudança | + |
Alt | % |
O código a seguir usa o método SendKeys para salvar a pasta de trabalho:
12345 | Sub UsingSendKeys ()Application.SendKeys ("s")End Sub |
Como mencionamos antes, você precisa ser extremamente cuidadoso ao usar SendKeys. O código a seguir especifica um tempo de espera de 10 segundos antes que o texto seja inserido / enviado ao Bloco de notas. Ao esperar 10 segundos, você permite que o Bloco de notas seja aberto corretamente, reduzindo a chance de um erro.
Observação: este código usa o método Application.Wait.
1234567 | Sub UsingSendKeysWithWait ()Call Shell ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Wait (Now () + TimeValue ("00:00:10"))Chame SendKeys ("This is Some Text", True)End Sub |
O resultado após 10 segundos de tempo de espera é:
SendKeys pode ser uma maneira extremamente rápida e fácil de realizar tarefas. No entanto, os riscos de erros são relativamente altos. Use SendKeys apenas quando o risco for aceitável!