VBA Enviar correo electrónico desde Excel

VBA no solo se limita a los datos en Excel. Podemos enviar correos electrónicos a través de VBA y esto es lo que aprenderemos en este artículo. Requiere un conocimiento considerable de VBA y sus métodos para escribir el código para enviar correos electrónicos de Excel. Antes de pasar a escribir y enviar correos electrónicos de Excel, háganos saber lo que significa esta automatización. Este tipo de automatización significa acceder a una función de otra aplicación utilizando cualquier otra aplicación. Ahora que Microsoft ofrece la función de correo en Outlook, utilizaremos métodos y propiedades de Outlook en Excel para enviar correos electrónicos. Para enviar un correo electrónico, también necesitamos conocer los aspectos básicos del correo electrónico. En términos simples, ¿cuál es el proceso y cuál es el requisito para enviar un correo electrónico? Un correo electrónico consiste en una dirección de correo electrónico del remitente si hay un CC (Copia de carbono) o un BCC y una línea de asunto con un cuerpo de correo electrónico.

¿Cómo enviar correos electrónicos desde Excel VBA?

Aprendamos cómo enviar correos electrónicos a través de Outlook desde Excel en VBA con un ejemplo. En este ejemplo, también enviaremos un archivo adjunto al receptor, el mismo archivo de Excel que escribiremos el código.

Puede descargar esta plantilla Excel de envío de correo electrónico VBA aquí - Plantilla Excel de envío de correo electrónico VBA

Siga los pasos a continuación para enviar correos electrónicos desde Excel usando el código VBA:

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

Antes de pasar a escribir códigos para enviar un correo electrónico, necesitamos saber que Outlook es un objeto externo y debemos referirlo en el VBA.

Paso 2: Ve a Herramientas y luego selecciona Referencias.

Paso 3: Al hacer clic en la referencia, se abrirá un cuadro de asistente para nosotros, encontrará una referencia para la biblioteca de objetos de Microsoft Outlook y verifíquela y luego haga clic en Aceptar.

Paso 4: haga clic en la pestaña Insertar e inserte un módulo en el proyecto VBA.

Paso 5: defina un subprocedimiento como se muestra a continuación.

Código:

 Sub EmailExample () End Sub 

Paso 6: Al hacer referencia a la perspectiva anterior, ahora podemos acceder a las propiedades de la perspectiva en VBA. Ahora declaremos una variable como una aplicación de Outlook.

Código:

 Correo electrónico débil como Outlook. 

Paso 7: Al igual que FSO, esta variable es una variable de objeto, por lo que para acceder a cualquier otra aplicación necesitamos crear algunas instancias, cree una instancia como se muestra a continuación utilizando la palabra clave SET.

Código:

 Establecer correo electrónico = Nueva perspectiva. 

Paso 8: Dado que queremos enviar un archivo adjunto al receptor, debemos declarar una variable como Cadena que contendrá la ruta para el archivo adjunto.

Código:

 Dim Sr como cadena 

Paso 9: Ahora comencemos con la parte de envío de correos en este código, para enviar un correo electrónico necesitamos definir otra variable que use la propiedad de Outlook para referirse a un nuevo correo electrónico como se muestra a continuación.

Código:

 Dim newmail como Outlook.MailItem 

Paso 10: Similar al anterior, con el uso de otra aplicación en el ejemplo que necesitamos para crear instancias, ahora tenemos que crear una instancia para un nuevo correo electrónico que se abrirá el nuevo correo electrónico utilizando el conjunto de palabras clave.

Código:

 Establecer newmail = Email.CreateItem (olMailItem) 

Antes de seguir avanzando, permítanme explicar nuestro progreso hasta el momento, la primera instancia nos abrirá perspectivas mientras que la segunda instancia nos abrirá el nuevo correo electrónico.

Paso 11: Como he explicado anteriormente, cuál es el requisito para enviar un correo electrónico. El primer requisito es un receptor que es "Para" en un correo electrónico. Entonces, usemos la propiedad To de Outlook en Excel de la siguiente manera.

Código:

 newmail.To = " " 

Paso 12: Dado que hemos usado la propiedad To, tenemos otra característica para usar, como Carbon Copy o la propiedad CC de outlook.

Código:

 newmail.CC = " " 

Del mismo modo, podemos usar la propiedad BCC.

Nota: La propiedad BCC se usa cuando queremos ocultar la dirección de correo electrónico del receptor BCC de los otros receptores.

¿Cuál es el siguiente paso para enviar un correo electrónico?

Paso 13: está sujeto. Cuando escribimos el nombre de la instancia con un operador de puntos, podemos ver la opción para un tema de la siguiente manera.

Paso 14: Presione Tab en el tema IntelliSense y escriba un tema aleatorio como se muestra a continuación.

Código:

 newmail.Subject = "Este es un correo electrónico automatizado" 

Paso 15: El siguiente paso para escribir un correo electrónico es un cuerpo para el correo electrónico. Al igual que las propiedades que usamos anteriormente con la instancia, usemos la propiedad del cuerpo de la perspectiva para escribir el cuerpo de la siguiente manera.

Código:

 newmail.HTMLBody = "Hola", & vbNewLine & vbNewLine & "Este es un correo electrónico de prueba de Excel" & _ vbNewLine & vbNewLine & _ "Saludos", & vbNewLine & _ "VBA Coder" 

Paso 16: Ahora hemos creado un correo electrónico con un cuerpo y una línea de asunto. El siguiente paso es agregar un archivo adjunto al correo electrónico. Como queremos enviar la hoja de trabajo actual al receptor, utilizaremos la ruta de la siguiente manera,

Código:

 Sr = ThisWorkbook.FullName 

Paso 17: Ahora podemos enviar el archivo adjunto utilizando la propiedad de fijación como se muestra a continuación.

Código:

 newmail.Attachments.Add Sr 

Paso 18: Ahora finalmente tenemos que enviar el correo electrónico. Al igual que en Outlook, presionamos el botón Enviar para enviar un correo electrónico, de manera similar, usaremos las propiedades de envío de Outlook de la siguiente manera.

Código:

 newmail.Send 

Código completo final

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

Código:

 Sub EmailExample () Dim Email como Outlook.Application Set Email = New Outlook.Application Dim Sr As String Dim newmail As Outlook.MailItem Set newmail = Email.CreateItem (olMailItem) newmail.To = " " newmail.CC = " " newmail.Subject = "Este es un correo electrónico automatizado" newmail.HTMLBody = "Hola", & vbNewLine & vbNewLine & "Este es un correo electrónico de prueba de Excel" & _ vbNewLine & vbNewLine & _ "Atentamente, " & vbNewLine & _ "VBA Coder" Sr = ThisWorkbook.FullName newmail.Attachments.Add Sr newmail.Send End Sub 

Cuando ejecutamos el código anterior, debemos esperar unos segundos para que se ejecute el código y podemos verificar la casilla enviada en la perspectiva de que el correo electrónico se haya enviado a través de Excel.

Cosas para recordar

  • Utilizamos otra aplicación para enviar un correo electrónico de Excel.
  • Para usar otra aplicación creamos instancias.
  • Antes de usar Outlook como otra aplicación, debemos referirnos a los objetos de Outlook desde la pestaña de referencia.
  • Necesitamos conocer los requisitos de un correo electrónico para enviar un correo electrónico.

Artículos recomendados

Esta es una guía para VBA Enviar correo electrónico desde Excel. Aquí discutimos cómo enviar correos electrónicos con archivos adjuntos de Excel usando el código VBA 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. VBA Hipervínculo con ejemplos
  2. ¿Cómo usar la función AÑO en Excel?
  3. Consejos sobre el uso de VBA Outlook
  4. Tutoriales sobre la función de fecha de Excel

Categoría: