Cómo enviar correos electrónicos con VBA en Excel: 11 pasos para Outlook

Excel VBA permite preparar un correo electrónico de Outlook con destinatario, asunto, mensaje y archivo adjunto. Esta guía de 11 pasos utiliza la versión clásica de Outlook para Windows y abre el mensaje como borrador para que pueda revisarlo antes de enviarlo. Microsoft indica que las macros VBA y el modelo de objetos de Outlook no son compatibles con la nueva versión de Outlook, por lo que este ejemplo basado en COM no funcionará con la nueva versión de Outlook ni con Outlook en un navegador.

Antes de comenzar, guarda tu trabajo y confirma que Outlook clásico esté instalado con una cuenta de correo electrónico configurada. El código utiliza enlace tardío, por lo que no necesitas agregar una referencia a la biblioteca de Outlook específica de la versión.

Enviar un correo electrónico con Excel VBA en 11 pasos

1. Confirme que Outlook clásico esté disponible.

Abra la versión de escritorio de Outlook y asegúrese de que su buzón de correo pueda enviar mensajes. Esta macro requiere la versión clásica de Outlook para Windows; una pestaña de Outlook.com, Outlook en la web y la nueva versión de Outlook no muestran el objeto de automatización COM que se utiliza aquí. Consulte la comparación de características de Outlook clásico y nuevo de Microsoft .

Libro de Excel con una ventana clásica de escritorio de Outlook abierta detrás.
Paso 1: Utilice las versiones de escritorio de Excel para Windows y la versión clásica de Outlook.

2. Guarda el libro de trabajo como un archivo habilitado para macros.

En Excel, seleccione Archivo > Guardar como y , a continuación, Libro de Excel habilitado para macros (*.xlsm) . Un archivo .xlsx normal no puede conservar el código VBA. Guarde el libro en una ubicación a la que pueda acceder y recuerde su ruta.

Cuadro de diálogo Guardar como de Excel con el tipo de libro de trabajo .xlsm habilitado para macros seleccionado.
Paso 2: Al guardar, seleccione el formato .xlsm habilitado para macros.

3. Abra el Editor de Visual Basic.

Con el libro de trabajo abierto en la aplicación de escritorio de Excel, pulse Alt+F11 . En el Explorador de proyectos, localice el proyecto cuyo nombre coincida con el de su libro de trabajo. Si el editor está oculto, pulse Ctrl+R para mostrar el Explorador de proyectos.

El editor de Visual Basic muestra el proyecto del libro de trabajo de Excel y un panel de código vacío.
Paso 3: El proyecto del libro de trabajo aparece en el Editor de Visual Basic.

4. Inserte un módulo estándar.

En el Editor de Visual Basic, seleccione el proyecto del libro de trabajo, elija Insertar > Módulo y utilice el nuevo panel de código. Un módulo estándar es un lugar adecuado para una macro que se ejecuta bajo demanda.

Menú Insertar del Editor de Visual Basic con el comando Módulo resaltado.
Paso 4: Inserte un módulo estándar para la macro.

5. Añada la macro de creación de borradores.

Pegue este procedimiento en el módulo. Comprueba que el libro de trabajo se haya guardado, verifica la ruta del archivo adjunto, crea un mensaje de Outlook y lo muestra sin enviarlo.

Módulo VBA que contiene el inicio de un procedimiento CreateOutlookDraft.
Paso 5: Añada el procedimiento al nuevo módulo.
Option Explicit

Sub CreateOutlookDraft()
    Dim olApp As Object
    Dim olMail As Object
    Dim attachmentPath As String

    If Len(ThisWorkbook.Path) = 0 Then
        MsgBox "Save the workbook before creating the email.", vbExclamation
        Exit Sub
    End If

    attachmentPath = ThisWorkbook.FullName
    If Len(Dir$(attachmentPath)) = 0 Then
        MsgBox "Workbook attachment not found: " & attachmentPath, vbExclamation
        Exit Sub
    End If

    On Error Resume Next
    Set olApp = GetObject(, "Outlook.Application")
    If olApp Is Nothing Then
        Set olApp = CreateObject("Outlook.Application")
    End If
    On Error GoTo 0

    If olApp Is Nothing Then
        MsgBox "Classic Outlook could not be opened.", vbExclamation
        Exit Sub
    End If

    Set olMail = olApp.CreateItem(0)
    With olMail
        .To = "recipient@example.com"
        .CC = ""
        .Subject = "Monthly report"
        .Body = "Hi," & vbCrLf & vbCrLf & _
                "Please review the attached monthly report." & _
                vbCrLf & vbCrLf & "Thanks,"
        .Attachments.Add attachmentPath
        .Display
    End With

    Set olMail = Nothing
    Set olApp = Nothing
End Sub

El argumento numérico 0crea un elemento de correo estándar. Microsoft documenta Application.CreateItem , Attachments.Add y MailItem.Display .

6. Reemplace los detalles del correo electrónico de ejemplo.

Cambia recipient@example.comal destinatario previsto. Agrega direcciones .CCsi es necesario, luego edita .Subjectel texto en .Body. Mantén las comillas alrededor de los valores de texto y usa &para unir líneas con vbCrLf. El ejemplo usa un mensaje de texto plano; no requiere formato HTML.

Editor de VBA con ejemplos de campos de destinatario y asunto resaltados en la macro de correo electrónico.
Paso 6: Reemplace el destinatario de ejemplo; edite el asunto y las líneas del mensaje siguiendo el mismo procedimiento.

7. Elija el archivo adjunto

Tal como está escrito, ThisWorkbook.FullNameadjunta el libro de trabajo habilitado para macros guardado. Si desea adjuntar un informe aparte, reemplace esa asignación con su ruta de archivo completa, por ejemplo "C:\Reports\MonthlyReport.xlsx". Confirme que el archivo está presente y accesible antes de ejecutar la macro. El Attachments.Addmétodo adjunta un archivo al mensaje.

Código VBA que comprueba la ruta de un archivo adjunto del informe antes de crear un mensaje de Outlook.
Paso 7: Confirme que la ruta del archivo adjunto apunta a un archivo existente.

8. Guarda la macro.

En el editor, pulse Ctrl+S o vuelva a Excel y guarde el libro. Conserve el formato .xlsm; al guardarlo como .xlsx, se eliminará el proyecto VBA. Guarde el archivo en una ubicación de confianza y no habilite las macros en un libro de origen desconocido.

Ventanas del editor de Excel y VBA que muestran el libro de trabajo .xlsm guardado y el control Guardar.
Paso 8: Guarde el libro de trabajo conservando la extensión .xlsm.

9. Ejecutar el procedimiento

Haz clic dentro CreateOutlookDrafty pulsa F5 , o usa el comando Ejecutar del editor. Si Excel bloquea la macro, sigue la política de tu organización. Microsoft indica que Office bloquea las macros en archivos marcados como provenientes de internet de forma predeterminada; consulta su guía de seguridad de macros en lugar de desactivar las protecciones globalmente.

Menú Ejecutar del Editor de Visual Basic que muestra el comando F5 para la macro seleccionada.
Paso 9: Ejecute la macro desde el Editor de Visual Basic.

10. Revisa el borrador y envíalo tú mismo.

Outlook debería abrir un mensaje con la dirección, el asunto, el cuerpo y el archivo adjunto del libro de trabajo completados. Verifique a cada destinatario y abra el archivo adjunto si corresponde. Haga clic en el botón Enviar de Outlook solo después de revisar el borrador. El código utiliza intencionadamente .Display, no .Send, para evitar que se envíe automáticamente un archivo con errores tipográficos o obsoleto.

Borrador clásico de Outlook con destinatario, asunto y archivo adjunto de libro de trabajo, listo para su revisión.
Paso 10: Revise el borrador de Outlook y el libro de trabajo adjunto.
Ventana de redacción de Outlook con el botón Enviar visible y el borrador aún abierto.
Enviar únicamente después de confirmar los detalles del mensaje.

11. Solucionar problemas comunes

  • El componente ActiveX no puede crear el objeto o Outlook no está disponible: confirme que la versión clásica de Outlook para Windows esté instalada y configurada. Las versiones nuevas de Outlook y Outlook para navegador no proporcionan el modelo de objetos de Outlook necesario.
  • La macro no se ejecutará: confirme que el libro de trabajo sea .xlsm y revise el aviso de seguridad de Excel. No habilite todas las macros para evitar la advertencia; confíe solo en los archivos y editores que reconozca.
  • El archivo adjunto no se encuentra: guarde primero el libro de trabajo o corrija la ruta completa del informe independiente. Compruebe que el archivo no esté en una unidad no disponible.

Este flujo de trabajo está diseñado para mensajes que se revisan y envían en Outlook clásico. Para correos electrónicos empresariales recurrentes o que no requieren supervisión, utilice un servicio de automatización aprobado por la organización y valide los destinatarios, los archivos adjuntos y los permisos por separado.

Advertencia de seguridad de Excel que explica que las macros se han deshabilitado para un archivo.
Si Office bloquea una macro, siga las directrices de seguridad de Microsoft y la política de su organización.

Dejar un comentario

Cómo mover una imagen en Microsoft Word

Cómo mover una imagen en Microsoft Word

Aprende a arrastrar una imagen en Word, a elegir el ajuste de texto, a mantenerla dentro de un párrafo o a fijarla en la página, y a solucionar problemas con imágenes que no se mueven.

Cómo insertar una casilla de verificación en Excel: dos métodos sencillos

Cómo insertar una casilla de verificación en Excel: dos métodos sencillos

Aprende a insertar una casilla de verificación en Excel con la herramienta "En celda", a contar los elementos seleccionados con fórmulas o a agregar un control de formulario vinculado en versiones de escritorio anteriores.

Cómo autocompletar letras en Excel: de la A a la Z y más allá

Cómo autocompletar letras en Excel: de la A a la Z y más allá

Genere letras de la A a la Z, letras minúsculas o etiquetas más allá de la Z en Excel con una fórmula de controlador de relleno, una SECUENCIA o una lista personalizada reutilizable.

Cómo tachar texto en Excel: Atajos y métodos paso a paso

Cómo tachar texto en Excel: Atajos y métodos paso a paso

Aprende a tachar texto en Excel para Windows, Mac y la web, a dar formato a parte de una celda y a eliminar la línea sin borrar su valor.

¿Qué es Microsoft Access? ¿Cómo funcionan sus herramientas de base de datos?

¿Qué es Microsoft Access? ¿Cómo funcionan sus herramientas de base de datos?

Microsoft Access es una aplicación de base de datos para Windows que permite almacenar registros relacionados, crear consultas, generar formularios de entrada de datos y crear informes. Descubra cómo funciona y cuándo es la opción más adecuada.

Importación y exportación de Office Outlook 2010: Transferencia de datos con un archivo PST

Importación y exportación de Office Outlook 2010: Transferencia de datos con un archivo PST

Aprende a importar un archivo PST a Outlook 2010 o a exportar correo electrónico, contactos, calendario y tareas. Sigue los menús correctos y evita carpetas faltantes o duplicadas.

Cambiar la altura y el ancho de las líneas de cuadrícula en Word 2010

Cambiar la altura y el ancho de las líneas de cuadrícula en Word 2010

Aprenda a ajustar la altura y el ancho de las líneas de cuadrícula en Word 2010, cambiar la frecuencia de las líneas visibles y establecer el espaciado horizontal y vertical subyacente de la cuadrícula de dibujo.

Recuperar una contraseña de Outlook PST con Nucleus Kernel

Recuperar una contraseña de Outlook PST con Nucleus Kernel

Recupere una contraseña olvidada de un archivo PST de Outlook siguiendo los pasos actuales de Kernel, que incluyen cómo identificar el archivo correcto, realizar una copia de seguridad y comprobar los límites de la herramienta.

Cómo insertar una página web en vivo en una diapositiva de PowerPoint

Cómo insertar una página web en vivo en una diapositiva de PowerPoint

Utilice el complemento LiveWeb para insertar un sitio web en una diapositiva de PowerPoint, configurar su tamaño y comportamiento de actualización, y comprobar la compatibilidad antes de la presentación.

Agrega los días festivos nacionales a tu calendario de Outlook.

Agrega los días festivos nacionales a tu calendario de Outlook.

Agregue días festivos específicos de cada país en la nueva versión de Outlook, Outlook en la web o la versión clásica de Outlook. Aprenda cómo evitar eventos duplicados y compruebe si faltan fechas de 2026-2027.