KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Oferta de marzo: 20 % de descuento

¿Cómo imprimir automáticamente los archivos adjuntos al recibir correos en Outlook?

AutorSiluvia Fecha de modificación

Este tutorial presenta un método para combinar un script de VBA con una regla de Outlook que le permitirá imprimir automáticamente los archivos adjuntos de determinados correos electrónicos en cuanto los reciba.


Imprimir automáticamente los archivos adjuntos al recibir ciertos correos

Supongamos que desea imprimir automáticamente los archivos adjuntos de los correos entrantes procedentes de un remitente específico. Siga los pasos que se indican a continuación para lograrlo.

Paso 1: Crear un script en Outlook

En primer lugar, debe crear un script de VBA en Outlook.

1. Inicie Outlook y pulse simultáneamente las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. En la ventana de Microsoft Visual Basic para Aplicaciones, haga doble clic en Project1 > Objetos de Microsoft Outlook > ThisOutlookSession para abrir la ventana de ThisOutlookSession (Código) y, a continuación, copie el siguiente código en dicha ventana.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

Código VBA 1: Imprimir automáticamente los archivos adjuntos (de cualquier tipo) al recibir correos

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 permite imprimir cualquier tipo de archivo adjunto recibido en los correos. Si desea imprimir únicamente un tipo específico de archivo adjunto, como archivos PDF, aplique el siguiente código VBA.

Código VBA 2: Imprimir automáticamente un tipo específico de archivos adjuntos al recibir correos

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 únicamente los Archivos PDF en los correos entrantes, primero debe descargar e instalar Adobe Acrobat Readery configurarlo como lector predeterminado de PDF en su equipo.
2. En la línea Case «pdf», cambie «pdf»por la extensión del archivo que desee imprimir.

3. Haga clic en Herramientas > Referencias. En el cuadro de diálogo emergente Referencias – Project1, active la casilla Microsoft Scripting Runtime y, a continuación, haga clic en el botón Aceptar.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

4. Guarde el código y pulse las teclas Alt + Q para cerrar la ventana de Microsoft Visual Basic para Aplicaciones.

Nota: Asegúrese de que la opción Habilitar todas las macros esté activada en su Outlook. Puede comprobar esta opción siguiendo los pasos que se muestran a continuación.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook
Paso 2: Crear una regla para usar el script

Después de añadir el script VBA en Outlook, deberá crear una regla que lo utilice según ciertas condiciones.

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

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

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

Consejos: Si ha añadido varias cuentas de correo a su Outlook, especifique una cuenta en la lista desplegable Aplicar cambios a esta carpeta donde desee aplicar la regla. De lo contrario, se aplicará a la bandeja de entrada de la cuenta actualmente especificada.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

3. En el primer cuadro de diálogo Asistente de reglas, seleccione Aplicar regla a los mensajes que reciba en el recuadro Paso 1 y, a continuación, haga clic en Siguiente.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

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

4,1) Especifique una o varias condiciones en el recuadro Paso 1según sus necesidades;
En este caso, deseo imprimir únicamente los archivos adjuntos de los correos entrantes procedentes de un remitente específico. Por ello, marco la casilla de personas o grupo público.
4,2) Haga clic en el valor subrayado del recuadro Paso 2para editar la condición;
4,3) Haga clic en Siguiente. Vea la captura de pantalla:
pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

5. En el tercer cuadro de diálogo Asistente de reglas, debe configurarlo de la siguiente manera.

5,1) En la sección Paso 1: Seleccione acción(es), marque la casilla de ejecutar un script:
5,2) En la sección Paso 2, haga clic en el texto subrayado «un script»;
5,3) En el cuadro de diálogo Seleccionar scriptque se abre, haga clic en el nombre del código VBA que añadió anteriormente y, a continuación, haga clic en Aceptar;
5,4) Haga clic en el botón Siguiente. Vea la captura de pantalla:
pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

Consejos: Si la opción «ejecutar un script» no aparece en su Asistente de reglas, puede hacerla visible siguiendo el método descrito en este artículo: restaurar la opción Ejecutar un script ausente en la regla de Outlook.

6. A continuación, aparecerá otro cuadro de diálogo Asistente de reglas solicitando excepciones. Puede seleccionar excepciones si es necesario; de lo contrario, haga clic en el botón Siguiente sin realizar ninguna selección.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

7. En el último cuadro de diálogo Asistente de reglas, debes asignar un nombre a la regla y, a continuación, hacer clic en el botón Finalizar.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

8. A continuación, volverá al cuadro de diálogo Reglas y alertas, donde verá la regla que ha creado. Haga clic en el botón Aceptar para finalizar toda la configuración.

pasos para imprimir automáticamente los archivos adjuntos al recibir correos electrónicos en Outlook

A partir de ahora, al recibir un correo del remitente especificado, el adjunto se imprimirá automáticamente.


Artículos relacionados

Imprime únicamente los archivos adjuntos de un correo electrónico o de varios seleccionados en Outlook
En Outlook puedes imprimir correos electrónicos, pero ¿has impreso alguna vez solo los archivos adjuntos de un mensaje o de varios seleccionados? Este artículo te muestra algunos trucos para lograrlo.

Imprimir únicamente la cabecera de un mensaje en Outlook
Al imprimir un correo en Outlook, se imprime tanto la cabecera del mensaje como su cuerpo. Sin embargo, en ciertos casos especiales, es posible que solo necesite imprimir la cabecera del mensaje, con el asunto, el remitente, los destinatarios, etc. Este artículo le presenta dos soluciones para lograrlo.

Imprimir un calendario en un rango de fechas especificado o personalizado en Outlook
Normalmente, al imprimir un calendario en vista mensual en Outlook, se selecciona automáticamente el mes que contiene la fecha actual. Sin embargo, es posible que necesite imprimir el calendario para un rango de fechas personalizado, como tres meses, medio año, etc. Este artículo le ofrece la solución adecuada.

Imprimir un contacto con su foto en Outlook
Por lo general, la foto de un contacto no se imprime al imprimirlo en Outlook. Sin embargo, en ocasiones resulta mucho más impactante incluir su imagen. En este artículo te ofrecemos algunas soluciones alternativas para lograrlo.

Imprimir una selección de un correo electrónico en Outlook
¿Ha recibido un mensaje de correo y solo necesita imprimir una parte del contenido, en lugar de todo el mensaje? En realidad, Outlook le permite hacerlo con la ayuda de navegadores web como Firefox o Internet Explorer. A continuación, utilizaremos estos navegadores como ejemplo. Consulte los siguientes tutoriales.

Más artículos sobre «imprimir en Outlook»...


Las mejores herramientas de productividad para Office

¡Descubra el nuevo Kutools para Outlook con 100+ funciones increíbles!¡Haga clic para descargar ahora!

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

📧Automatización de correo electrónico: Respuesta automática (disponible para POP e IMAP) / Programar el envío de correos electrónicos / CC/BCC automático según reglas al enviar correos / Reenvío automático (regla avanzada) / Añadir saludo automáticamente / Dividir automáticamente los correos con múltiples destinatarios en mensajes individuales...

📨Gestión de correo electrónico: Recupera tus correos electrónicos / Bloquea correos fraudulentos por asunto y otros criterios / Elimina correos electrónicos duplicados / Búsqueda avanzada / Organiza tus carpetas

📁Archivos adjuntos Pro: Guardar en lote / Desvincular en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto comprimir...

🌟Magia de la interfaz: 😊Más emojis bonitos y modernos / Le avisa cuando llegan correos importantes / Minimiza Outlook en lugar de cerrarlo

👍Maravillas con un solo clic: Responder a Todos con Adjuntos / Correos electrónicos antiphishing / 🕘 Mostrar zona horaria: hora actual del remitente...

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

Utilice Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y más de 40 idiomas adicionales.

Desbloquee Kutools para Outlook al instante con un solo clic. ¡No espere más: descárguelo ahora y potencie su eficiencia!

kutools for outlook features1kutools for outlook features2

🚀 Descarga con un solo clic — Obtenga todos los complementos de Office

Muy recomendado: Kutools for Office (5 en 1)

Un solo clic para descargar cinco instaladoresa la vez —Kutools para Excel, Outlook, Word, PowerPointy Office Tab Pro.¡Haga clic para descargar ahora!

  • Comodidad con un solo clic: Descargue los cinco paquetes de instalación de una sola vez.
  • 🚀Listo para cualquier tarea de Office: Instale los complementos que necesite, justo cuando los necesite.
  • 🧰Incluido: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools for PowerPoint