VBA Enviar correo electrónico desde Excel

Código VBA para enviar correos electrónicos desde Excel

En VBA para enviar correo electrónico desde Excel , podemos automatizar nuestra función de envío de correos para que podamos enviar correos electrónicos automáticamente a varios usuarios a la vez; para ello, debemos recordar que Outlook lo hace, otro producto de Outlook, por lo que debemos habilitar Outlook. scripting en VBA para hacerlo y una vez hecho, usamos el método .Application para usar las funciones de Outlook.

La versatilidad de VBA es simplemente asombrosa. La razón por la que a los programadores de VBA les encanta Excel es porque al usar VBA no solo podemos trabajar con Excel, sino que también podemos acceder a otras herramientas de Microsoft. Podemos acceder a PowerPoint, Word y Outlook mediante VBA. Lo que me impresionó fue cuando escuché sobre “enviar correos electrónicos desde Excel mismo”. Sí, es cierto que podemos enviar correos electrónicos desde Excel. En este artículo, le mostraremos cómo enviar correos electrónicos desde Excel con archivos adjuntos utilizando la codificación VBA.

Establecer referencia a la biblioteca de Microsoft Office

Necesitamos enviar correos electrónicos desde Outlook. Dado que Outlook es un objeto externo, lo primero que debemos hacer es establecer la referencia del objeto en “ Biblioteca de objetos de Microsoft Outlook 16.0 ”.

  • En VBA, vaya a Herramientas> Referencias

  • Ahora veremos la biblioteca de referencia de objetos. En esta ventana, debemos establecer la referencia a "Biblioteca de objetos de Microsoft Outlook 16.0"

  • Después de configurar la referencia del objeto, haga clic en Aceptar.

Ahora podemos acceder al objeto de Outlook en la codificación VBA.

13 sencillos pasos para enviar correos electrónicos desde Excel

Escribir el código para enviar un correo electrónico con un archivo adjunto de Excel es bastante complicado, pero vale la pena dedicarle un tiempo.

Puede descargar esta plantilla de Excel para enviar correo electrónico de VBA aquí - Plantilla de Excel para enviar correo electrónico de VBA

Siga los pasos a continuación para escribir su primera macro de Excel de correo electrónico.

Paso 1

Inicie el subprocedimiento en VBA.

Código:

 Sub SendEmail_Example1 () End Sub 

Paso 2

Declare la variable Outlook.

Código:

 Dim EmailApp As Outlook.Application 'Para referirse a la aplicación de Outlook 

Paso 3

La variable anterior es una variable de objeto. Necesitamos crear una instancia de un nuevo objeto por separado. Para crear una nueva instancia del objeto externo a continuación está el código.

Código:

 Establecer EmailApp = New Outlook.Application 'Para iniciar la aplicación de Outlook 

Paso 4

Ahora para escribir el correo electrónico declaramos una variable más como "Outlook.MailItem".

Código:

 Atenuar EmailItem como Outlook.MailItem 'Para referir un nuevo correo electrónico de Outlook 

Paso # 5

Para lanzar un nuevo correo electrónico, necesitamos establecer la referencia a nuestra variable anterior como CreateItem.

Código:

 Establecer EmailItem = EmailApp.CreateItem (olMailItem) 'Para lanzar un nuevo correo electrónico de Outlook 

Ok, ahora la variable “EmailApp” lanzará el Outlook y en la variable “EmailItem” podemos empezar a escribir el correo electrónico.

Paso # 6

Ahora debemos ser conscientes de cuáles son los elementos que tenemos al escribir un correo electrónico. Lo primero es decidir a quién enviamos el correo electrónico. Entonces, para esto, necesitamos acceder a la propiedad "TO".

Paso # 7

Ingrese el ID de correo electrónico del destinatario entre comillas dobles.

Código:

EmailItem.To = "[email protected]"

Paso # 8

Después de dirigirse al receptor principal, si desea enviar un CC a alguien en el correo electrónico, podemos usar la propiedad "CC".

Código:

EmailItem.CC = "[email protected]"

Paso # 9

Después del CC, también podemos establecer la identificación de correo electrónico BCC.

Código:

EmailItem.BCC = "[email protected]"

Paso # 10

Ahora debemos incluir el Asunto del correo electrónico que estamos enviando.

Código:

EmailItem.Subject = "Probar correo electrónico desde Excel VBA"

Paso # 11

Ahora necesitamos escribir el cuerpo del correo electrónico utilizando el tipo de cuerpo 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.