Skip to main content

¿Cómo guardar una hoja de cálculo como archivo PDF y enviarla como adjunto a través de Outlook?

Author: Siluvia Last Modified: 2025-08-06

En el trabajo diario, es posible que con frecuencia te encuentres en situaciones donde necesitas compartir una hoja de cálculo específica con colegas o clientes, pero quieres asegurarte de que el formato del archivo sea fijo y seguro. Enviar una hoja de cálculo como un archivo PDF a través de Outlook es un requisito común, especialmente para documentar informes, enviar facturas o compartir datos finalizados que no deben ser modificados fácilmente. Tradicionalmente, esto implica guardar manualmente la hoja de cálculo como un PDF, abrir Outlook, redactar un correo electrónico, adjuntar el PDF y enviarlo, lo cual es tedioso y consume mucho tiempo, especialmente si se repite con frecuencia o al manejar varias hojas.

Este artículo te guiará paso a paso sobre cómo automatizar el proceso de convertir una hoja de cálculo a PDF y adjuntarla inmediatamente a un correo electrónico de Outlook directamente desde Excel, ayudándote a ahorrar tiempo significativo y evitar trabajo manual repetitivo. Encontrarás una solución mediante código VBA, junto con detalles sobre su funcionamiento, ventajas, escenarios de aplicación y consejos prácticos.

Guardar una hoja de cálculo como archivo PDF y enviarla como adjunto con código VBA


Guardar una hoja de cálculo como archivo PDF y enviarla como adjunto con código VBA

Para acelerar el proceso de exportar una hoja de Excel como archivo PDF y enviarla por correo electrónico a través de Outlook, puedes usar el siguiente código VBA. Este enfoque es especialmente útil si regularmente necesitas enviar informes personalizados, facturas u otros instantáneas de datos directamente desde Excel, ya que automatiza completamente los pasos de guardado y envío de correos.

Antes de aplicar este método, asegúrate de que Microsoft Outlook esté instalado y configurado como tu cliente de correo predeterminado. El código funciona mejor cuando las macros están habilitadas en tu entorno de Excel.

1. Abre la hoja de cálculo que deseas guardar y enviar como PDF. Presiona Alt + F11 al mismo tiempo para lanzar el editor de Microsoft Visual Basic para Aplicaciones (VBA).

2. En la ventana de VBA, ve al menú y haz clic en Insertar > Módulo. Esto creará un nuevo módulo de código. Luego, copia y pega el siguiente código VBA en la ventana de Código del módulo.  

Código VBA: Guardar una hoja de cálculo como archivo PDF y enviarla como adjunto

Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range

Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDlg.Show = True Then
   xFolder = xFileDlg.SelectedItems(1)
Else
   MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
   Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"

'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
    xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
                      vbYesNo + vbQuestion, "File Exists")
    On Error Resume Next
    If xYesorNo = vbYes Then
        Kill xFolder
    Else
        MsgBox "if you don't overwrite the existing PDF, I can't continue." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
        Exit Sub
    End If
    If Err.Number <> 0 Then
        MsgBox "Unable to delete existing file.  Please make sure the file is not open or write protected." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
        Exit Sub
    End If
End If

Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
    'Save as PDF file 
    xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
    
    'Create Outlook email 
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmailObj = xOutlookObj.CreateItem(0)
    With xEmailObj
        .Display
        .To = ""
        .CC = ""
        .Subject = xSht.Name + ".pdf"
        .Attachments.Add xFolder
        If DisplayEmail = False Then
            '.Send
        End If
    End With
Else
  MsgBox "The active worksheet cannot be blank"
  Exit Sub
End If
End Sub

3. Después de pegar el código, presiona F5 o haz clic en Ejecutar en el editor de VBA para ejecutar la macro. Aparecerá un cuadro de diálogo de selección de carpeta. Elige la carpeta de destino donde se debe guardar el archivo PDF, luego haz clic en Aceptar para continuar.

run vba code to select a folder to save this PDF file

Notas y Consejos Prácticos:

1. La macro crea un archivo PDF con el mismo nombre que la hoja de cálculo, almacenado en la carpeta seleccionada.
2. Si intentas ejecutar el código cuando la hoja de cálculo activa está vacía, verás un cuadro de advertencia como en la captura de pantalla a continuación. Esto evita guardar y enviar accidentalmente un PDF en blanco. Para evitar esto, asegúrate de que haya contenido en la hoja antes de ejecutar la macro.

If the active worksheet is blank,a warning prompt box is popped out

4. Una vez que el proceso se complete, se generará una nueva ventana de correo de Outlook, con el archivo PDF adjunto. La línea de asunto se completa previamente con el nombre de la hoja de cálculo terminando en ".pdf"; puedes editar el contenido del correo, agregar destinatarios y luego enviar según sea necesario. Esto reduce errores y aumenta la eficiencia en comparación con el proceso manual.

a new Outlook email is created with the PDF file as an attachment

Nota: La macro solo funciona si Microsoft Outlook está instalado y configurado como tu cliente de correo predeterminado. Si usas cualquier otro programa de correo, esta solución puede no aplicarse.

Este enfoque basado en VBA es más eficiente cuando regularmente necesitas distribuir hojas de cálculo finalizadas como archivos adjuntos PDF y minimiza los pasos manuales repetitivos. Sus limitaciones incluyen la dependencia de Outlook, la incapacidad de procesar múltiples hojas a la vez y la necesidad de habilitar macros. Para flujos de trabajo más complejos, como enviar múltiples hojas de una sola vez o automatización adicional, considera usar complementos de Excel o funciones integradas.

Solución alternativa: Si las macros VBA no son adecuadas para tu entorno, como cuando las macros están restringidas, puedes usar manualmente la función Exportar o Guardar como de Excel para guardar tu hoja de cálculo como PDF, luego adjuntarla y enviarla en Outlook. Este método, aunque requiere más pasos, está disponible universalmente sin permisos especiales ni conocimientos de scripting.


Guardar fácilmente una hoja de cálculo o varias hojas de cálculo como archivos PDF separados a la vez:

La utilidad Separar Libro de Trabajo de Kutools para Excel puede ayudarte a guardar fácilmente una hoja de cálculo o varias hojas de cálculo como archivos PDF separados a la vez, como se muestra en la siguiente demostración. ¡Descarga y pruébalo ahora! (30-día de prueba gratuita)

save multiple worksheets as separate PDF files by kutools


Artículos relacionados:

Las mejores herramientas de productividad para Office

🤖 Asistente de IA de Kutools: Revoluciona el análisis de datos basado en: Ejecución inteligente |Generar código |Crear fórmulas personalizadas |Analizar datos y generar gráficos |Invocar funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda con múltiples criterios | Búsqueda de múltiples valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente listas desplegables | Lista desplegable dependiente | Lista desplegable con selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Cambiar la visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de libros y hojas de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Encriptar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtro negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y mucho más
Utiliza Kutools en tu idioma preferido: ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...


Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
  • ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!