Como Enviar WhatsApp com Excel e VBA
Autor

A automação de tarefas repetitivas é um dos pilares da produtividade moderna. Uma das demandas mais comuns no mundo corporativo é o envio em massa de mensagens, cobranças ou relatórios via WhatsApp.
Neste artigo, vamos dissecar uma solução prática usando Excel VBA e a técnica de SendKeys para enviar mensagens e anexos automaticamente, sem a necessidade de APIs pagas.
1. Estruturando a Planilha de Controle
Para que o código VBA funcione, a planilha precisa estar organizada de forma padronizada. O script lê linha por linha para identificar quem deve receber a mensagem.
O Layout da Ferramenta
A interface deve ser limpa e funcional. Conforme vemos na imagem abaixo, temos um cabeçalho simples e um botão para disparar a macro.
Organização das Colunas
A lógica do código depende estritamente da posição das colunas. Baseado no código e na imagem dos dados, a estrutura deve ser:
- Coluna B (Contato): Nome exato do contato ou número (como salvo na agenda/WhatsApp).
- Coluna C (Mensagem): O texto que será enviado.
- Coluna D (Tipo): Define se o anexo é "ARQUIVO" (documentos gerais) ou "IMAGEM".
- Coluna E (Arquivo 1): O caminho completo do arquivo no computador (ex:
C:\User\Documentos\boleto.pdf). - Coluna F (Data e Hora): Onde o código registrará automaticamente quando o envio foi feito.
Dica de SEO para Planilhas: Mantenha seus dados tabulados. O código verifica se a Coluna F está vazia. Se estiver, ele envia. Se já tiver data, ele pula. Isso evita envios duplicados.

2. O Motor da Automação: Entendendo o Código VBA
O segredo dessa automação está no Visual Basic for Applications (VBA). O código utiliza a função SendKeys, que simula o pressionamento de teclas do teclado (como TAB, ENTER) para "navegar" pelo WhatsApp Web no navegador Chrome.
Abaixo, explicamos o funcionamento do script lsNovoEnviarWhatsApp bloco por bloco:
Variáveis e Inicialização
VBA
Public Sub lsNovoEnviarWhatsApp()
Dim lUltimaLinha As Long
Dim i As Long
Dim lContato As String
' ... outras declarações ...
'Abre o WhatsApp no Chrome
Shell "C:\Program Files\Google\Chrome\Application\chrome.exe" & " https://web.whatsapp.com/"
Application.Wait Now + TimeValue("00:00:10")
- O que faz: Abre o Google Chrome diretamente no site do WhatsApp Web.
- Importante: O comando
Waitpausa o Excel por 10 segundos. Esse tempo é crucial para dar tempo ao site carregar e conectar ao seu celular.
O Loop de Verificação
VBA
lUltimaLinha = WhatsApp.Cells(WhatsApp.Rows.Count, 2).End(xlUp).Row
'Faz o loop pelas linhas da tabelas (começando da linha 7)
For i = 7 To lUltimaLinha
If WhatsApp.Cells(i, 6).Value = "" Then
' Carrega as variáveis com os dados da planilha
lContato = WhatsApp.Cells(i, 2).Value
lMensagem = WhatsApp.Cells(i, 3).Value
lTipo = UCase(WhatsApp.Cells(i, 4).Value)
lArquivo = WhatsApp.Cells(i, 5).Value
- Lógica: O código varre a planilha da linha 7 até a última preenchida.
- Filtro: A condição
If WhatsApp.Cells(i, 6).Value = ""garante que apenas linhas sem data de envio (pendentes) sejam processadas.
Navegação e Busca do Contato
Esta é a parte mais crítica do SendKeys. O código pressiona TAB repetidamente para mover o cursor do navegador até a caixa de busca do WhatsApp.
VBA
If i = 7 Then
'Primeiro contato: Precisa de 4 TABs para chegar na busca
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
Else
'Próximos contatos: O foco já está na área certa, repete a navegação
Application.Wait Now + TimeValue("00:00:02")
' ...sequência de TABS...
End If
SendKeys lContato ' Digita o nome do contato
SendKeys "{ENTER}" ' Entra na conversa
Envio de Anexos (Arquivos ou Imagens)
O código diferencia o tipo de anexo para saber como navegar no menu "Clips" (Anexar) do WhatsApp.
VBA
'Enviar arquivo
If lTipo = "ARQUIVO" Then
SendKeys "+{TAB}" ' Shift + TAB (Volta para o ícone de clips)
' ... navegação para selecionar Documento ...
SendKeys lArquivo ' Cola o caminho do arquivo
Else
' Lógica para Imagem (Geralmente desce uma seta a mais no menu)
SendKeys "+{TAB}"
SendKeys "{DOWN}" ' Desce para selecionar Fotos/Vídeos
' ...
End If
- SendKeys "+{TAB}": Representa o atalho
Shift + Tab. No WhatsApp Web, isso move o foco da caixa de texto para o botão de anexar (o clipe de papel). - Caminho do Arquivo: O código "digita" o caminho do arquivo na janela de upload do Windows e aperta Enter para carregar.
Finalização e Registro
VBA
'Gravar a data e horário de envio para não enviar novamente
WhatsApp.Cells(i, 6).Value = Now
End If
Next i
MsgBox "Mensagens enviadas!"
End Sub
Ao final do envio de cada linha, o Excel carimba a data atual na Coluna F. Isso evita spam ou duplicidade caso você rode a macro novamente.
3. Requisitos e Cuidados
Para que essa automação funcione perfeitamente, considere os pontos abaixo:
- Nome da Planilha: No código, o objeto da planilha é chamado de
WhatsApp. Certifique-se de que, no VBE (Janela de Propriedades), o CodeName da sua planilha seja alterado paraWhatsAppou altere o código paraSheets("NomeDaAba"). - Não toque no mouse: O método
SendKeyssimula seu teclado. Se você clicar em outra janela enquanto o código roda, o Excel começará a "digitar" na janela errada, causando erros. - Caminho do Chrome: Verifique se o caminho
C:\Program Files\Google\Chrome\Application\chrome.exeé o correto para o seu computador. - Resolução da Tela: A quantidade de vezes que o comando
{TAB}é pressionado pode variar dependendo do zoom do navegador ou tamanho do monitor. Se o código não encontrar a barra de busca, ajuste a quantidade deSendKeys "{TAB}".
Código VBA de Envio de Whatsapp Excel VBA
Código pronto para envio de whatsapp em Excel com VBA.
Public Sub lsNovoEnviarWhatsApp()
Dim lUltimaLinha As Long
Dim i As Long
Dim lContato As String
Dim lMensagem As String
Dim lArquivo As String
Dim lTipo As String
'Abre o WhatsApp
Shell "C:\Program Files\Google\Chrome\Application\chrome.exe" & " https://web.whatsapp.com/"
Application.Wait Now + TimeValue("00:00:10")
lUltimaLinha = WhatsApp.Cells(WhatsApp.Rows.Count, 2).End(xlUp).Row
'Faz o loop pelas linhas da tabelas
For i = 7 To lUltimaLinha
If WhatsApp.Cells(i, 6).Value = "" Then
lContato = WhatsApp.Cells(i, 2).Value
lMensagem = WhatsApp.Cells(i, 3).Value
lTipo = UCase(WhatsApp.Cells(i, 4).Value)
lArquivo = WhatsApp.Cells(i, 5).Value
'Localiza o contato e envia a mensagem
If i = 7 Then
'Primeiro contato
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
'SendKeys "{TAB}"
'SendKeys "{TAB}"
Else
Application.Wait Now + TimeValue("00:00:02")
'Próximo contato
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{TAB}"
End If
Application.Wait Now + TimeValue("00:00:02")
SendKeys lContato
Application.Wait Now + TimeValue("00:00:02")
SendKeys "{ENTER}"
SendKeys lMensagem
Application.Wait Now + TimeValue("00:00:03")
SendKeys "{ENTER}"
'Enviar arquivo
If lTipo = "ARQUIVO" Then
SendKeys "+{TAB}"
SendKeys "+{TAB}"
SendKeys "{ENTER}"
SendKeys "{ENTER}"
SendKeys "{TAB}"
SendKeys "{TAB}"
Application.Wait Now + TimeValue("00:00:03")
SendKeys lArquivo
Application.Wait Now + TimeValue("00:00:03")
SendKeys "{ENTER}"
Application.Wait Now + TimeValue("00:00:03")
SendKeys "{ENTER}"
Else
SendKeys "+{TAB}"
SendKeys "+{TAB}"
SendKeys "{ENTER}"
SendKeys "{DOWN}"
SendKeys "{ENTER}"
SendKeys "{TAB}"
SendKeys "{TAB}"
Application.Wait Now + TimeValue("00:00:03")
SendKeys lArquivo
Application.Wait Now + TimeValue("00:00:03")
SendKeys "{ENTER}"
Application.Wait Now + TimeValue("00:00:03")
SendKeys "{ENTER}"
End If
'Gravar a data e horário de envio
WhatsApp.Cells(i, 6).Value = Now
End If
Next i
MsgBox "Mensagens enviadas!"
End Sub
Conclusão
Esta macro é uma solução poderosa e de custo zero para pequenas e médias empresas que precisam automatizar a comunicação. Ao combinar a estruturação de dados do Excel com a automação de interface do VBA, você economiza horas de trabalho manual.
Download Planilha Enviar WhatsApp Excel VBA
Clique no botão abaixo para realizar o download do arquivo de exemplo:
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90




