Blog

Postado em em 21 de novembro de 2020

Como Enviar E-mail Pelo Excel com VBA (Tutorial Completo)

Como Fazer Macro no Excel

Sim, é possível automatizar o processo de envio de e-mails e nessa publicação vou te ensinar tudo sobre como enviar e-mail pelo Excel!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber a planilha que usamos na aula no seu e-mail, preencha:

Como enviar e-mail pelo Excel?

Hoje nós vamos mostrar como enviar email pelo Excel. Vamos detalhar o código necessário para que você entenda todo o passo a passo. Vamos precisar do aplicativo do Outlook instalado no seu computador, criar um código para enviar o e-mail e um botão para disparar esse código.

Já existem outros vídeos no canal sobre essa aplicação, mas hoje iremos além atendendo a diversas sugestões como: assinatura; tabela; anexo. Observe então os passos necessários:

1) Assinatura no Outlook

Precisamos configurar uma assinatura padrão dentro do Outlook. Para isso, criaremos um e-mail do zero. Com o novo e-mail aberto, iremos na caixinha de Assinatura -> Assinaturas… e irá digitar o que interessar na caixa em questão, e adicionará uma imagem do seu computador, se quiser que tenha uma imagem acompanhada do texto da assinatura, como mostramos no vídeo. Após isso, precisará dar um nome para ela, Salvar, mudar a caixinha de “Nova Mensagem” para o nome da assinatura que você deu, e dar Ok. Feito isso, teremos uma nova assinatura configurada para cada novo e-mail aberto.

2) Código de Como Enviar E-mail pelo Excel

Sub enviar_email()
Set objeto_outlook = CreateObject("Outlook.Application")
Set Email = objeto_outlook.createitem(0)
Email.display
Email.to = Cells(2, 1).Value
Email.cc = Cells(3, 1).Value
Email.bcc = "diego@gmail.com"
Email.Subject = "Relatório de Vendas"
texto1 = "Fala " & Cells(2, 2).Value & "!<br><br>Dá uma olhada nessa imagem e nessa tabela que separei para você!<br><br>"
Email.htmlbody = texto1 & "<img src='C:UsersdamorOneDriveHashtag (1)OnlineConteúdosPlanilhas2020VBA11-14 - Enviar E-mail pelo VBATabela.png'>" _
& "<br><br>" _
& RangetoHTML(Range("A5:C11")) _
& Email.htmlbody
Email.Attachments.Add ("C:UsersdamorOneDriveHashtag (1)OnlineConteúdosPlanilhas2020VBA11-14 - Enviar E-mail pelo VBATabela.png")
Email.send
End Sub

Explicação do código:

Primeiro precisaremos “setar” um objeto para assumir a aplicação do Outlook, que é o que fazemos com a nossa primeira linha de instrução. Toda vez que nos referirmos ao objeto “objeto_outlook”, estaremos falando da aplicação do Outlook, ou seja, do programa, em si.

Depois precisaremos “setar” um objeto para assumir o papel do e-mail dentro do Outlook, que nada mais é do que um novo item no outlook. Isso está traduzido na nossa segunda linha do código. Então, toda vez que nos referirmos ao objeto “Email”, estaremos falando de um novo e-mail criado dentro do Outlook.

Em seguida, apenas mostraremos o nosso “Email” em tela. Caso esse comando não esteja presente, ele fará todos os passos da macro, mas não mostrará em sua tela o que ocorreu.

Depois, configuraremos os campos do nosso e-mail. O destinatário (to) será quem estiver escrito na célula A2. A cópia (cc) irá para quem estiver na célula A3. A cópia oculta (bcc) será enviada para “diego@gmail.com”. O assunto (subject) do nosso e-mail será “Relatório de Vendas”.

Para o corpo do e-mail, vamos usar uma variável auxiliar chamada texto1. Nela, vamos armazenar o texto que queremos inserir no nosso corpo de e-mail. Ela será composta da seguinte maneira:

A linha texto1 = “Fala ” & Cells(2, 2).Value & “!<br><br>Dá uma olhada nessa imagem e nessa tabela que separei para você!<br><br>” será responsável por armazenar na variável texto1 o texto com o nome da pessoa presente na célula A2 do nosso Excel, quebrar a linha (pular 1 linha) em HTML (forma que o e-mail é escrito no Outlook), e escrever outra parte de texto, e juntar tudo isso.

A próxima linha vai nos dizer o que o corpo do e-mail (html body) deve conter: o que queremos que seja escrito (dado pela variável texto1), de fato, e duas imagens: uma que será importada pela linguagem HTML (a que carrega o prefixo img src), a que usa uma fonte de informação (image source), e uma que usará uma função pronta específica do VBA para tal (RangetoHTML), além de fechar com a nossa assinatura. A repetição da estrutura “html body” no final da nossa linha representa a nossa assinatura.

Para ter acesso a essa função do VBA, precisaremos copiar o código inteiro da função que está presente no nosso Módulo 2 do arquivo de gabarito, e colar num módulo em branco em nossa planilha de Excel. Para isso, iremos, no ambiente do VBA em Inserir -> Módulo -> Colar o o código da nossa Function já pronto. Só assim teremos o poder da função “RangetoHTML” do código que criamos. Sem isso, ela não representará nada. Lembrando que para ela funcionar, precisamos passar como argumento um intervalo de células que desejamos colocar no e-mail. No nosso exemplo é o intervalo de células entre a célula A5 e C11.

Depois iremos passar a instrução do que teremos como anexo no nosso e-mail (attachments.add). Simplesmente diremos o caminho do arquivo que queremos que, ao criar um novo e-mail, que o Excel coloque como anexo.

E por fim, o comando que enviará o e-mail é o Email.send. E nosso e-mail estará enviado. Aí acaba a nossa macro.

Após terminar a nossa macro, devemos criar um botão para que a nossa macro seja ativada, ao clicar nesse botão. Ele será o ativador e disparador da nossa macro. Para isso, no Excel iremos na guia Inserir > Ilustrações > Formas > Retângulo: Cantos Arredondados (2º ícone da categoria de Retângulos). A partir dessa escolha, redimensione a ilustração de acordo com o seu gosto, e pronto.

Após isso, vamos personalizar o botão. Para isso, iremos dar um clique com o botão esquerdo do mouse nele, e escreveremos o que desejamos que esteja escrito nele. No nosso exemplo, escrevemos “Nome”, fomos na guia Página Inicial, e botamos o alinhamento no meio e centralizamos o texto, além de colocar em negrito. Para finalizar, iremos colocar um sombreamento, indo em Formato de Forma > Efeitos de Forma > Predefinição > Predefinições > Predefinição 2. E colocamos a cor cor de preferência.

Após criar e personalizar o botão da forma que queremos, devemos dizer que macro estará atribuída a ele. No caso, queremos atrelar o botão à nossa macro “enviar_email”. Para isso, devemos clicar com o botão direito do mouse no nosso botão criado -> Atribuir macro… -> clicar em “enviar_email” -> OK. E pronto, agora o nosso botão está ativado e pode ser usado para disparar a macro a partir de qualquer clique nele com o botão esquerdo.

Portanto, vimos como enviar e-mail pelo Excel com VBA, uma aplicação muito legal e mostra o poder que tem a ferramenta de programação em Excel! E ficamos por aqui! Para mais conteúdo de VBA acesse nosso canal do Youtube ou siga nossas redes sociais! Um abraço!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Quer participar de uma aula 100% Online e Gratuita de VBA na quarta-feira às 20h?

Preencha seu e-mail abaixo!