VBA Enviar Email do Excel

Código VBA para enviar e-mails do Excel

No VBA para enviar e-mail do Excel , podemos automatizar nosso recurso de correspondência para que possamos enviar e-mails automaticamente para vários usuários ao mesmo tempo. Para isso, precisamos lembrar que é feito pelo outlook, outro produto do outlook, portanto, precisamos habilitar o outlook script em VBA para fazer isso e, uma vez feito, usamos o método .Application para usar os recursos do Outlook.

A versatilidade do VBA é simplesmente incrível. A razão pela qual os programadores de VBA amam o Excel é que, usando o VBA, não apenas podemos trabalhar no Excel, mas também podemos acessar outras ferramentas da Microsoft. Podemos acessar o PowerPoint, Word e Outlook usando o VBA. O que me impressionou foi quando ouvi falar de “envio de e-mail do próprio excel”. Sim, é verdade que podemos enviar e-mails do excel. Neste artigo, mostraremos como enviar e-mails do Excel com anexos usando a codificação VBA.

Definir referência para a biblioteca do Microsoft Office

Precisamos enviar e-mails do Outlook. Visto que o Outlook é um objeto externo, a primeira coisa que precisamos fazer é definir a referência do objeto como “ Biblioteca de objetos do Microsoft Outlook 16.0 ”.

  • No VBA, vá para Ferramentas> Referências

  • Agora veremos a biblioteca de referência de objetos. Nesta janela, precisamos definir a referência para “Biblioteca de objetos do Microsoft Outlook 16.0”

  • Após definir a referência do objeto, clique em OK.

Agora podemos acessar o objeto Outlook na codificação VBA.

13 etapas fáceis para enviar e-mails do Excel

Escrever o código para enviar um e-mail com um anexo do excel é bastante complicado, mas vale a pena gastar algum tempo.

Você pode baixar este modelo do Excel para enviar e-mail do VBA aqui - modelo do Excel para enviar e-mail do VBA

Siga as etapas abaixo para escrever sua primeira macro do Excel de e-mail.

Passo 1

Inicie o subprocedimento em VBA.

Código:

 Sub SendEmail_Example1 () End Sub 

Passo 2

Declare a variável Outlook.Application

Código:

 Dim EmailApp As Outlook.Application 'Para se referir ao aplicativo outlook 

Etapa 3

A variável acima é uma variável de objeto. Precisamos criar uma instância de um novo objeto separadamente. Para criar uma nova instância do objeto externo abaixo está o código.

Código:

 Definir EmailApp = Novo Outlook.Application 'Para iniciar o aplicativo Outlook 

Passo 4

Agora para escrever o email declaramos mais uma variável como “Outlook.MailItem”.

Código:

 Dim EmailItem As Outlook.MailItem 'Para indicar um novo e-mail do Outlook 

Etapa 5

Para lançar um novo e-mail, precisamos definir a referência para nossa variável anterior como CreateItem.

Código:

 Set EmailItem = EmailApp.CreateItem (olMailItem) 'Para lançar um novo e-mail do Outlook 

Ok, agora a variável “EmailApp” irá lançar o Outlook e na variável “EmailItem” podemos começar a escrever o email.

Etapa # 6

Agora precisamos estar cientes de quais são os itens que temos ao escrever um e-mail. A primeira coisa é que precisamos decidir para quem enviaremos o e-mail. Então, para isso, precisamos acessar a propriedade “TO”.

Etapa # 7

Insira o ID do e-mail do destinatário entre aspas duplas.

Código:

EmailItem.To = "[email protected]"

Etapa # 8

Depois de se dirigir ao destinatário principal, se quiser enviar um CC para alguém no e-mail, podemos usar a propriedade “CC”.

Código:

EmailItem.CC = "[email protected]"

Etapa # 9

Depois do CC, também podemos definir o ID do e-mail Cco.

Código:

EmailItem.BCC = "[email protected]"

Etapa # 10

Agora precisamos incluir o Assunto do e-mail que estamos enviando.

Código:

EmailItem.Subject = "Email de teste do Excel VBA"

Etapa # 11

Agora precisamos escrever o corpo do e-mail usando o tipo de corpo HTML.

Código:

EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _ vbNewLine & vbNewLine & _ "Regards," & vbNewLine & _ "VBA Coder" 'VbNewLine is the VBA Constant to insert a new line 

Step #12

If we want to add an attachment as the current workbook we are working on then we need to use attachments property. First, declare a variable source as a string.

Code:

 Dim Source As String 

Then in this variable write ThisWorkbook.FullName after Email body.

Code:

Source = ThisWorkbook.FullName

In this VBA Code, ThisWorkbook is used for the current workbook and .FullName is used to get the full name of the worksheet.

Then write the following code to attach the file.

Code:

EmailItem.Attachments.Add Source

Step #13

Now finally we need to send the email to the mentioned email ID’s. This can be done by using “Send” method.

Code:

EmailItem.Send

Ok, we are done with the coding part.

Code:

 Sub SendEmail_Example1() Dim EmailApp As Outlook.Application Dim Source As String Set EmailApp = New 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 = "Test Email From Excel VBA" EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _ vbNewLine & vbNewLine & _ "Regards," & vbNewLine & _ "VBA Coder" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub 

Run the above code and it will send the email with the mentioned body of the email with the current workbook as the attachment.