Función de Excel VBA Outlook

Trabajamos en lotes y lotes de archivos de Excel a diario y enviamos a muchos usuarios a diario. Escribimos el mismo mensaje en el correo electrónico todos los días y enviamos ese archivo de Excel. Esto nos da el alcance de la automatización de esta tarea. Lo escuchaste bien. Esta tarea de escribir un correo electrónico y enviar el archivo se puede automatizar con la ayuda de VBA. La razón es que VBA puede usar una referencia con diferentes objetos de Microsoft como Outlook, Word, PowerPoint, Paint, etc.

Entonces podemos enviar el correo electrónico con la ayuda de VBA. Ahora estoy seguro de que todos estarán encantados de saber cómo podemos enviar un correo electrónico con la ayuda de VBA.

Aprenderemos en este artículo sobre cómo usar Outlook como objeto de Microsoft de Excel usando la codificación VBA y cómo podemos enviar un correo electrónico que incluya un archivo adjunto con la ayuda de VBA.

¿Cómo utilizar la función de Excel VBA Outlook?

Para usar la función VBA Outlook, necesitamos hacer dos cosas.

Puede descargar esta plantilla de Excel de VBA Outlook aquí - Plantilla de Excel de VBA Outlook
  1. Referencia de Microsoft Outlook Object de Object Library en VBA.
  2. Escriba el código VBA para enviar correos electrónicos en el módulo VBA.

# 1 - Referencia de Outlook desde Excel

Como sabe, Outlook es un objeto y debemos proporcionar una referencia al objeto de Outlook. Por lo tanto, hay una biblioteca de referencia de objetos en VBA que debemos usar como referencia.

Siga los pasos a continuación para usar la Biblioteca de referencia de objetos.

Paso 1: en la pestaña Desarrollador, haga clic en Visual Basic para abrir el Editor VB.

Paso 2: vaya a Herramientas y luego seleccione Referencias como se muestra en la siguiente captura de pantalla.

Paso 3: desplácese hacia abajo en la biblioteca de objetos de referencia y seleccione "Biblioteca de objetos de Microsoft Outlook 16.0" para que esté disponible para Excel VBA.

Dependiendo de la oficina de Microsoft, la versión de Outlook puede ser diferente. En nuestro caso, es 16.0. Puede usar la " Biblioteca de objetos de Microsoft Outlook 14.0" si esa es la versión que se muestra en su computadora.

Marque la casilla de Microsoft Outlook como se muestra en la captura de pantalla anterior. Ahora podemos usar el objeto de Microsoft Outlook en Excel VBA.

Este proceso de establecer la referencia a “BIBLIOTECA DE OBJETOS MICROSOFT OUTLOOK 16.0” se conoce como Enlace temprano. Sin establecer la biblioteca de objetos como “BIBLIOTECA DE OBJETOS MICROSOFT OUTLOOK 16.0” no podemos usar las propiedades y métodos de IntelliSense de VBA, lo que dificulta la escritura del código.

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

Siga los pasos a continuación para escribir el código VBA para enviar correos electrónicos desde Outlook desde Excel.

Paso 1: Cree un Subprocedimiento nombrando la macro. Llamaremos macro como "send_email" como se muestra en la siguiente captura de pantalla.

Código:

 Opción Sub explícita Send_email () End Sub 

Paso 2: Defina la variable como Outlook. Aplicación como se muestra en la siguiente captura de pantalla. Esta es la referencia a la aplicación VBA Outlook.

Código:

 Opción Sub explícito Send_email () Dim OutlookApp como Outlook.Application End Sub 

Paso 3: Necesitamos enviar un correo electrónico en Outlook, así que defina otra variable como " Outlook.Mailitem " como se muestra en la siguiente captura de pantalla.

Código:

 Opción Sub explícito Send_email () Dim OutlookApp como Outlook.Aplicación Dim OutlookMail como Outlook.MailItem End Sub 

Paso 4: en los pasos anteriores hemos definido la variable, ahora necesitamos establecerla.

Ahora configure la primera variable "Aplicación de Outlook" como "Nueva aplicación de Outlook", como se muestra en la siguiente captura de pantalla.

Código:

 Opción Sub explícito Send_email () Dim OutlookApp como Outlook.Application Dim OutlookMail As Outlook.MailItem Establecer OutlookApp = Nuevo Outlook.Application End Sub 

Paso 5: Ahora configure la segunda variable "Correo de Outlook" con el siguiente código.

Código:

 Opción Sub explícito Send_email () Dim OutlookApp As Outlook.Application Dim OutlookMail As Outlook.MailItem Set OutlookApp = New Outlook.Application Set OutlookMail = OutlookApp.CreateItem (olMailItem) End Sub 

Paso 6: Ahora podemos usar el Outlook de VBA usando la declaración " Con " como se muestra en la siguiente captura de pantalla.

Código:

 Opción Sub explícito Send_email () Dim OutlookApp As Outlook.Application Dim OutlookMail As Outlook.MailItem Set OutlookApp = New Outlook.Application Set OutlookMail = OutlookApp.CreateItem (olMailItem) With OutlookMail End Sub 

Ahora tenemos todo el acceso a elementos de correo electrónico como "Para", "CC", "CCO", "asunto", "Cuerpo del correo electrónico" y muchos más elementos.

Paso 7: Dentro de la declaración "Con", podemos ver una lista colocando un punto que se conoce como "Lista Intellisense".

Paso 8: Primero seleccione el formato del cuerpo como olFormatHtml como se muestra en la siguiente captura de pantalla.

Código:

 Con OutlookMail .BodyFormat = olFormatHTML End Sub 

Paso 9: Seleccione " .Display " para mostrar el correo como se muestra en la siguiente captura de pantalla.

Código:

 Con OutlookMail .BodyFormat = olFormatHTML .Display End Sub 

Paso 10: Seleccione " .HTMLbody " para escribir el correo electrónico como se muestra en la siguiente captura de pantalla.

Código:

 Con OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "escriba su correo electrónico aquí" End Sub 

Necesitamos recordar algunas cosas al escribir el correo electrónico en código VBA.

"
"Se utiliza para incluir la separación de líneas entre dos líneas. Para agregar una firma en el correo electrónico, debe ingresar "& .HTMLbody"

Vea el siguiente ejemplo sobre cómo escribir el correo en VBA.

Código:

 Con OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "Estimado ABC" & "
"&" Busque el archivo adjunto "& .HTMLBody End Sub

Paso 11: Ahora necesitamos agregar el receptor del correo electrónico. Para esto, necesita usar ".To".

Código:

 .To = " " 

Paso 12: Si desea agregar a alguien en “CC” y “BCC”, puede usar “.CC” y “.BCC” como se muestra en la siguiente captura de pantalla.

Código:

 .CC = " " .BCC = " " 

Paso 13: Para agregar un asunto para el correo electrónico que estamos enviando, podemos usar " .Subject " como se muestra en la siguiente captura de pantalla.

Código:

 .Subject = "TEST MAIL" 

Paso 14: podemos agregar nuestro libro de trabajo actual como un archivo adjunto en el correo electrónico con la ayuda de la propiedad ".Attachment". Para hacerlo, primero declare una Fuente variable como una cadena.

Código:

 Dim source_file As String 

Luego use el siguiente código para adjuntar el archivo en el correo electrónico.

Código:

 source_file = ThisWorkbook.FullName .Attachments.Add source_file 

Aquí ThisWorkbook se utiliza para el libro de trabajo actual y. FullName se usa para obtener el nombre completo de la hoja de trabajo.

Paso 15: Ahora el último código es finalmente enviar el correo electrónico para el que podemos usar " .send ". Pero asegúrese de cerrar el procedimiento With y Sub mediante "End with" y "End Sub" como se muestra en la captura de pantalla siguiente.

Entonces, el código finalmente está listo para enviar un correo electrónico. Necesitamos simplemente ejecutar la macro ahora.

Paso 16: Ejecute el código presionando F5 o el botón Ejecutar y vea la salida.

Código completo final

A continuación se muestra el código final sobre cómo enviar un correo electrónico con la ayuda de VBA Outlook.

Código:

 Opción Sub explícito Send_email () Dim OutlookApp As Outlook.Application Dim OutlookMail As Outlook.MailItem Dim source_file As String Set OutlookApp = New Outlook.Application Set OutlookMail = OutlookApp.CreateItem (olMailItem) With OutlookMail .BodyFormat = olFormatHTML .Display. " Estimado ABC "&"
"&" Busque el archivo adjunto "& .HTMLBody .To =" ".CC =" ".BCC =" ".Subject =" TEST MAIL "source_file = ThisWorkbook. FullName .Attachments.Add source_file .Send End With End Sub

Ejemplo de función de Outlook VBA

Supongamos que hay un líder de equipo y él quiere enviar un correo electrónico diario para el seguimiento de la actividad de cada miembro. El correo electrónico será así.

" Hola equipo,

Solicite que comparta amablemente sus acciones en cada uno de sus elementos de seguimiento antes de las 11 a.m. de hoy.

Gracias y Saludos,

Desconocido

"

Siga los pasos mencionados anteriormente para hacer referencia al Microsoft Object y escribir la codificación VBA o puede modificar el código en consecuencia.

Entonces, con todo el código restante, necesitamos cambiar algunas cosas en el código para que sean como ID de correo electrónico del receptor, Asunto, Cuerpo del correo electrónico y no habrá datos adjuntos en el correo electrónico.

A continuación se muestra el código modificado que estamos utilizando para escribir este correo electrónico.

Código:

 Sub Send_teamemail () 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 = "Hi Team" & "
"&"
"&" Solicitarle que comparta amablemente sus acciones en cada uno de sus elementos de seguimiento antes de las 8 PM de hoy. "& .HTMLBody .To =" ; ; ".Subject =" Seguimiento del equipo ". Enviar Fin con Fin Sub

Después de ejecutar la macro, verá que el correo se ha enviado automáticamente desde su perspectiva.

Cosas para recordar

  • Primero, asegúrese de haber instalado Microsoft Outlook en su computadora y de haber iniciado sesión en su cuenta.
  • Asegúrese de que la casilla para Microsoft Outlook en la referencia de la Biblioteca de objetos siempre esté marcada. El código no se ejecutará y arrojará un error si no está marcado.
  • Definir variables y establecer variables en muy importante en la codificación VBA. Sin variables, un código no funcionará.
  • Asegúrese de que si desea agregar una firma en el correo, primero debe tener al menos una firma ya creada en Outlook.
  • Siempre usa "
    "Para introducir espacios en línea en el correo.

Artículos recomendados

Esta es una guía para VBA Outlook. Aquí discutimos cómo enviar correos electrónicos desde Outlook usando códigos VBA en Excel junto con un ejemplo y una plantilla de Excel descargable. A continuación se presentan algunos artículos útiles de Excel relacionados con VBA:

  1. ¿Qué es el error VBA OverFlow?
  2. Personalizar la barra de herramientas de acceso rápido en Excel
  3. Ejemplos de rango con nombre de VBA
  4. Cómo enviar correos electrónicos desde Excel VBA
  5. ¿Cómo utilizar la opción explícita en VBA?

Categoría: