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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Cliente | 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) |
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.
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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Cliente | 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 |
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.
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
- Clic en
Archivo > Opciones > Personalizar cinta de opciones. - En la columna derecha, marca la casilla
Programador. - Pulsa
Aceptar. - Clic en la nueva pestaña
Programador > Código > Visual Basic. - En el editor, clic en
Insertar > Mó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.
.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
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Cliente | 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 |
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 |
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.
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].
.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.
Lo que ya sabes hacer con Excel y Outlook y el siguiente paso
- Crear enlaces
mailtoconHIPERVINCULOpara 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.ApplicationyMailItem. - 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
.xlsxadjuntos 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
- MicrosoftWhat's New in Excel (March 2026) – Microsoft Community Hubconsultado el 05/10/2026
- MicrosoftMay 2026 updates for Microsoft Officeconsultado el 05/10/2026