Comment imprimer automatiquement les pièces jointes lorsque les e-mails arrivent dans Outlook ?
Ce didacticiel illustre une méthode permettant de combiner un script VBA et une règle Outlook pour vous aider à imprimer automatiquement les pièces jointes de certains e-mails lorsqu'ils arrivent dans Outlook.
Imprimer automatiquement les pièces jointes lorsque certains e-mails arrivent
Supposons que vous souhaitiez imprimer automatiquement les pièces jointes des e-mails entrants d'un certain expéditeur. Vous pouvez procéder comme suit pour le faire.
Étape 1 : Créer un script dans Outlook
Tout d'abord, vous devez créer un script VBA dans Outlook.
1. Lancez votre Outlook, appuyez sur le autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.
2. dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez sur Project1 > Objets Microsoft Outlook > Cette session Outlook ouvrir le Cette session Outlook (code) fenêtre, puis copiez le code suivant dans cette fenêtre de code.
Code VBA 1 : Imprimer automatiquement les pièces jointes (tous les types de pièces jointes) à l'arrivée des e-mails
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
Remarque : Ce code prend en charge l'impression de tous les types de pièces jointes reçues dans les e-mails. Si vous souhaitez imprimer uniquement le type de pièce jointe spécifié, tel que des fichiers pdf, veuillez appliquer le code VBA suivant.
Code VBA 2 : imprime automatiquement le type de pièces jointes spécifié à l'arrivée des e-mails
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
Florales:
3. Allez-y et cliquez Outils > Les références. Dans le popping Références – Projet1 boîte de dialogue, vérifiez le Exécution de scripts Microsoft , puis cliquez sur le OK .
4. Enregistrez le code et appuyez sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.
Remarque : S'il vous plaît assurez-vous que le Activer toutes les macros l'option est activée dans votre Outlook. Vous pouvez cocher cette option en suivant les étapes indiquées ci-dessous.
Étape 2 : Créer une règle pour utiliser le script
Après avoir ajouté le script VBA dans Outlook, vous devez créer une règle pour utiliser le script en fonction de certaines conditions.
1. Accédez à l'onglet Accueil, cliquez sur Règles > Gérer les règles et les alertes.
2. dans le Règles et alertes boîte de dialogue, cliquez sur le Nouvelle règle bouton pour créer une règle.
Conseils: Si vous avez ajouté plusieurs comptes de messagerie à votre Outlook, veuillez spécifier un compte dans le Appliquer les modifications à ce dossier liste déroulante où vous souhaitez appliquer la règle. Sinon, il sera appliqué à la boîte de réception du compte de messagerie actuellement sélectionné.
3. Dans le premier Assistant de règles boîte de dialogue, sélectionnez Appliquer la règle aux messages que je reçois dans le Étape 1 boîte, puis cliquez sur Suivant.
4. Dans le second Assistant de règles boîte de dialogue, vous devez:
5. Dans le troisième Assistant de règles boîte de dialogue, vous devez configurer comme suit.
Conseils: Si la "exécuter un script” l'option est manquante dans votre Assistant de règles, vous pouvez l'afficher en suivant la méthode mentionnée dans cet article : restaurer l'option Exécuter un script manquante dans la règle Outlook.
6. Puis un autre Assistant de règles apparaît demandant des exceptions. Vous pouvez sélectionner les exceptions si nécessaire, sinon, cliquez sur le Suivant bouton sans aucune sélection。
7. Dans le dernier Assistant de règles, vous devez spécifier un nom pour la règle, puis cliquer sur le Finition .
8. Puis il revient au Règles et alertes boîte de dialogue, vous pouvez voir la règle que vous avez créée répertoriée à l'intérieur, cliquez sur le OK bouton pour terminer l'ensemble des paramètres.
Désormais, lorsqu'un e-mail de la personne spécifiée est reçu, les fichiers joints seront imprimés automatiquement.
Articles connexes
Imprimer uniquement les pièces jointes d'un e-mail ou d'e-mails sélectionnés dans Outlook
Dans Outlook, vous pouvez imprimer les e-mails, mais avez-vous imprimé les pièces jointes uniquement à partir d'un e-mail ou d'e-mails sélectionnés dans Outlook ? Cet article présente les astuces pour résoudre ce travail.
Imprimer uniquement l'en-tête de message d'un e-mail dans Outlook
Lors de l'impression d'un e-mail dans Outlook, il imprimera à la fois l'en-tête et le corps du message dans l'e-mail. Cependant, dans certains cas particuliers, vous devrez peut-être simplement imprimer l'en-tête du message avec le sujet, l'expéditeur, les destinataires, etc. Cet article présentera deux solutions pour le faire.
Imprimer un calendrier dans une plage de dates spécifiée/personnalisée dans Outlook
Normalement, lors de l'impression d'un calendrier en vue Mois dans Outlook, il sélectionne automatiquement le mois contenant la date actuellement sélectionnée. Mais, vous devrez peut-être imprimer le calendrier dans une plage de dates personnalisée, telle que 3 mois, la moitié de l'année, etc. Cet article vous présentera la solution.
Imprimer un contact avec une image dans Outlook
Normalement, l'image d'un contact ne sera pas imprimée lors de l'impression du contact dans Outlook. Mais parfois, il sera plus impressionnant d'imprimer un contact avec sa photo. Cet article présentera quelques solutions de contournement pour y parvenir.
Imprimer une sélection d'un e-mail dans Outlook
Si vous recevez un e-mail et constatez qu'une sélection du contenu de l'e-mail doit être imprimée au lieu d'imprimer l'intégralité du message, que feriez-vous? En fait, Outlook peut vous aider à réaliser cette opération à l'aide de navigateurs Internet, tels que Firefox et Internet Explorer. Ici, je prendrai les navigateurs Internet par exemple. Veuillez consulter les didacticiels suivants.
Meilleurs outils de productivité bureautique
Dernières nouvelles : lancement de Kutools pour Outlook Version gratuite!
Découvrez le tout nouveau Kutools pour Outlook Version GRATUITE avec plus de 70 fonctionnalités incroyables, à utiliser POUR TOUJOURS! Cliquez pour télécharger maintenant!
📧 Email Automation: Réponse automatique (disponible pour POP et IMAP) / Programmer l'envoi d'e-mails / Auto CC/BCC par règles lors de l'envoi d'un e-mail / Transfert automatique (règles avancées) / Ajouter un message d'accueil automatique / Divisez automatiquement les e-mails multi-destinataires en messages individuels
(I.e. Email Management: Rappel des e-mails / Bloquer les e-mails frauduleux par sujets et autres / Supprimer les e-mails en double / Recherche Avancée / Consolider les dossiers
(I.e. Pièces jointes Pro: Sauvegarde par lots / Détachement par lots / Compression par lots / Enregistrement automatique / Détachement automatique / Compression automatique
???? Magie de l'interface: 😊Plus d'émojis jolis et cool / Vous rappeler lorsque des e-mails importants arrivent / Réduire Outlook au lieu de fermer
???? Merveilles en un clic: Répondre à tous avec les pièces jointes entrantes / E-mails anti-hameçonnage / 🕘Afficher le fuseau horaire de l'expéditeur
👩🏼🤝👩🏻 Contacts et calendrier: Ajouter par lots des contacts à partir des e-mails sélectionnés / Diviser un groupe de contacts en groupes individuels / Supprimer les rappels d'anniversaire