Enviar e-mail Excel VBA – Planilha de Aniversário para download
O Excel permite coisas incríveis! Por exemplo enviar e-mail no Excel usando VBA. Neste artigo você verá como enviar e-mail pelo Excel usando VBA e um exemplo de uma planilha de aniversário construída pelo Guia do Excel e que você poderá realizar o download, e totalmente desbloqueada.
Painel envio de e-mail Excel
No painel você tem acesso rápido ao sistema de envio de email pelo Excel com VBA.
- Configuração: Abre a planilha de configuração do e-mail de envio. Nela são inseridas informações da conta SMTP para envio do e-mail.
- Lista: Abre a planilha dos aniversariantes, esta contém a lista dos e-mails destinatários.
- Período e Enviar: No período são definidos o período dos aniversariantes para os quais serão enviados e-mails e no botão Enviar são enviados os e-mails automaticamente pelo Excel usando VBA.
Configuração enviar e-mail
Na planilha de configuração de e-mail você tem todas irá realizar as configurações do SMTP e também a mensagem que será enviada.
- SMTP: Inclua o SMTP da sua conta de e-mail. No caso do gmail é smtp.gmail.com.
- PORT: Porta do SMTP da conta de e-mail de envio.
- AUTENTICAR: Selecione Sim para autenticar o SMTP ou Não para não autenticar o SMTP.
- NOME: Nome do remetente do e-mail.
- EMPRESA: Nome da empresa d oenvio do e-mail.
- EMAIL: E-mail do remetente, coloque o e-mail completo.
- SENHA: Digite a senha do seu e-mail.
- SMTP SSL: Marque Sim se sua conta de e-mail possuir autenticação de SSL e Não se não tiver.
- TÍTULO: Digite o título dos e-mails enviados.
- CÓPIA E-MAIL: Se quiser que sejam enviadas cópias de e-mail para outro destinatário apenas digite o e-mail.
- MENSAGEM: Digite a mensagem que gostaria de enviar. Você pode enviar em HTML inclusive usando um editor HTML Online, por exemplo: http://www.comofazerumsite.com/editor-html-online/. Veja o vídeo de como usar facilmente.
LISTA DE E-MAILS PARA ENVIO
Na lista de e-mails para envio preencha o nome do cliente, a data de nascimento e o seu e-mail.
Estes dados serão utilizados para personalizar a mensagem colocando o nome do cliente no título do e-mail, filtrar os e-mails a serem enviados pela data de aniversário definida no período no Painel e o e-mail de cada cliente para o envio da mensagem.
CÓDIGO FONTE VBA PARA ENVIAR E-MAIL PELO EXCEL VBA
Abaixo o código fonte VBA utilizado para o envio de e-mails utilizando o Excel.
Não esqueça de marcar a referência Microsoft CDO for Windows 2000 Library conforme explicado no vídeo deste artigo.
'Baseado no código disponibilizado em: http://www.a1vbcode.com/snippet-3691.asp Public Sub lsEnviar() Dim iMsg, iConf, Flds Dim lUltimaLinhaAtiva As Long Dim lLinha As Long Dim lPeriodoIni As Date Dim lPeriodoFim As Date Dim lAniversario As Date Application.ScreenUpdating = False lUltimaLinhaAtiva = Worksheets("Lista").Cells(Worksheets("Lista").Rows.Count, 1).End(xlUp).Row 'Seta as variáveis, lembrando que o objeto Microsoft CDO deverá estar habilitado em Ferramentas->Referências->Microsoft CDO for Windows 2000 Library Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields 'Configura o componente de envio de email schema = "http://schemas.microsoft.com/cdo/configuration/" Flds.Item(schema & "sendusing") = 2 'Configura o smtp Flds.Item(schema & "smtpserver") = Range("smtp").Value 'Configura a porta de envio de email Flds.Item(schema & "smtpserverport") = Range("port").Value Flds.Item(schema & "smtpauthenticate") = IIf(Range("Autenticar").Value = "Sim", 1, 0) 'Configura o email do remetente Flds.Item(schema & "sendusername") = Range("email").Value 'Configura a senha do email remetente Flds.Item(schema & "sendpassword") = Range("senha").Value Flds.Item(schema & "smtpusessl") = IIf(Range("SSL").Value = "Sim", 1, 0) Flds.Update For lLinha = 2 To lUltimaLinhaAtiva lPeriodoIni = Range("PerIni").Value lPeriodoFim = Range("PerFim").Value lAniversario = Sheets("Lista").Range("B" & lLinha).Value If (Month(lAniversario) >= Month(lPeriodoIni) And Day(lAniversario) >= Day(lPeriodoIni)) _ And (Month(lAniversario) <= Month(lPeriodoFim) And Day(lAniversario) <= Day(lPeriodoFim)) Then With iMsg 'Email do destinatário .To = Sheets("Lista").Range("C" & lLinha).Value 'Seu email .From = Range("email").Value 'Cópia do e-mail .CC = Range("copia").Value 'Título do email .Subject = Range("titulo").Value & " " & Sheets("Lista").Range("A" & lLinha).Value 'Mensagem do e-mail, você pode enviar formatado em HTML .HTMLBody = Range("Mensagem").Value 'Seu nome ou apelido .Sender = Range("Nome").Value 'Nome da sua organização .Organization = Range("Empresa").Value 'email de responder para .ReplyTo = Range("email").Value 'Anexo a ser enviado na mensagem '.AddAttachment ("c:\rieper\Dicas VBA.docx") 'Passa a configuração para o objeto CDO Set .Configuration = iConf 'Envia o email .Send End With End If Next lLinha 'Limpa as variáveis Set iMsg = Nothing Set iConf = Nothing Set Flds = Nothing Application.ScreenUpdating = True MsgBox "E-mails enviados!" End SubBaixe a planilha
Abraço
Marcos Rieper
Curso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo: