Como Enviar Email por Macro VBA no Excel
Quando concluímos algumas atividades no Excel, percebemos a necessidade de otimizar a produtividade e precisamos enviar email através de macro VBA sem usar o Outlook, Gmail para isso.
Essa é uma tarefa embora pareça complicada no primeiro momento, quando vamos demonstrar na prática, percebemos que é mais simples do que imaginamos.
Portanto, abaixo demonstraremos um passo a passo objetivo e disponibilização de um código vba que encontramos no Guia do Excel.
Como vamos observar, o apoio de macros no Excel para realizar tarefas, facilita de diversas maneiras, como: tempo, rapidez, risco pequeno de erro.
Código em VBA para enviar e-mails no Excel com Gmail
Abaixo, deixaremos o código em VBA para você inserir no módulo do Excel.
Após copiar o código, continue a leitura para encontrar o passo a passo de como enviar o email através do VBA do Excel.
'Baseado no código disponibilizado em: https://www.guiadoexcel.com.br/enviar-email-com-excel-sem-usar-o-outlook/
Function EnviaEmail2()
Dim iMsg, iConf, Flds
'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") = "smtp.gmail.com"
'Configura a porta de envio de email
Flds.Item(schema & "smtpserverport") = 465
Flds.Item(schema & "smtpauthenticate") = 1
'Configura o email do remetente
Flds.Item(schema & "sendusername") = "seuemail@gmail.com"
'Configura a senha do email remetente
Flds.Item(schema & "sendpassword") = "suasenha"
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
'Email do destinatário
.To = "destino@gmail.com"
'Seu email
.From = "seuemail@gmail.com"
'Título do email
.Subject = "Isto é um teste de Envio de email"
'Mensagem do e-mail, você pode enviar formatado em HTML
.HTMLBody = "Mensagem enviada com o gmail."
'Seu nome ou apelido
.Sender = "Teste"
'Nome da sua organização
.Organization = "Empresa Teste"
'email de responder para
.ReplyTo = "teste@gmail.com"
'Anexo a ser enviado na mensagem
.AddAttachment ("c:\fatura.txt")
'Passa a configuração para o objeto CDO
Set .Configuration = iConf
'Envia o email
.Send
End With
'Limpa as variáveis
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Function
Como Enviar email por macro no Excel?
Acessando o código demonstrado acima, precisamos ir até a guia desenvolvedor no Excel e ter acesso ao Visual Basic. Caso não saiba como habilitar a guia desenvolvedor, confira aqui.
- Página Inicial -> Desenvolvedor -> Visual Basic.
2. Inserir -> Módulo.
Após encontrar a guia desenvolver e inserir o nosso módulo, vamos inserir nosso código dentro do campo branco acima.
Depois do texto inserido, precisaremos liberar o envio de emails pelo Windows, acessando o passo a passo a seguir.
3. Ferramentas -> Referências-> Microsoft CDO for Windows 2000 Library.
Essa última opção é necessário ser marcada para o correto funcionamento da macro.
Com isso, hoje aprendemos a enviar e-mail diretamente do Excel sem a necessidade de utilizar o Gmail para realizar a intermediação. Além disso, aprendemos como enviar email com macro em vba no excel.