Wie kann man Anhänge automatisch drucken, wenn E-Mails in Outlook eintreffen?
Dieses Tutorial zeigt eine Methode, um ein VBA-Skript und eine Outlook-Regel zu kombinieren, damit Sie Anhänge bestimmter E-Mails automatisch drucken können, wenn sie in Outlook eintreffen.
Anhänge automatisch drucken, wenn bestimmte E-Mails eintreffen
Angenommen, Sie möchten die Anhänge von eingehenden E-Mails eines bestimmten Absenders automatisch drucken. Sie können wie folgt vorgehen, um dies zu erreichen.
Schritt 1: Erstellen Sie ein Skript in Outlook
Zuerst müssen Sie ein VBA-Skript in Outlook erstellen.
1. Starten Sie Ihr Outlook, drücken Sie gleichzeitig die Tasten Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen.
2. Doppelklicken Sie im Fenster Microsoft Visual Basic for Applications auf Project1 > Microsoft Outlook Objects > ThisOutlookSession, um das Fenster ThisOutlookSession (Code) zu öffnen, und kopieren Sie dann den folgenden Code in dieses Codefenster.

VBA-Code 1: Anhänge automatisch drucken (alle Arten von Anhängen), wenn E-Mails eintreffen
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
Hinweis: Dieser Code unterstützt das Drucken aller Arten von Anhängen, die in E-Mails empfangen werden. Wenn Sie nur einen bestimmten Typ von Anhang drucken möchten, z.B. PDF-Dateien, wenden Sie bitte den folgenden VBA-Code an.
VBA-Code 2: Automatisches Drucken des angegebenen Anhangstyps, wenn E-Mails eintreffen
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
Hinweise:
3. Klicken Sie auf Extras > Verweise. Aktivieren Sie im Dialogfeld Verweise – Project1 das Kontrollkästchen Microsoft Scripting Runtime, und klicken Sie dann auf die Schaltfläche OK.

4. Speichern Sie den Code und drücken Sie die Tasten Alt + Q, um das Fenster Microsoft Visual Basic for Applications zu schließen.
Hinweis: Stellen Sie sicher, dass die Option Alle Makros aktivieren in Ihrem Outlook aktiviert ist. Sie können diese Option überprüfen, indem Sie den unten gezeigten Schritten folgen.

Schritt 2: Erstellen Sie eine Regel zur Verwendung des Skripts
Nachdem Sie das VBA-Skript in Outlook hinzugefügt haben, müssen Sie eine Regel erstellen, um das Skript basierend auf bestimmten Bedingungen zu verwenden.
1. Gehen Sie zur Registerkarte Start, klicken Sie auf Regeln > Regeln und Benachrichtigungen verwalten.

2. Klicken Sie im Dialogfeld Regeln und Benachrichtigungen auf die Schaltfläche Neue Regel, um eine Regel zu erstellen.
Hinweis: Wenn Sie mehrere E-Mail-Konten zu Ihrem Outlook hinzugefügt haben, geben Sie bitte ein Konto in der Dropdown-Liste Änderungen auf diesen Ordner anwenden an, wo Sie die Regel anwenden möchten. Andernfalls wird sie auf den Posteingang des aktuell ausgewählten E-Mail-Kontos angewendet.

3. Wählen Sie im ersten Dialogfeld des Regel-Assistenten die Option Regel auf Nachrichten anwenden, die ich empfange im Feld Schritt 1 aus, und klicken Sie dann auf Weiter.

4. Im zweiten Dialogfeld des Regel-Assistenten müssen Sie:

5. Im dritten Dialogfeld des Regel-Assistenten müssen Sie wie folgt konfigurieren.

Hinweis: Wenn die Option „Skript ausführen“ im Regel-Assistenten fehlt, können Sie sie anzeigen, indem Sie der in diesem Artikel erwähnten Methode folgen: Fehlende Option „Skript ausführen“ in Outlook-Regel wiederherstellen.
6. Dann erscheint ein weiteres Fenster des Regel-Assistenten, das nach Ausnahmen fragt. Sie können die Ausnahmen auswählen, falls nötig, andernfalls klicken Sie ohne Auswahl auf die Schaltfläche Weiter.

7. Im letzten Fenster des Regel-Assistenten müssen Sie einen Namen für die Regel angeben und dann auf die Schaltfläche Fertig stellen klicken.

8. Es kehrt zum Dialogfeld Regeln und Benachrichtigungen zurück, und Sie sehen die erstellte Regel aufgelistet. Klicken Sie auf die Schaltfläche OK, um die gesamte Konfiguration abzuschließen.

Ab jetzt werden die angehängten Dateien automatisch gedruckt, sobald eine E-Mail von der angegebenen Person empfangen wird.
Verwandte Artikel
Nur Anhänge einer E-Mail oder ausgewählter E-Mails in Outlook drucken
In Outlook können Sie E-Mails drucken, aber haben Sie schon einmal nur die Anhänge einer bestimmten E-Mail oder ausgewählter E-Mails gedruckt? Dieser Artikel stellt Tricks vor, um diese Aufgabe zu lösen.
Nur den Nachrichtenkopf einer E-Mail in Outlook drucken
Wenn Sie eine E-Mail in Outlook drucken, wird sowohl der Nachrichtenkopf als auch der Nachrichtentext gedruckt. In einigen speziellen Fällen möchten Sie jedoch möglicherweise nur den Nachrichtenkopf mit Betreff, Absender, Empfänger usw. ausdrucken. Dieser Artikel stellt zwei Lösungen dafür vor.
Einen Kalender in einem bestimmten/angepassten Datumsbereich in Outlook drucken
Normalerweise wählt Outlook beim Drucken eines Kalenders in der Monatsansicht automatisch den Monat aus, der das aktuell ausgewählte Datum enthält. Möglicherweise möchten Sie jedoch den Kalender innerhalb eines benutzerdefinierten Datumsbereichs drucken, z.B. 3 Monate, ein halbes Jahr usw. Dieser Artikel stellt Ihnen die Lösung vor.
Einen Kontakt mit Bild in Outlook drucken
Normalerweise wird das Bild eines Kontakts nicht gedruckt, wenn Sie den Kontakt in Outlook drucken. Manchmal kann es jedoch beeindruckender sein, einen Kontakt mit seinem Bild zu drucken. Dieser Artikel stellt einige Workarounds vor, um dies zu erreichen.
Eine Auswahl einer E-Mail in Outlook drucken
Wenn Sie eine E-Mail erhalten und feststellen, dass nur ein Teil des Inhalts ausgedruckt werden muss, anstatt die gesamte Nachricht zu drucken, was würden Sie tun? Tatsächlich kann Outlook Ihnen bei dieser Operation mit Hilfe von Internetbrowsern wie Firefox und Internet Explorer helfen. Hier nehme ich Internetbrowser als Beispiel. Bitte sehen Sie sich die folgenden Tutorials an.
Beste Office-Produktivitätstools
Eilmeldung: Kutools für Outlook startet kostenlose Version!
Erleben Sie die brandneue kostenlose Version von Kutools für Outlook mit über70 unglaublichen Funktionen, die Sie FÜR IMMER nutzen können! Klicken Sie jetzt, um herunterzuladen!
📧 E-Mail-Automatisierung: Automatische Antwort (Verfügbar für POP und IMAP) / E-Mails senden planen / Automatische CC/BCC nach Regeln beim Senden von E-Mails / Automatische Weiterleitung (Erweiterte Regeln) / Automatische Begrüßung hinzufügen / Automatisches Aufteilen von E-Mails mit mehreren Empfängern in einzelne Nachrichten ...
📨 E-Mail-Management: E-Mails zurückrufen / Betrugs-E-Mails nach Betreff und anderen blockieren / Duplikate E-Mails löschen / Erweiterte Suche / Ordner organisieren ...
📁 Anhänge Pro: Stapelspeichern / Stapelablösen / Stapelkomprimieren / Automatisch speichern / Automatisch abtrennen / Automatische Komprimierung ...
🌟 Interface Magic: 😊Mehr hübsche und coole Emojis / Erinnern Sie, wenn wichtige E-Mails kommen / Outlook minimieren statt schließen ...
👍 Ein-Klick-Wunder: Allen mit Anhängen antworten / Anti-Phishing-E-Mails / 🕘Zeitzone des Absenders anzeigen ...
👩🏼🤝👩🏻 Kontakte & Kalender: Kontakte aus ausgewählten E-Mails stapelweise hinzufügen / Eine Kontaktgruppe in einzelne Gruppen aufteilen / Geburtstagserinnerung entfernen ...

