¿Cómo enviar un rango de celdas de Excel por correo electrónico mediante Outlook?
En el trabajo diario con Excel, es habitual finalizar un informe y necesitar compartir únicamente una parte de los datos con un destinatario específico. Por ejemplo, puede desear enviar información relevante de un rango seleccionado de celdas en lugar de todo el libro, garantizando así privacidad y pertinencia. Naturalmente, la mayoría de los usuarios prefieren soluciones que no impliquen cambiar manualmente a Outlook ni copiar y pegar contenido. ¿Existen formas prácticas y eficientes de enviar por correo electrónico un rango específico de celdas directamente desde Excel?
Este tutorial explora diversos métodos para enviar celdas seleccionadas por correo electrónico mediante Outlook —incluidas soluciones con VBA y funciones integradas de Excel— con el fin de agilizar su flujo de trabajo y reducir el esfuerzo manual. Descubrirá enfoques para enviar el rango como archivo adjunto, incrustar celdas directamente en el cuerpo del mensaje, guardar rangos de celdas como imágenes o PDF antes del envío, y aprovechar las funciones de correo heredadas de Excel. Además, la guía incluye pasos clave de configuración, análisis de escenarios, consejos para solucionar problemas y recomendaciones prácticas para lograr los mejores resultados.
Enviar rango de celdas como archivo adjunto desde Excel con código VBA
Enviar rango de celdas como cuerpo del mensaje desde Excel con código VBA
Enviar rango de celdas como archivo adjunto desde Excel con código VBA
Si desea compartir un conjunto específico de datos sin otorgar acceso a todo el libro, puede extraer un rango de celdas designado y enviarlo como archivo adjunto —por ejemplo, en formato .xlsx o .xls— mediante Outlook. Esta solución resulta especialmente útil cuando el destinatario solo necesita revisar una parte del informe o cuando la confidencialidad es fundamental. A continuación se detallan los pasos para configurar y utilizar el código VBA que automatiza este proceso:
1. Abra su libro de Excel objetivo. Pulse ALT + F11 para abrir la ventana Microsoft Visual Basic para Aplicaciones, donde podrá insertar y editar código VBA.
2. Haga clic en Insertar > Módulo, lo que creará un nuevo módulo para su código. Pegue el siguiente script en la ventana del módulo.
Código VBA: enviar rango de celdas como archivo adjunto desde Excel
Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "skyyang@extendoffice.com"
.CC = ""
.BCC = ""
.Subject = "information of kte"
.Body = "hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub Consejos y personalizaciones:
- .To
- .CCy .BCCse pueden configurar para copia carbón o copia carbón oculta según sea necesario.
- .Subjecty .Bodyle permiten personalizar el mensaje del correo electrónico.
3. Pulse F5 para ejecutar el código. Aparecerá un cuadro de diálogo en el que podrá seleccionar el rango que desea enviar por correo (le recomendamos confirmar los datos antes del envío). Vea la captura de pantalla de ejemplo:

4. Tras hacer clic en Aceptar, es posible que aparezca un aviso de progreso o una notificación de permisos. Una vez finalizado, haga clic en Permitir. El rango de celdas seleccionado se enviará a su destinatario como archivo adjunto de Excel.

Precauciones y solución de problemas:
- Si Outlook no está configurado como el programa de correo predeterminado o no se está ejecutando, es posible que el código no funcione correctamente.
- Asegúrese de que la configuración de seguridad de macros permita la ejecución de scripts de VBA. Es posible que necesite habilitar las macros o ajustar la configuración del Centro de confianza.
- El tipo de adjunto depende del tipo de archivo de origen y de la línea especificada en el código VBA.
- Tras enviarlo, revise su carpeta Elementos enviados de Outlook para confirmar que se ha entregado.
Este enfoque es ideal para compartir datos de forma segura, archivar registros y situaciones en las que se requiere el formato original de Excel. No obstante, los destinatarios necesitarán el software adecuado para abrir los archivos adjuntos.
Enviar rango de celdas como cuerpo del mensaje desde Excel con código VBA
En escenarios en los que desea que los destinatarios vean la información al instante sin tener que descargar archivos adjuntos —como resúmenes periódicos de informes o actualizaciones de progreso— puede incrustar directamente el rango de celdas seleccionado en el cuerpo del correo electrónico. Esto no solo mejora la accesibilidad, sino que también facilita la lectura y acelera el procesamiento de la información por parte de los destinatarios.
1. Cambie a la hoja de cálculo que contiene sus datos. Pulse ALT + F11 para acceder a la ventana Microsoft Visual Basic para Aplicaciones.
2. Haga clic en Insertar > Módulo para abrir una ventana de módulo y, a continuación, pegue el siguiente código:
Código VBA: enviar rango de celdas como cuerpo del mensaje desde Excel
Sub EmailRange()
'Update by Extendoffice
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Please read this email."
.Item.To = "skyyang@extendoffice.com"
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub Notas sobre parámetros y ajustes prácticos:
- .Introductionle permite incluir un mensaje antes del propio rango.
- .Item.Todebe actualizarse con su Dirección de correo electrónico deseada.
- .Item.Subjectse puede modificar para adaptarse al enfoque de su informe o correo electrónico.
3. Ejecute la macro pulsando F5. Cuando se le solicite, seleccione el rango de celdas que desea enviar.

4. Confirme su selección y haga clic en Aceptar. Observe cualquier aviso de seguridad. Una vez procesado, haga clic en Permitir para autorizar la macro. El rango seleccionado aparecerá directamente en el cuerpo del correo de Outlook, formateado como una tabla.

Recordatorios clave:
- Esta solución requiere que Outlook esté instalado y configurado como cliente de correo predeterminado.
- Habilite las macros en Excel para que el código VBA se ejecute correctamente. Si aparecen errores, revise la configuración de macros en el Centro de confianza.
- El formato se conserva; sin embargo, los formatos de celda complejos pueden mostrarse de forma distinta en el correo electrónico que en Excel.
- Visite la Bandeja de salida o la carpeta Enviados de Outlook para confirmar que el mensaje se ha enviado correctamente.
Este enfoque es ideal para actualizaciones del estado del equipo, el intercambio rápido de datos o la distribución de cifras clave a colegas o clientes que valoran una legibilidad inmediata.
Otros métodos integrados de Excel: use la función integrada «Enviar al destinatario de correo» para enviar las celdas seleccionadas como cuerpo del mensaje
Algunas versiones antiguas de Excel (anteriores a Office 365) incluían un botón integrado llamado «Enviar al destinatario de correo», que permitía enviar rápidamente las celdas seleccionadas directamente en el cuerpo del mensaje de correo electrónico, sin necesidad de recurrir a VBA. Aunque esta función está oculta de forma predeterminada en las versiones modernas de Excel, sigue disponible si se agrega manualmente a la Barra de herramientas de acceso rápido. Esta solución resulta ideal para usuarios con instalaciones heredadas de Excel o para quienes prefieren evitar el uso de macros.
Cómo habilitarla y utilizarla:
- Haga clic con el botón derecho en la Barra de herramientas de acceso rápido (situada encima de su Cinta de opciones) y seleccione Personalizar la Barra de herramientas de acceso rápido.
- En la lista de comandos, cambie «Elegir comandos de:» a Todos los comandos.
- Desplácese hacia abajo y añada Enviar al destinatario de correo a su Barra de herramientas de acceso rápido.
- Tras la configuración, seleccione las celdas que desea enviar. Haga clic en el icono Enviar al destinatario de correo: Excel abrirá una ventana de correo integrada con la selección como cuerpo del mensaje. Añada las direcciones, el asunto y envíelo directamente.
Notas importantes:
- Este método requiere que Outlook esté configurado como cliente de correo electrónico predeterminado.
- Trabajar con la ventana de correo integrada puede diferir de redactar un correo habitual en Outlook; revise cuidadosamente el formato.
- Esta función podría estar deshabilitada o no estar disponible en ciertas versiones de Excel, especialmente en compilaciones recientes de Office 365. En esos casos, considere soluciones alternativas mediante VBA o la exportación a PDF o imagen.
Ventajas e inconvenientes:
- Rápido y sencillo en versiones compatibles: no requiere código ni configuración avanzada.
- No disponible en todas las versiones; los usuarios de las versiones más recientes de Excel pueden necesitar métodos alternativos.
Artículos relacionados:
¿Cómo enviar únicamente una hoja de cálculo desde Excel mediante Outlook?
¿Cómo enviar el libro de trabajo actual por Outlook desde Excel?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos