Outlook de VBA

Hemos visto VBA en Excel y cómo automatizamos nuestras tareas en Excel con la creación de macros, en Microsoft Outlook también tenemos una referencia para VBA y usando la cual podemos controlar Outlook usando VBA, esto hace que nuestras tareas repetidas en Outlook sean más fáciles de automatizar, y similar a Excel, necesitamos habilitar la función de desarrollador para usar VBA en Outlook.

Outlook de VBA

La belleza de VBA es que podemos hacer referencia a otros objetos de Microsoft como PowerPoint, Word y Outlook. Podemos crear presentaciones hermosas, podemos trabajar con documentos de Microsoft Word y, finalmente, también podemos enviar correos electrónicos. Sí, lo escuchaste bien, podemos enviar correos electrónicos desde Excel. Esto suena incómodo pero al mismo tiempo nos pone una sonrisa en la cara. En este artículo, le mostraré cómo trabajar con el objeto de Microsoft Outlook desde Excel usando la codificación VBA. Sigue leyendo ...

¿Cómo hacemos referencia a Outlook desde Excel?

Recuerde que Outlook es un objeto y necesitamos establecer la referencia a esto en la biblioteca de referencia del objeto. Para configurar el objeto de Outlook como referencia, siga los pasos a continuación.

Paso 1: vaya al Editor de Visual Basic.

Paso 2: Vaya a Herramientas> Referencia.

Paso 3: En la biblioteca de objetos de referencias a continuación, desplácese hacia abajo y seleccione "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY".

Marque la casilla de “MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY” para que esté disponible para Excel VBA.

Ahora podemos acceder al objeto de Outlook de VBA desde Excel.

Escriba un código para enviar correos electrónicos desde VBA Outlook desde Excel

Podemos enviar los correos electrónicos desde Excel a través de la aplicación Outlook. Para esto, necesitamos escribir códigos VBA. Siga los pasos a continuación para enviar los correos electrónicos desde Outlook.

Puede descargar esta plantilla de Outlook a Excel de VBA aquí - Plantilla de Outlook a Excel de VBA

Paso 1: cree un subprocedimiento.

Código:

 Opción Sub explícito Send_Exails () End Sub 

Paso 2: Defina la variable como VBA Outlook.Application .

Código:

 Opción Explicit Sub Send_Exails () Atenuar OutlookApp como Outlook.Application End Sub 

Paso 3: La variable anterior hace referencia a la aplicación VBA Outlook. En Outlook, necesitamos enviar correos electrónicos, así que defina otra variable como Outlook.MailItem.

Código:

 Opción Explicit Sub Send_Exails () Atenuar OutlookApp como Outlook.Application Atenuar OutlookMail como Outlook.MailItem End Sub 

Paso 4: Ahora ambas variables son variables de objeto. Necesitamos configurarlos. Primero establezca la variable "OutlookApp" como Nueva Outlook.Application .

Código:

 Sub Send_Exails () Atenuar OutlookApp como Outlook.Application Atenuar OutlookMail como Outlook.MailItem Establecer OutlookApp = New Outlook.Application End Sub 

Paso 5: Ahora configure la segunda variable "OutlookMail" como se muestra a continuación.

Establecer OutlookMail = OutlookApp.CreateItem (olMailItem)

Código:

 Sub Send_Exails () Atenuar OutlookApp como Outlook.Application Atenuar OutlookMail como Outlook.MailItem Set OutlookApp = New Outlook.Application Set OutlookMail = OutlookApp.CreateItem (olMailItem) End Sub 

Paso 6: Ahora usando Con acceso a la declaración VBA Outlook Mail.

Código:

 Sub Send_Exails () Atenuar OutlookApp como Outlook.Application Atenuar OutlookMail como Outlook.MailItem Establecer OutlookApp = New Outlook.Application Establecer OutlookMail = OutlookApp.CreateItem (olMailItem) con OutlookMail Finalizar con final 

Ahora podemos acceder a todos los elementos disponibles con elementos de correo electrónico como "Cuerpo del correo electrónico", "Para", "CC", "CCO", "Asunto" y muchas más cosas.

Paso 7: Ahora dentro del con la declaración podemos ver la lista de IntelliSense poniendo un punto .

Paso 8: Primero seleccione el formato del cuerpo como olFormatHtml .

Código:

 Con OutlookMail .BodyFormat = olFormatHTML Terminar con 

Paso 9: ahora muestra el correo electrónico.

Código:

 Con OutlookMail .BodyFormat = olFormatHTML .Display End With 

Paso 10: Ahora debemos escribir el correo electrónico en el cuerpo del correo electrónico. Para esto, seleccione HtmlBody .

Código:

 Con OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "Escriba su correo electrónico aquí" Termine con 

A continuación se muestra el ejemplo del cuerpo de la redacción del correo electrónico.

Paso 11: Después de escribir el correo electrónico, debemos mencionar la identificación de correo electrónico del destinatario. Para ello acceda " A ".

Paso 12: A continuación, mencione a quién desea enviar el correo electrónico en CC .

Step 13: Now mention the BCC email id’s,

Step 14: Next thing is we need to mention the subject for the email we are sending.

Step 15: Now add attachments. If you want to send the current workbook as an attachment then use the attachment as This workbook

Step 16: Finally send the email by using the Send method.

Now, this code will send the email from your VBA outlook mail. Use the below VBA code to send emails from your outlook.

To use the below code you must set the object reference to “MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY” under object library of Excel VBA

By setting the reference to the object library is called early binding. The reason why we need to set the reference to object library because without setting the object library as “MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY” We cannot access the IntelliSense list of VBA properties and methods. This makes the writing of code difficult because you need to be sure of what you are writing in terms of technique and spellings.

 Sub Send_Emails() 'This code is early binding i.e in Tools > Reference >You have check "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY" Dim OutlookApp As Outlook.Application Dim OutlookMail As Outlook.MailItem Set OutlookApp = New Outlook.Application Set OutlookMail = OutlookApp.CreateItem(olMailItem) With OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "Dear ABC" & "

" & "

" & "Please find the attached file" & .HTMLBody 'last .HTMLBody includes signature from the outlook. ''

includes line breaks b/w two lines .To = "[email protected]" .CC = "[email protected]" .BCC = "[email protected];[email protected]" .Subject = "Test mail" .Attachments = ThisWorkbook .Send End With End Sub