¿Cómo guardar una hoja de cálculo como archivo PDF y enviarla como adjunto a través de Outlook?
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.
Notas y Consejos Prácticos:
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.
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)
Artículos relacionados:
- ¿Cómo guardar un nombre de archivo de Excel con marca de tiempo?
- ¿Cómo usar la función Guardar como para sobrescribir automáticamente un archivo existente en Excel?
- ¿Cómo guardar, exportar múltiples/todas las hojas a archivos CSV o de texto separados en Excel?
- ¿Cómo deshabilitar o no permitir las opciones Guardar y Guardar como en Excel?
- ¿Cómo deshabilitar el guardado del libro pero solo permitir Guardar como en Excel?
Las mejores herramientas de productividad para Office
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!