Como Enviar WhatsApp com Excel e VBA

Enviar Whatsapp VBA Excel 2026 Capa

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.

Enviar whatsapp excel vba 1

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 Wait pausa 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:

  1. 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 para WhatsApp ou altere o código para Sheets("NomeDaAba").
  2. Não toque no mouse: O método SendKeys simula seu teclado. Se você clicar em outra janela enquanto o código roda, o Excel começará a “digitar” na janela errada, causando erros.
  3. Caminho do Chrome: Verifique se o caminho C:\Program Files\Google\Chrome\Application\chrome.exe é o correto para o seu computador.
  4. 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 de SendKeys "{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:

Baixe a planilha

Avalie este post

Conheça nosso

Curso de Excel completo