Introducción
VBA (Visual Basic for Applications) es una herramienta poderosa que permite automatizar tareas en las aplicaciones de Microsoft Office. Uno de los usos más comunes es el envío de emails a través de Outlook usando VBA en excel. En esta guía, exploraremos en detalle cómo enviar un email con VBA, proporcionando un paso a paso completo y detallado.
Si quieres ver más guías como esta, te recomendamos visitar Nuestras guias de excel, un recurso invaluable que te ofrece tutoriales detallados y precisos sobre diversas funcionalidades de Excel, incluyendo macros que pueden ser muy utiles para exportar informacion a txt o funciones de calculos que son muy utiles
Configuración Inicial
Antes de comenzar a escribir nuestro macro para excel, necesitamos habilitar la referencia de Microsoft Outlook en VBA. Para hacer esto, sigue los siguientes pasos:
- Abre el Editor VBA con
Alt + F11
. - Ve a
Herramientas > Referencias
. - Busca
Microsoft Outlook Object Library
y márcalo.

Con esto, le hemos indicado a VBA que vamos a utilizar las funcionalidades de Outlook.
Creación de un Procedimiento para Enviar un Email
A continuación, procederemos a escribir el código que nos permitirá enviar un email con VBA.
Sub EnviarEmailConVBA() Dim MiCorreo As Outlook.MailItem Dim MiOutlook As Outlook.Application Set MiOutlook = New Outlook.Application Set MiCorreo = MiOutlook.CreateItem(olMailItem) With MiCorreo .Subject = "Asunto del Correo" .Body = "Cuerpo del Correo" .Recipients.Add ("correo@dominio.com") .Send End With Set MiCorreo = Nothing Set MiOutlook = Nothing End Sub
Este procedimiento VBA se encarga de:
- Crear una nueva instancia de la aplicación Outlook.
- Crear un nuevo correo.
- Definir el asunto, el cuerpo y los destinatarios del correo.
- Enviar el correo.
Enviando un Email con Archivos Adjuntos
Es común que necesitemos enviar un correo con archivos adjuntos. Para hacer esto, simplemente añadimos la siguiente línea de código antes de .Send
:
.Attachments.Add "ruta/del/archivo"
La ruta del archivo debe ser la ubicación exacta del archivo en tu computadora. Con esto, podrás enviar un correo con un archivo adjunto.
Enviando un Email con Formato HTML
También puedes enviar un correo con formato HTML. Para hacer esto, debes cambiar el .Body
por .HTMLBody
y escribir el cuerpo del correo en HTML.
.HTMLBody = "<h1>Hola Mundo</h1>"
Con esto, podrás enviar correos con formato HTML.
Diagrama de Flujo del Proceso
A continuación, presentamos un diagrama de flujo que muestra el proceso de envío de un correo con VBA.

Conclusión
Enviar un email con VBA es un proceso sencillo pero poderoso que puede automatizar muchas de las tareas que realizamos a diario. Este proceso puede ser adaptado y extendido para ajustarse a las necesidades específicas de cada usuario. Recuerda siempre probar tu código y manejar cualquier posible error para asegurar que tu programa funcione de manera efectiva y eficiente.
Cómo Manejar Errores
En cualquier programa, es esencial manejar los errores de manera adecuada. Para ello, VBA cuenta con la instrucción On Error
, que nos permite definir qué hacer en caso de que ocurra un error. Aquí te mostramos un ejemplo de cómo manejar errores en nuestro procedimiento:
Sub EnviarEmailConVBA() On Error GoTo ManejadorDeErrores Dim MiCorreo As Outlook.MailItem Dim MiOutlook As Outlook.Application Set MiOutlook = New Outlook.Application Set MiCorreo = MiOutlook.CreateItem(olMailItem) With MiCorreo .Subject = "Asunto del Correo" .Body = "Cuerpo del Correo" .Recipients.Add ("correo@dominio.com") .Send End With Set MiCorreo = Nothing Set MiOutlook = Nothing Exit Sub ManejadorDeErrores: MsgBox "Ha ocurrido un error: " & Err.Description End Sub
En este código, si ocurre algún error durante la ejecución del procedimiento, VBA irá directamente a la etiqueta ManejadorDeErrores
, donde se muestra un mensaje de error y se detiene la ejecución.
Descargar
este archivo contiene el ejemplo de excel como funciona esta funcion de envio al detalle por lo cual recomiendo descargar.
En Resumen
El envío de emails a través de VBA es una tarea que puede simplificar enormemente el trabajo en muchas organizaciones. En esta guía, hemos visto cómo enviar un correo simple, cómo adjuntar archivos, cómo enviar un correo con formato HTML y cómo manejar errores. Esperamos que este artículo te sea de utilidad y te permita optimizar tus tareas diarias en VBA.
Recuerda siempre que la práctica hace al maestro. No dudes en experimentar con estos códigos y adaptarlos a tus necesidades. El potencial de VBA es enorme y, con un poco de esfuerzo, podrás automatizar tareas complejas y aumentar tu productividad.
¡Buena suerte en tu camino hacia la maestría de VBA!