Outlook

Cómo enviar correos desde Excel con Outlook paso a paso

octubre 6, 2026 Tuto Excel 16 min read
Cómo enviar correos desde Excel con Outlook paso a paso

Unir Excel y Outlook sirve para algo muy concreto: escribir poco cuando los datos ya están en una hoja. Con esta guía aprenderás a mandar un correo a cada cliente de tu lista, a crear una cita en el calendario por cada entrega y a abrir los archivos adjuntos sin perderlos. Lo que se explica funciona en Microsoft 365, Excel 2024 y Excel 2021; en versiones anteriores (2019, 2016, 2013) la parte de macros sigue disponible, pero los hipervínculos mailto requieren Outlook de escritorio instalado para abrir la ventana de nuevo mensaje.

Qué puedes hacer al unir Excel y Outlook

Imagina una hoja llamada Pedidos con cinco filas, una por cliente. En una columna está el correo del cliente, en otra el número de pedido y en otra el importe. Si la revisas un lunes, tienes que abrir Outlook, escribir a cada uno y copiar el importe a mano: una hora larga con cinco errores garantizados.

Cuando Excel y Outlook trabajan juntos, esa misma hoja hace el trabajo por ti. Un clic en la celda del cliente abre Outlook con el mensaje ya escrito; una macro puede enviar el correo directamente, y otra puede crear una cita en el calendario con la fecha de entrega y un aviso un día antes. Nada de copiar y pegar entre programas: los datos se quedan en su sitio y el envío queda registrado en la propia hoja.

Las dos formas de conectarlos: fórmulas frente a VBA

Hay dos caminos, y no hacen falta los dos. El primero es manual: una fórmula crea un enlace clicable que abre Outlook (o el correo web del sistema) con el destinatario, el asunto y el cuerpo ya rellenos. Tú revisas y pulsas Enviar. Sirve cuando mandas pocos correos a la semana y necesitas ver cada mensaje antes de que salga.

El segundo es automático: una macro en VBA abre Outlook, rellena el mensaje y lo envía ella sola, sin que pulses nada. Sirve cuando mandas muchos correos iguales (avisos de pedido, recordatorios, nóminas) o cuando quieres que el envío quede anotado en la propia hoja con la fecha y la hora. A cambio, requiere Outlook de escritorio instalado y un ajuste de seguridad.

Cuando basta un hipervínculo mailto

Un enlace mailto: es un texto que empieza por mailto: seguido de la dirección de correo. Al hacer clic, el sistema abre el programa de correo predeterminado con un mensaje nuevo dirigido a esa dirección. Si le añades ?subject= y ?body= después del correo, también rellena el asunto y el cuerpo.

La función HIPERVINCULO (en inglés HYPERLINK) de Excel monta ese texto y lo convierte en un enlace clicable. Por ejemplo:

=HIPERVINCULO("mailto:"&A2&"?subject=Pedido "&B2&"&body=Importe "&TEXTO(C2;"0,00");"Enviar")

El primer argumento es la dirección real del enlace (lo que el navegador o el sistema abre); el segundo es el texto visible en la celda, aquí Enviar. Al pulsar, Outlook (o el cliente de correo que tengas configurado) se abre solo, con el destinatario, el asunto y el cuerpo ya escritos.

Cuando hace falta VBA: el objeto Outlook.Application

Cuando quieres que Excel envíe el correo sin que tú pulses Enviar, necesitas una macro. Excel expone el programa Outlook como un objeto: un bloque de código al que le puedes decir «abre Outlook», «crea un mensaje», «ponle este destinatario», «mándalo». El objeto principal se llama Outlook.Application.

Para escribir macros necesitas la pestaña Programador, que viene oculta. Se activa en Archivo > Opciones > Personalizar cinta de opciones y marcando la casilla Programador. Luego, en Programador > Código > Visual Basic se abre el editor, y desde Insertar > Módulo se añade un módulo donde escribir las instrucciones. La macro solo funcionará si Outlook está instalado en el mismo equipo y configurado con al menos una cuenta de correo.

Enviar un correo de Outlook desde una celda con mailto

Empezamos con el camino manual: una hoja con los datos de los clientes y una fórmula por fila que arma el enlace mailto.

La hoja Clientes tiene tres columnas con cinco clientes: nombre, correo y número de pedido. Vamos a añadir una cuarta columna con el enlace listo para pulsar.

D2fx(a)
A B C D
1 Cliente Email Pedido Acción
2 Ana Ruiz ana@ejemplo.com 1024 (a)
3 Pedro Soto pedro@ejemplo.com 1025 (a)
4 Lucía Pérez lucia@ejemplo.com 1026 (a)
5 Miguel Díaz miguel@ejemplo.com 1027 (a)
6 Sara Gil sara@ejemplo.com 1028 (a)
Clientes

Construir el enlace a mano en una celda

Para que la celda D2 abra un correo nuevo dirigido a ana@ejemplo.com, escribe esta fórmula:

=HIPERVINCULO("mailto:"&B2;"Escribir a "&A2)

"mailto:"&B2 une la palabra mailto: con el correo que haya en B2. El segundo argumento, "Escribir a "&A2, es lo que se ve en la celda: un texto que incluye el nombre del cliente. Arrastra el controlador de relleno desde D2 hasta D6 para copiar la fórmula a las demás filas.

Comprueba: al hacer clic en D2, Outlook (o tu cliente de correo) se abre con un mensaje nuevo cuyo destinatario es ana@ejemplo.com. La barra de fórmulas muestra la fórmula anterior; la celda muestra el texto Escribir a Ana Ruiz en azul y subrayada.

Añadir asunto y cuerpo al mensaje

Para que el mensaje llegue con el asunto y el cuerpo ya escritos, ampliamos la fórmula con ?subject= y ?body=:

=HIPERVINCULO("mailto:"&B2&"?subject=Pedido "&C2&"&body=Hola "&A2&",%0Ate confirmamos tu pedido.";"Escribir a "&A2)

El %0A es el código que indica un salto de línea en una URL, así el cuerpo queda en dos líneas en lugar de una sola. Todo lo que sigue a ? son parámetros del mensaje: primero el asunto, después el cuerpo.

D2fx=HIPERVINCULO("mailto:"&B2&"?subject=Pedido "&C2&"&body=Hola "&A2&",%0Ate confirmamos tu pedido.";"Escribir a "&A2)
A B C D
1 Cliente Email Pedido Acción
2 Ana Ruiz ana@ejemplo.com 1024 Escribir a Ana Ruiz
3 Pedro Soto pedro@ejemplo.com 1025 Escribir a Pedro Soto
4 Lucía Pérez lucia@ejemplo.com 1026 Escribir a Lucía Pérez
5 Miguel Díaz miguel@ejemplo.com 1027 Escribir a Miguel Díaz
6 Sara Gil sara@ejemplo.com 1028 Escribir a Sara Gil
Clientes
Comprueba: al pulsar D2 se abre un mensaje con destinatario ana@ejemplo.com, asunto Pedido 1024 y cuerpo con dos líneas: el saludo y la confirmación.

El caso de Microsoft 365: la ventana de Outlook en la web

Si tu equipo no tiene Outlook de escritorio sino solo la versión web (outlook.com o el Outlook de Microsoft 365 en el navegador), el clic en el enlace mailto no abre una ventana del sistema: abre una pestaña nueva en el navegador con el mensaje ya medio escrito. El comportamiento depende de qué aplicación esté configurada como cliente de correo predeterminado en Windows, no de la versión de Excel.

Para cambiarla en Windows 10 u 11 ve a Configuración > Aplicaciones > Aplicaciones predeterminadas y busca cliente de correo electrónico; ahí puedes elegir Outlook de escritorio si lo tienes instalado. Si solo usas Outlook en la web, déjalo como está: el enlace funcionará igualmente.

Nota: en Excel para la web y en Excel para Mac los enlaces mailto también se admiten, pero la ventana que se abre es la del cliente configurado en el sistema operativo, no una ventana de Excel.

Enviar correos automáticos con una macro desde Excel

Cuando la lista crece y mandar uno a uno se hace pesado, una macro en VBA recorre la hoja y envía un correo por cada fila sin que tengas que pulsar nada.

Activar la pestaña Programador y abrir el editor

  1. Clic en Archivo > Opciones > Personalizar cinta de opciones.
  2. En la columna derecha, marca la casilla Programador.
  3. Pulsa Aceptar.
  4. Clic en la nueva pestaña Programador > Código > Visual Basic.
  5. En el editor, clic en Insertar > Módulo.
ArchivoOpcionesPersonalizar cinta de opciones
ProgramadorCódigoVisual Basic
InsertarMódulo

La macro que envía un correo por cada fila

Copia este código en el módulo que acabas de crear. Recorre la columna B con los correos, crea un mensaje por cada cliente y lo envía. La columna B debe tener correos válidos; la macro termina sin hacer nada si está vacía.

Sub EnviarPedidos()
    Dim OutlookApp As Outlook.Application
    Dim Mensaje As Outlook.MailItem
    Dim Fila As Long
    Dim UltimaFila As Long

    UltimaFila = Cells(Rows.Count, "B").End(xlUp).Row
    Set OutlookApp = New Outlook.Application

    For Fila = 2 To UltimaFila
        Set Mensaje = OutlookApp.CreateItem(olMailItem)
        Mensaje.To = Cells(Fila, "B").Value
        Mensaje.Subject = "Pedido " & Cells(Fila, "C").Value
        Mensaje.Body = "Hola " & Cells(Fila, "A").Value & ", te confirmamos tu pedido."
        Mensaje.Send
    Next Fila

    Set Mensaje = Nothing
    Set OutlookApp = Nothing
End Sub

Para ejecutar la macro vuelve a Excel, vuelve a la hoja Clientes y pulsa Alt+F8, elige EnviarPedidos y pulsa Ejecutar. La macro abre Outlook, crea un mensaje por cada fila de la 2 a la 6 y lo envía.

Cuidado: la macro .Send envía el correo de verdad, sin pedirte confirmación. Para probar primero, cambia .Send por .Display y la macro abrirá cada mensaje en una ventana para que lo revises antes.

Poner el resultado en una columna para ver qué se envió

Para dejar constancia, añadimos una columna D llamada Enviado donde la macro escribe la fecha y la hora de cada envío, en formato dd/mm/aaaa hh:mm. La macro usa Format(Now, ...) para escribir la marca de tiempo.

Sub EnviarPedidos()
    Dim OutlookApp As Outlook.Application
    Dim Mensaje As Outlook.MailItem
    Dim Fila As Long
    Dim UltimaFila As Long

    UltimaFila = Cells(Rows.Count, "B").End(xlUp).Row
    Set OutlookApp = New Outlook.Application

    For Fila = 2 To UltimaFila
        Set Mensaje = OutlookApp.CreateItem(olMailItem)
        Mensaje.To = Cells(Fila, "B").Value
        Mensaje.Subject = "Pedido " & Cells(Fila, "C").Value
        Mensaje.Body = "Hola " & Cells(Fila, "A").Value & ", te confirmamos tu pedido."
        Mensaje.Send
        Cells(Fila, "D").Value = Format(Now, "dd/mm/yyyy hh:mm")
    Next Fila

    Set Mensaje = Nothing
    Set OutlookApp = Nothing
End Sub
D2fx06/10/2026 09:15
A B C D
1 Cliente Email Pedido Enviado
2 Ana Ruiz ana@ejemplo.com 1024 06/10/2026 09:15
3 Pedro Soto pedro@ejemplo.com 1025 06/10/2026 09:15
4 Lucía Pérez lucia@ejemplo.com 1026 06/10/2026 09:15
5 Miguel Díaz miguel@ejemplo.com 1027 06/10/2026 09:15
6 Sara Gil sara@ejemplo.com 1028 06/10/2026 09:15
Clientes
Comprueba: tras ejecutar la macro, las celdas D2 a D6 muestran la fecha y la hora del envío. La bandeja de entrada de cada cliente tiene un mensaje con el asunto Pedido 1024, Pedido 1025 y así sucesivamente.

Crear citas en el calendario de Outlook desde Excel

La hoja Entregas lleva el cliente, la fecha de entrega, la dirección y el comercial. La idea es que cada fila se convierta en una cita en el calendario de Outlook, con un aviso el día anterior.

A B C D E
1 Cliente Fecha Dirección Comercial Hora
2 Ana Ruiz 15/10/2026 Calle Mayor, 12 Jorge 10:00
3 Pedro Soto 16/10/2026 Av. del Río, 4 Marta 11:30
4 Lucía Pérez 17/10/2026 Plaza Nueva, 1 Jorge 12:00
Entregas

El objeto AppointmentItem y sus campos

AppointmentItem es el objeto de Outlook que representa una cita (no un mensaje). Tiene campos propios: .Start para el inicio, .End para el final, .Subject para el título, .Location para el lugar y .Body para las notas. La macro siguiente crea una cita por cada fila.

Sub CrearCitas()
    Dim OutlookApp As Outlook.Application
    Dim Cita As Outlook.AppointmentItem
    Dim Fila As Long
    Dim UltimaFila As Long
    Dim FechaHora As Date

    UltimaFila = Cells(Rows.Count, "B").End(xlUp).Row
    Set OutlookApp = New Outlook.Application

    For Fila = 2 To UltimaFila
        FechaHora = CDate(Cells(Fila, "B").Value & " " & Cells(Fila, "E").Value)
        Set Cita = OutlookApp.CreateItem(olAppointmentItem)
        Cita.Subject = "Entrega a " & Cells(Fila, "A").Value
        Cita.Location = Cells(Fila, "C").Value
        Cita.Body = "Comercial: " & Cells(Fila, "D").Value
        Cita.Start = FechaHora
        Cita.End = DateAdd("h", 1, FechaHora)
        Cita.ReminderMinutesBeforeStart = 60
        Cita.Save
    Next Fila

    Set Cita = Nothing
    Set OutlookApp = Nothing
End Sub

DateAdd("h", 1, FechaHora) añade una hora al inicio, así cada cita dura una hora por defecto. Cita.Save guarda la cita en el calendario sin enviar invitación a nadie.

Añadir un recordatorio y guardar la cita

La línea Cita.ReminderMinutesBeforeStart = 60 activa un aviso 60 minutos antes de la cita. Si quieres que avise el día antes, usa 1440 (24 horas × 60 minutos). Si no quieres aviso, ponlo a 0 o usa Cita.ReminderSet = False.

Comprueba: al abrir el calendario de Outlook verás tres citas nuevas el 15, 16 y 17 de octubre de 2026, con sus direcciones y un globo de aviso 60 minutos antes de cada una.

Guardar y abrir archivos de Excel directamente desde Outlook

El camino inverso también es útil: tienes un correo con un .xlsx adjunto y quieres abrirlo en Excel, guardarlo o previsualizarlo sin descargar todo el mensaje.

Arrastra el archivo adjunto desde el panel de lectura de Outlook al escritorio para tener una copia local. Si tienes Microsoft 365 y Excel para la web configurado como predeterminado, al hacer doble clic sobre el adjunto se abre en una pestaña del navegador con Excel para la web; los cambios se guardan automáticamente en OneDrive si abriste el archivo desde ahí.

Para previsualizarlo sin abrirlo, en Outlook sitúate sobre el adjunto y verás una vista previa en el panel de lectura. En Outlook de escritorio la ruta para abrir el archivo adjunto es Mensaje > Adjuntos > [nombre del archivo].

MensajeAdjuntosnombre_del_archivo.xlsx
Nota: Excel para la web no ejecuta macros VBA; si el .xlsx tiene macros y lo abres en la web, las verás pero no se ejecutarán. Para ejecutarlas necesitas abrirlo en Excel de escritorio.

Errores típicos al conectar Excel con Outlook

"El nombre no es válido" al usar mailto

Si la celda B2 está vacía o no es un correo bien escrito, el enlace queda algo como mailto:?subject=Pedido y al pulsarlo el sistema dice que el nombre no es válido. Envuelve la fórmula con SI.ERROR (en inglés IFERROR) para que la celda quede en blanco si falta el correo.

=SI.ERROR(HIPERVINCULO("mailto:"&B2&"?subject=Pedido "&C2;"Escribir");"")

Además, puedes usar la herramienta Validación de datos en Datos > Herramientas de datos > Validación de datos para que la columna B solo acepte textos con formato de correo.

La macro se detiene en "Outlook.Application"

Si al ejecutar la macro aparece Error de compilación: No se ha definido el tipo definido por el usuario en la línea de Dim OutlookApp As Outlook.Application, falta la referencia a la biblioteca de Outlook. En el editor de VBA ve a Herramientas > Referencias y marca Microsoft Outlook xx.0 Object Library.

También puede pasar porque Outlook no es la aplicación de correo predeterminada del sistema: comprueba en Windows, Configuración > Aplicaciones > Aplicaciones predeterminadas, que el cliente de correo sea Outlook.

"El programa no se puede iniciar porque le falta mapi32.dll"

Este mensaje aparece cuando Excel y Outlook son de arquitecturas distintas (uno de 32 bits y el otro de 64 bits). Outlook usa el archivo mapi32.dll y, si las versiones no coinciden, el sistema no lo encuentra. La solución es instalar Excel y Outlook de la misma arquitectura: ambos de 32 bits o ambos de 64 bits. Para comprobarlo, abre Outlook y mira en Archivo > Cuenta de Office > Acerca de Outlook la versión, y en Excel en Archivo > Cuenta > Acerca de Excel.

Outlook pide confirmación cada vez que una macro envía correo

Por seguridad, Outlook muestra un aviso cada vez que un programa externo intenta enviar correo en tu nombre. Para reducirlo, abre Outlook, ve a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Acceso mediante programación y marca No avisarme nunca... para programas conocidos. Si trabajas en un equipo compartido, deja el aviso activado.

Cuidado: desactivar este aviso hace que cualquier macro pueda enviar correo sin que te enteres. Hazlo solo en tu equipo personal y con archivos de confianza.

Lo que ya sabes hacer con Excel y Outlook y el siguiente paso

  • Crear enlaces mailto con HIPERVINCULO para abrir Outlook con destinatario, asunto y cuerpo listos.
  • Escribir una macro en VBA que recorra una hoja y envíe un correo por cada fila con Outlook.Application y MailItem.
  • Anotar la fecha y hora del envío en una columna de la propia hoja con Format(Now, ...), útil como registro.
  • Crear citas en el calendario con AppointmentItem, incluyendo fecha, duración, lugar y recordatorio.
  • Abrir y previsualizar archivos .xlsx adjuntos desde Outlook, tanto en escritorio como en la web.

El siguiente paso natural es Power Automate (Microsoft Power Automate Desktop en escritorio y Power Automate en la nube): permite los mismos envíos sin abrir Excel, automatizando desde un calendario, un formulario o un correo entrante.

Datos comprobados en octubre de 2026.

Dudas al conectar Excel con Outlook

1. ¿Cómo puedo descargar Excel gratis?

Microsoft Excel de escritorio se paga con una licencia de Microsoft 365 o la versión perpetua, pero puedes usar Excel para la web (free, con cuenta Microsoft) y la app de Excel para móvil sin coste. La descarga de escritorio solo es legal desde microsoft.com o la tienda oficial de tu sistema.

2. ¿Existe una versión gratuita de Microsoft Excel para usar en el navegador?

Sí, entrando en excel.cloud.microsoft con tu cuenta de Microsoft accedes a Excel para la web, que abre y edita archivos .xlsx y permite vincularlos a Outlook. No ejecuta macros VBA y trae menos opciones que la versión de escritorio, pero sirve para enviar correos con macros si guardas el libro en la nube.

3. ¿Puedo usar Excel y Outlook juntos en la nube sin instalar nada?

Sí: con tu cuenta de Microsoft puedes abrir Excel para la web, redactar y editar la macro de envío de Outlook, y ejecutarla para mandar el correo. La macro usa Outlook de escritorio o la configuración de cuenta del equipo, así que el envío real puede requerir abrir Outlook en el mismo equipo.

4. ¿Cómo descargo Excel para empezar a usarlo?

Entra en microsoft.com/excel o en la Microsoft Store y elige Microsoft 365 para usar Excel, Word, Outlook y el resto de aplicaciones con una sola suscripción. También puedes comprar Excel 2024 como compra única o instalar la app móvil de forma gratuita en iOS y Android.

5. ¿Qué hay de nuevo en la última versión de Excel?

La versión más reciente, dentro de Microsoft 365, incorpora funciones dinámicas como BUSCARX, matrices dinámicas y funciones LAMBDA para crear fórmulas reutilizables. También integra Python en Excel (solo en el canal Beta o con licencia específica) y mejoras de rendimiento en Power Query y tablas dinámicas.

6. ¿Excel tiene coste o se puede usar gratis?

Excel de escritorio requiere una licencia de pago, ya sea Microsoft 365 (suscripción mensual o anual) o Excel 2024 (compra única). Para uso sin pagar puedes usar Excel para la web desde el navegador o la app de Excel en móvil y tablet, ambas gratuitas con cuenta de Microsoft.

7. ¿Cómo accedo a Excel desde el navegador con mi cuenta de Microsoft?

Entra en excel.cloud.microsoft e inicia sesión con tu cuenta Microsoft (la misma de Outlook). Desde ahí puedes crear y editar libros, guardarlos en OneDrive y compartirlos, y luego vincularlos a Outlook para enviar el archivo por correo con un solo clic.

Fuentes

  1. MicrosoftWhat's New in Excel (March 2026) – Microsoft Community Hubconsultado el 05/10/2026
  2. MicrosoftMay 2026 updates for Microsoft Officeconsultado el 05/10/2026