¿Cómo imprimir archivos adjuntos automáticamente cuando llegan correos electrónicos a Outlook?
Este tutorial demuestra un método para combinar una secuencia de comandos de VBA y una regla de Outlook para ayudarlo a imprimir automáticamente los archivos adjuntos de ciertos correos electrónicos cuando llegan a Outlook.
Imprima automáticamente archivos adjuntos cuando lleguen ciertos correos electrónicos
Supongamos que desea imprimir automáticamente los archivos adjuntos de los correos electrónicos entrantes de un determinado remitente. Puede hacer lo siguiente para hacerlo.
Paso 1: crea un script en Outlook
En primer lugar, debe crear un script VBA en Outlook.
1. Inicie su Outlook, presione el otro + F11 teclas simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.
2. En el Microsoft Visual Basic para aplicaciones ventana, haga doble clic en Proyecto1 > Objetos de Microsoft Outlook > Esta sesión de Outlook para abrir el ThisOutlookSession (Código) y luego copie el siguiente código en esta ventana de código.
Código VBA 1: imprima automáticamente los archivos adjuntos (todos los tipos de archivos adjuntos) cuando lleguen los 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 todo tipo de archivos adjuntos recibidos en correos electrónicos. Si desea imprimir solo el tipo de archivo adjunto especificado, como archivos pdf, aplique el siguiente código VBA.
Código VBA 2: imprima automáticamente el tipo especificado de archivos adjuntos cuando lleguen los 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:
3. Continúe y haga clic Herramientas > Referencias. En el apareciendo Referencias – Proyecto1 cuadro de diálogo, verifique Tiempo de ejecución de secuencias de comandos de Microsoft cuadro, y luego haga clic en el OK del botón.
4. Guarde el código y presione la otro + Q llaves para cerrar el Microsoft Visual Basic para aplicaciones ventana.
Nota: Por favor, asegúrese de que Habilitar todas las macros La opción está habilitada en su Outlook. Puede marcar esta opción siguiendo los pasos que se muestran a continuación.
Paso 2: cree una regla para usar el script
Después de agregar la secuencia de comandos de VBA en Outlook, debe crear una regla para usar la secuencia de comandos según ciertas condiciones.
1. Vaya a la pestaña Inicio, haga clic en Reglas > Administrar reglas y alertas.
2. En el Reglas y Alertas cuadro de diálogo, haga clic en Nueva regla botón para crear una regla.
Consejos: Si ha agregado varias cuentas de correo electrónico a su Outlook, especifique una cuenta en el Aplicar cambios a esta carpeta lista desplegable donde desea aplicar la regla. De lo contrario, se aplicará a la bandeja de entrada de la cuenta de correo electrónico seleccionada actualmente.
3. En el primero Asistente de reglas cuadro de diálogo, seleccione Aplicar regla sobre los mensajes que recibo existentes Paso 1 cuadro, y luego haga clic Siguiente.
4. En el segundo Asistente de reglas cuadro de diálogo, debe:
5. En el tercero Asistente de reglas cuadro de diálogo, debe configurarlo de la siguiente manera.
Consejos: Si el "ejecutar un scriptfalta la opción ” en su Asistente de reglas, puede mostrarlo siguiendo el método mencionado en este artículo: restaurar la aplicación Ejecutar un script faltante en la regla de Outlook.
6. Luego otro Asistente de reglas aparece pidiendo excepciones. Puede seleccionar las excepciones si es necesario, de lo contrario, haga clic en el Siguiente botón sin ninguna selección。
7. En el último Asistente de reglas, debe especificar un nombre para la regla y luego hacer clic en el Acabado del botón.
8. Luego vuelve al Reglas y Alertas cuadro de diálogo, puede ver la regla que creó enumerada dentro, haga clic en el OK botón para finalizar toda la configuración.
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 imprima los archivos adjuntos de un correo electrónico o correos electrónicos seleccionados en Outlook
En Outlook, puede imprimir los correos electrónicos, pero ¿imprimió los archivos adjuntos solo de un correo electrónico o correos electrónicos seleccionados en Outlook? Este artículo presenta los trucos para resolver este trabajo.
Imprimir solo el encabezado del mensaje de un correo electrónico en Outlook
Al imprimir un correo electrónico en Outlook, se imprimirá tanto el encabezado como el cuerpo del mensaje en el correo electrónico. Sin embargo, en algunos casos especiales, es posible que solo necesite imprimir el encabezado del mensaje con el asunto, el remitente, los destinatarios, etc. Este artículo presentará dos soluciones para hacerlo.
Imprima un calendario en un rango de fechas específico/personalizado en Outlook
Normalmente, al imprimir un calendario en la vista Mes de Outlook, automáticamente seleccionará el mes que contiene la fecha seleccionada actualmente. Sin embargo, es posible que deba imprimir el calendario dentro de un rango de fechas personalizado, como 3 meses, la mitad del año, etc. Este artículo le presentará la solución.
Imprimir un contacto con imagen en Outlook
Normalmente, la imagen de un contacto no se imprimirá al imprimir el contacto en Outlook. Pero a veces será más impresionante imprimir un contacto con su imagen. Este artículo presentará algunas soluciones para hacerlo.
Imprimir una selección de un correo electrónico en Outlook
Si recibió un mensaje de correo electrónico y descubrió que hay una selección del contenido del correo electrónico que debe imprimirse en lugar de imprimir el mensaje completo, ¿qué haría? De hecho, Outlook puede ayudarlo a lograr esta operación con la ayuda de navegadores de Internet, como Firefox e Internet Explorer. Aquí tomaré los navegadores de Internet, por ejemplo. Consulte los siguientes tutoriales.
Las mejores herramientas de productividad de oficina
Kutools para Outlook - Más de 100 potentes funciones para potenciar tu perspectiva
🤖 Asistente de correo AI: Correos electrónicos profesionales instantáneos con magia de IA: respuestas geniales con un clic, tono perfecto y dominio multilingüe. ¡Transforme el correo electrónico sin esfuerzo! ...
📧 Automatización de correo electrónico: Fuera de la oficina (disponible para POP e IMAP) / Programar envío de correos electrónicos / CC/CCO automático según reglas al enviar correo electrónico / Reenvío automático (reglas avanzadas) / Agregar saludo automáticamente / Divida automáticamente correos electrónicos de múltiples destinatarios en mensajes individuales ...
📨 Gestión de correo electrónico: Recuperar correos electrónicos fácilmente / Bloquear correos electrónicos fraudulentos por sujetos y otras personas / Eliminar correos electrónicos duplicados / Búsqueda Avanzada / Consolidar carpetas ...
📁 Archivos adjuntos profesionales: Guardar lote / Separación de lotes / Comprimir por lotes / Ahorro automático / Desconexión automática / Autocompresión ...
???? Interfaz mágica: 😊Más emojis bonitos y geniales / Aumente su productividad en Outlook con vistas con pestañas / Minimizar Outlook en lugar de cerrar ...
👍 Maravillas con un clic: Responder a todos los archivos adjuntos entrantes / Correos electrónicos antiphishing / 🕘Mostrar zona horaria del remitente ...
👩🏼🤝👩🏻 Contactos y calendario: Agregar por lotes contactos de correos electrónicos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorios de cumpleaños ...
Mas de Características 100 ¡Espere su exploración! Haga clic aquí para descubrir más.