SendKeys do VBA do Excel
Neste artigo, veremos um esboço sobre as SendKeys do Excel VBA. Você já pensou em criar um programa que salve sua planilha automaticamente e não precise pressionar o botão Ctrl + S ou Excel Salvar para fazer isso? Parece ser uma fantasia, certo? No entanto, isso pode ser feito. No VBA, existe uma instrução de comando chamada SendKeys, que permite enviar as teclas pressionadas como um comando para o aplicativo da mesma maneira que se você estivesse usando o teclado para executar a tarefa. (Ex. Salvando o arquivo. Você pressiona o botão Ctrl + S para salvar um arquivo). É recomendável usar as teclas de envio como a última opção enquanto você estiver automatizando qualquer tarefa. A razão por trás disso é, como já discutimos, o SendKeys envia as teclas digitadas para o aplicativo que está ativo no momento. E se você tiver uma janela de aplicativo ativa no momento do código em execução, na qual não deseja que as alterações ocorram? Vai dar resultados inesperados, certo? Essa é a única razão pela qual devemos usar as SendKeys como a última opção ao automatizar as coisas. No entanto, ele pode ser usado para automação pequena, onde nenhum outro ambiente de aplicativo está prestes a interferir com aquele em que você deseja que a alteração ocorra.
Método de sintaxe SendKeys:
SendKeys(String As String, (Wait))
Onde,
O primeiro argumento 'String As String' especifica as combinações de teclas que você deseja usar no programa (por exemplo, Ctrl + S seria a combinação de teclas).
Wait seria um parâmetro opcional que aceita os valores booleanos TRUE e FALSE. Se a espera tiver o valor TRUE, significa que o sistema aguardará o processamento das chaves e, em seguida, passará para a próxima linha e compilará / executará a mesma. Se o valor de espera for FALSE (pode ficar em branco), o sistema não aguardará o processamento das chaves e continuará executando o código inteiro.
Certos métodos estão sendo usados, os quais você pode combinar as teclas pressionadas com Ctrl, Shift ou Alt. Vamos ver como podemos fazer isso. A seguir, uma tabela que especifica as combinações de teclas para SendKeys com Ctrl, Shift e Alt:
Chave a ser combinada com | Operador a ser utilizado antes das teclas para combinação |
Mudança | + (Sinal de mais teclado) |
Ctrl | (Sinal do operador de sinal de intercalação) |
Alt | % (Sinal de porcentagem) |
Bem, o que isso significa? Isso significa que, se você quiser usar uma combinação de teclado como Ctrl + S sob o código, poderá usar o método SendKeys e fazê-lo com SendKeys, em seguida, um operador de sinal de intercalação (^) para Ctrl e, em seguida, "s". Ele salvará a planilha atual no seu arquivo Excel.
Como usar o método SendKeys no Excel VBA?
Aprenderemos como usar o método SendKeys no Excel usando o código VBA.
Você pode fazer o download deste modelo do VBA SendKeys Excel aqui - Modelo do VBA SendKeys ExcelVBA SendKeys - Exemplo # 1
Vamos dar alguns exemplos simples que nos permitirão aprofundar o funcionamento do comando VBA SendKeys.
Neste primeiro exemplo, estamos prestes a ver uma automação muito simples que salva automaticamente o arquivo atual do Excel aberto. Você não precisa pressionar o botão Salvar ou Ctrl + S para salvar o arquivo. Siga as etapas abaixo para alcançar o resultado.
Etapa 1: Abra o módulo na guia do menu Inserir, como mostrado abaixo.
Etapa 2: defina um novo subprocedimento que possa conter sua macro.
Código:
Sub Exemplo_1 () End Sub
Etapa 3: Agora, para salvar qualquer arquivo, você tem uma combinação de teclas do teclado como Ctrl + S. para converter isso em código, podemos usar o operador de sinal de intercalação (^) e, em seguida, a palavra-chave "s" como argumento para a instrução SendKeys.
Código:
Sub Exemplo_1 () Application.SendKeys ("s") End Sub
Aqui, a palavra-chave Aplicativo especifica o Aplicativo para o qual estamos enviando as teclas (neste caso, o aplicativo Excel). “S” entre parênteses especifica a operação semelhante do teclado Ctrl + S.
Etapa 4: execute esse código pressionando o botão Executar ou pressionando a tecla F5.
Após a execução bem-sucedida desse código, seu arquivo é salvo.
VBA SendKeys - Exemplo # 2
Agora, estamos prestes a ver como fechar um aplicativo atual enviando teclas de função através do código da macro usando o método SendKeys. Siga os passos abaixo:
Etapa 1: escreva o subprocedimento que pode conter sua macro no módulo.
Código:
Sub Example_2 () End Sub
Etapa 2: Use o método Application.SendKeys para passar as teclas programáveis do teclado para o aplicativo. Como o painel VBA atual pode ser fechado com o atalho Alt + Q do teclado, podemos usar "% q" na macro.
Código:
Sub Example_2 () Application.SendKeys ("% q") End Sub
Etapa 3: pressione o botão Executar ou F5 para executar este código. Assim que você executar esse código, o atual Editor do Visual Basic será fechado e você navegará para o arquivo do Excel.
VBA SendKeys - Exemplo # 3
Agora, vamos escrever um código que abre automaticamente o bloco de notas e grava um texto nele automaticamente. Veja a imagem abaixo:
Etapa 1: escreva o subprocedimento que pode conter sua macro no módulo.
Código:
Sub Example_3 () End Sub
O Call Shell permite que o sistema abra o aplicativo. O caminho é onde o Notepad.exe está presente. vbNormalFocus é um argumento opcional que especifica o foco em abrir e restaurar o aplicativo em seu tamanho e posição originais.
Etapa 2: use as teclas Chamar e Enviar em conjunto para que o sistema possa adicionar um texto no Bloco de Notas.
Código:
Sub Example_3 () Shell de chamada ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub
Etapa 3: aqui, estamos adicionando o texto "Hello VBA!" Usando as teclas SendKeys no bloco de notas. True especifica o tempo de espera para o comando SendKeys.
Código:
Sub Example_3 () Shell de Chamada ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Chame SendKeys ("Hello VBA!", True) End Sub
Etapa 4: execute esse código pressionando a tecla F5 ou clicando no botão Executar.
É assim que podemos usar o método SendKeys para automatizar os aplicativos por meio da macro VBA.
Coisas para lembrar
- Tenha muito cuidado ao usar as SendKeys, pois isso pode dar resultados inesperados se você tiver vários aplicativos abertos.
- Você pode usar as SendKeys para automatizar pequenas tarefas, como salvar um arquivo do Excel ou fechar um arquivo do Excel, etc.
- Use o método SendKeys como uma última opção enquanto você tenta automatizar as coisas.
Artigo recomendado
Este é um guia para as VK SendKeys. Aqui discutimos como usar o método SendKeys no Excel VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -
- VBA While Loop (exemplos com modelo do Excel)
- Ambiente VBA | Modelos do Excel
- Busca de meta do VBA (exemplo)
- Como alterar a planilha de nome no Excel VBA?