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.

PUBLICIDADE

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.

  1. Página Inicial -> Desenvolvedor -> Visual Basic.
como-acessar-guia-desenvolvedor

2. Inserir -> Módulo.

PUBLICIDADE
como-inserir-módulo-excel

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.

Compartilhe
Rafael Schreiner

Rafael Schreiner

Artigos: 348