Visual Basic for Applications ou VBA é uma linguagem de programação poderosa, mas fácil e permite automatizar o Microsoft Excel ao máximo. Uma dessas automação é usar códigos VBA para integrar outros aplicativos da Microsoft como Outlook, PowerPoint e Word e aumentar a produtividade.
O envio de e-mail com VBA no Excel é uma dessas integrações que facilita sua vida automatizando planilhas ou tarefas de envio de relatórios. Este tutorial o guiará pelas etapas de envio de e-mail com VBA do Excel em etapas fáceis de seguir.

Ativação da biblioteca de objetos do Microsoft Outlook
Você precisa definir a referência do objeto de envio de e-mail do Outlook, pois é um objeto externo para o Excel VBA . Siga junto com estas etapas:
- Salve o arquivo Excel existente como um arquivo habilitado para macro clicando em Arquivo > Salvar como > selecione um local e altere o tipo Salvar como .
- Pressione Alt+F11 para abrir o editor de código VBA e clique em Ferramentas localizadas na barra de menu superior.

- A partir daí, selecione References e role a lista Available References para encontrar Microsoft Outlook 16.0 Object Library .
- Selecione o objeto e clique em Ok para sair da lista Referências disponíveis .
Enviando e-mail com VBA: Escreva códigos e execute
Agora que você habilitou o objeto Outlook no Excel VBA, siga estas etapas para escrever a macro do Excel e executá-la:
- Verifique se você está na interface do editor de código VBA. Agora, procure a guia Inserir no menu superior do Excel VBA.
- Clique em Inserir e depois selecione Módulo para inserir um módulo onde você poderá escrever códigos VBA.
- Agora, copie e cole o seguinte script VBA no módulo recém-criado.
Sub send_email_with_VBA() Dim EmailApp As Outlook.Application Dim Source As String Set EmailApp = Novo Outlook.Application Dim EmailItem As Outlook.MailItem Set EmailItem = EmailApp.CreateItem(olMailItem) EmailItem.To = "[email protected]" EmailItem.CC = "[email protected]" EmailItem.BCC = "[email protected]" EmailItem.Subject = "Status de envio do pedido do cliente" EmailItem.HTMLBody = "Oi equipe," & vbNewLine & vbNewLine & "PFA a planilha para o pedido de hoje status" & _ vbNewLine & vbNewLine & _ "Atenciosamente," & vbNewLine & _ "Tamal Das" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub
O código mencionado acima enviará um e-mail usando sua conta do Outlook para os endereços de e-mail mencionados no código.
O conteúdo do e-mail também está disponível na linha de código EmailItem.HTMLBody . Além disso, o Excel VBA anexará automaticamente sua pasta de trabalho de origem ao e-mail como um anexo.
Você pode fazer as seguintes alterações para personalizar os endereços e o texto do corpo do e-mail:
- Substitua todos os endereços de e-mail dentro da citação por seus próprios contatos do Outlook .
- Personalize o texto EmailItem.Subject dentro da citação como achar melhor.
- No código EmailItem.HTMLBody , você pode substituir todos os textos entre aspas usando seu próprio conteúdo.
- Agora, execute o script VBA pressionando F5 .

Para enviar e-mail com VBA com sucesso, você precisará configurar a conta do Gmail ou a conta do Outlook no aplicativo independente do Outlook do pacote do Microsoft Office. O Outlook baseado em navegador online não funcionará com este código VBA.
Conclusão
Agora que você seguiu as etapas mencionadas acima para enviar e-mail com VBA, deve ser mais fácil automatizar tarefas mundanas no Excel. Por exemplo, deixe o arquivo de planilha enviar automaticamente um e-mail para você quando os colaboradores atualizarem a planilha. Além disso, envie e-mails automatizados aos clientes ao atualizar a coluna de status do pedido no Excel.
Se você deseja mais automação do Excel usando o VBA, utilize a codificação de registro de data e hora do VBA para manter um registro das alterações da planilha.