Skip to main content

¿Cómo imprimir automáticamente los adjuntos cuando llegan correos electrónicos en Outlook?

Author: Siluvia Last Modified: 2025-08-06

Este tutorial demuestra un método para combinar un script VBA y una regla de Outlook para ayudarte a imprimir automáticamente los adjuntos de ciertos correos electrónicos cuando lleguen a Outlook.


Imprimir automáticamente adjuntos cuando lleguen ciertos correos electrónicos

Supongamos que quieres imprimir automáticamente los adjuntos de los correos electrónicos entrantes de un remitente específico. Puedes hacer lo siguiente para lograrlo.

Paso 1: Crear un script en Outlook

Primero, necesitas crear un script VBA en Outlook.

1. Abre tu Outlook, presiona simultáneamente las teclas Alt + F11 para abrir la ventana Microsoft Visual Basic for Applications.

2. En la ventana Microsoft Visual Basic for Applications, haz doble clic en Project1 > Microsoft Outlook Objects > ThisOutlookSession para abrir la ventana ThisOutlookSession (Código), y luego copia el siguiente código en esta ventana de código.

steps of auto printing attachments when emails arrive in Outlook

Código VBA 1: Imprimir automáticamente adjuntos (todos los tipos de adjuntos) cuando lleguen correos electrónicos

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xTempFolder & "\" & xAtt.FileName
      xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Nota: Este código admite la impresión de todos los tipos de adjuntos recibidos en correos electrónicos. Si deseas imprimir solo un tipo específico de adjunto, como archivos pdf, aplica el siguiente código VBA.

Código VBA 2: Imprimir automáticamente el tipo especificado de adjuntos cuando lleguen correos electrónicos

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileType As String, xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xAtt.FileName
      xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
      xFileName = xTempFolder & "\" & xFileName
      Select Case xFileType
        Case "pdf"   'change "pdf" to the file extension you want to print
          xAtt.SaveAsFile (xFileName)
          Set xFolderItem = xFolder.ParseName(xFileName)
          xFolderItem.InvokeVerbEx ("print")
      End Select
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
  Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Notas:

1. Antes de aplicar este código VBA para imprimir solo el archivo pdf en los correos electrónicos entrantes, primero debes descargar e instalar Adobe Acrobat Reader y configurarlo como el lector de pdf predeterminado en tu computadora.
2. En la línea Case "pdf", cambia "pdf" a la extensión de archivo que deseas imprimir.

3. Ve a Herramientas > Referencias. En el cuadro de diálogo Referencias – Project1 que aparece, marca la casilla Microsoft Scripting Runtime y luego haz clic en el botón Aceptar.

steps of auto printing attachments when emails arrive in Outlook

4. Guarda el código y presiona las teclas Alt + Q para cerrar la ventana Microsoft Visual Basic for Applications.

Nota: Asegúrate de que la opción Habilitar todas las macros esté activada en tu Outlook. Puedes verificar esta opción siguiendo los pasos que se muestran a continuación.

steps of auto printing attachments when emails arrive in Outlook
Paso 2: Construir una regla para usar el script

Después de agregar el script VBA en Outlook, necesitas crear una regla para usar el script basado en ciertas condiciones.

1. Ve a la pestaña Inicio, haz clic en Reglas > Administrar reglas y alertas.

steps of auto printing attachments when emails arrive in Outlook

2. En el cuadro de diálogo Reglas y alertas, haz clic en el botón Nueva regla para crear una regla.

Consejos: Si has agregado varias cuentas de correo electrónico a tu Outlook, especifica una cuenta en la lista desplegable Aplicar cambios a esta carpeta donde quieras aplicar la regla. De lo contrario, se aplicará a la bandeja de entrada de la cuenta de correo electrónico seleccionada actualmente.

steps of auto printing attachments when emails arrive in Outlook

3. En el primer cuadro de diálogo Asistente de reglas, selecciona Aplicar regla a los mensajes que recibo en el cuadro Paso 1, y luego haz clic en Siguiente.

steps of auto printing attachments when emails arrive in Outlook

4. En el segundo cuadro de diálogo Asistente de reglas, necesitas:

4.1) Especificar una o más condiciones en el cuadro Paso 1 según tus necesidades;
En este caso, quiero imprimir solo los adjuntos en los correos electrónicos entrantes de un remitente especificado. Aquí, marco la casilla de personas o grupo público.
4.2) Haz clic en el valor subrayado en el cuadro Paso 2 para editar la condición;
4.3) Haz clic en Siguiente. Ver captura de pantalla:
steps of auto printing attachments when emails arrive in Outlook

5. En el tercer cuadro de diálogo Asistente de reglas, necesitas configurar lo siguiente.

5.1) En la sección Paso 1: Seleccionar acción(es), marca la casilla ejecutar un script;
5.2) En la sección Paso 2, haz clic en el texto subrayado “un script”;
5.3) En el cuadro de diálogo Seleccionar script que se abre, haz clic en el nombre del código VBA que agregaste anteriormente, y luego haz clic en Aceptar;
5.4) Haz clic en el botón Siguiente. Ver captura de pantalla:
steps of auto printing attachments when emails arrive in Outlook

Consejos: Si la opción ejecutar un script no aparece en tu Asistente de reglas, puedes mostrarla siguiendo el método mencionado en este artículo: restaurar la opción Ejecutar un script faltante en la regla de Outlook.

6. Luego aparecerá otro Asistente de reglas preguntando por excepciones. Puedes seleccionar las excepciones si es necesario, de lo contrario, haz clic en el botón Siguiente sin realizar ninguna selección.

steps of auto printing attachments when emails arrive in Outlook

7. En el último Asistente de reglas, necesitas especificar un nombre para la regla, y luego hacer clic en el botón Finalizar.

steps of auto printing attachments when emails arrive in Outlook

8. Luego volverás al cuadro de diálogo Reglas y alertas, podrás ver la regla que creaste listada dentro, haz clic en el botón Aceptar para finalizar toda la configuración.

steps of auto printing attachments when emails arrive in Outlook

A partir de ahora, cuando se reciba un correo electrónico de la persona especificada, los archivos adjuntos se imprimirán automáticamente.


Artículos relacionados

Solo imprimir adjuntos de un correo electrónico o correos electrónicos seleccionados en Outlook
En Outlook, puedes imprimir los correos electrónicos, pero ¿has impreso solo los adjuntos de un correo electrónico o correos electrónicos seleccionados en Outlook? Este artículo introduce algunos trucos para resolver esta tarea.

Solo imprimir el encabezado del mensaje de un correo electrónico en Outlook
Al imprimir un correo electrónico en Outlook, se imprimirá tanto el encabezado del mensaje como el cuerpo del mensaje en el correo electrónico. Sin embargo, en algunos casos especiales, es posible que solo necesites imprimir el encabezado del mensaje con el asunto, el remitente, los destinatarios, etc. Este artículo presentará dos soluciones para hacerlo.

Imprimir un calendario en un rango de fechas especificado/personalizado en Outlook
Normalmente, al imprimir un calendario en la vista de Mes en Outlook, se seleccionará automáticamente el mes que contiene la fecha seleccionada actualmente. Pero, puede que necesites imprimir el calendario dentro de un rango de fechas personalizado, como 3 meses, medio año, etc. Este artículo presentará la solución para ti.

Imprimir un contacto con foto en Outlook
Normalmente, la foto de un contacto no se imprimirá al imprimir el contacto en Outlook. Pero a veces, será más impresionante imprimir un contacto con su foto. Este artículo presentará algunas soluciones alternativas para lograrlo.

Imprimir una selección de un correo electrónico en Outlook
Si recibiste un mensaje de correo electrónico y descubriste que hay una selección del contenido del correo electrónico que necesita ser impresa en lugar de imprimir todo el mensaje, ¿qué harías? En realidad, Outlook puede ayudarte a realizar esta operación con la ayuda de navegadores de internet, como Firefox y Internet Explorer. Aquí tomaré los navegadores de Internet como ejemplo. Por favor, mira los siguientes tutoriales.

Más artículos sobre "imprimir en Outlook"...


Las mejores herramientas de productividad para Office

Últimas noticias: ¡Kutools para Outlook lanza una versión gratuita!

¡Descubre el nuevo Kutools para Outlook con más de100 funciones increíbles! ¡Haz clic para descargarlo ahora!

🤖 Kutools AI : Utiliza tecnología avanzada de IA para gestionar correos electrónicos sin esfuerzo, como responder, resumir, optimizar, ampliar, traducir y redactar mensajes.

📧 Automatización de Email: Respuesta automática (disponible para POP e IMAP) / Programar envío de correos electrónicos / CC/BCC automático por regla al enviar correo / Reenvío automático (Regla avanzada) / Agregar saludo automáticamente / Dividir automáticamente correos con varios destinatarios en mensajes individuales ...

📨 Gestión de Email: Recuperar correos electrónicos / Bloquear correos sospechosos por asunto y otros criterios / Eliminar correos electrónicos duplicados / Búsqueda Avanzada / Organizar carpetas ...

📁 Adjuntos Pro: Guardar en lote / Desanexar en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto Comprimir ...

🌟 Magia de la Interfaz: 😊Más emojis atractivos y geniales / Recibe avisos cuando lleguen emails importantes / Minimiza Outlook en vez de cerrarlo ...

👍 Funciones de un solo clic: Responder a Todos con Adjuntos / Correos electrónicos Anti-Phishing / 🕘Mostrar la zona horaria del remitente ...

👩🏼‍🤝‍👩🏻 Contactos y Calendario: Agregar en lote contactos de correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños ...

Utiliza Kutools en tu idioma preferido; ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Desbloquea Kutools para Outlook al instante con un solo clic. ¡No esperes más, descárgalo ahora y aumenta tu productividad!

kutools for outlook features1 kutools for outlook features2