VBA E-Mail pdf-Anhang drucken

Outlook hält bereits viele Funktionen bereit, mit welchen sich bestimmte Aufgaben automatisieren bzw. vereinfachen lassen. Dazu zählen unter anderem die Outlook-Regeln.
Jedoch gibt es aber nicht für alle Aufgaben eine passende Funktion. Dafür kann man aber in Mircosofts Outlook VBA (Visual Basic for Applications) benutzen, um flexibel eigene Funktionen zu programmieren und Arbeitsabläufe anzupassen. Dies können die wenigsten anderen E-Mail-Programme vorweisen.

Will man einen PDF-Anhang aus einer E-Mail heraus drucken, dann öffnet man meistens die PDF-Datei im Adobe Reader und hangelt sich dort zum Drucken-Menü vor. Das sind bei wiederkehrenden Aufgaben unnötig viele Klicks. Und meistens sind noch andere Arbeitsabläufe damit verbunden, wie das Speichern des E-Mail Anhang unter einem bestimmten Pfad.

Ein typischer routinemäßiger Arbeitsprozess kann hier sein, dass man per Mail eine Rechnung erhält. Diese möchte man für die Buchhaltung unter einem bestimmten Pfad speichern und dann gleichzeitig auf den Drucker schicken.

Bestseller Nr. 1
Microsoft Outlook und OneNote im Büro: Die besten...
  • 264 Seiten - 27.09.2019 (Veröffentlichungsdatum) - Vierfarben (Herausgeber)

PDF-Datei aus E-Mail automatisch Drucken

Das Drucken einer PDF-Datei, die als Anhang einer E-Mail beigefügt ist, kann man über den folgenden VBA-Code vornehmen. Mittels diesem VBA-Code werden alle PDF-Anhänge der ausgewählten E-Mails auf den Standard-Drucker gesendet.

Zum VBA-Editor gelangt man über die Tastenkombination Strg+F11 oder über die Registerkarte Entwicklertools ⇒ Visual Basic. (Die Registerkarte Entwicklertools erscheint nicht standardmäßig im Outlook. Hier kann man das anpassen: Datei zu Optionen Menüband anpassen Hauptregisterkarten.)


Public Sub PrintSelectedAttachments()
  Dim Exp As Outlook.Explorer
  Dim Sel As Outlook.Selection
  Dim obj As Object
  Set Exp = Application.ActiveExplorer
  Set Sel = Exp.Selection
  For Each obj In Sel
    If TypeOf obj Is Outlook.MailItem Then
      PrintAttachments obj
    End If
  Next
End Sub

Private Sub PrintAttachments(oMail As Outlook.MailItem)
  On Error Resume Next
  Dim colAtts As Outlook.Attachments
  Dim oAtt As Outlook.Attachment
  Dim sFile As String
  Dim sFileType As String

  Set colAtts = oMail.Attachments

  If colAtts.Count Then
    For Each oAtt In colAtts

      sFileType = LCase$(Right$(oAtt.FileName, 4))

      Select Case sFileType
      Case ".pdf"
        sFile = ATTACHMENT_DIRECTORY & oAtt.FileName
        oAtt.SaveAsFile sFile
        ShellExecute 0, "print", sFile, vbNullString, vbNullString, 0
      End Select
    Next
  End If
End Sub

Wie man sieht, wird hier der Befehl ShellExecute ausgeführt. Dieser Befehl greif auf eine WinAPI zu. Dies ist notwendig, weil es sich beim Drucken um einen Dienst außerhalb der Microsoft Outlook-Umgebung handelt. Damit das Drucken der PDF-Datei funktioniert, muss man noch am Anfang des VBA-Moduls, vor dem eigenlichen Code, die folgende DLL einbinden.


Private Declare Function ShellExecute Lib "shell32.dll" Alias _
  "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
  ByVal lpFile As String, ByVal lpParameters As String, _
  ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

VBA Makro Datei-Anhang Drucken ausführen

Nun hat man ein fertiges Makro, welches sich auch mit weiteren Makros kombinieren lässt. Um auf das Makro zuzugreifen, geht man auf Entwicklertools ⇒ Makro ⇒ Makros-Dialog. Damit das Makro hier erscheint, darf es nicht als Private deklariert sein.

Noch schöner ist, wenn man direkt über den Schnellzugriff darauf zugreifen kann. Die nachfolgenden beiden Screenshots zeigen, wie man dies bewerkstelligen kann.

Screenshot Outlook Schnellzugriff Button zum Ausführen des Makros zuweisen
Outlook Schnellzugriff Button zum Ausführen des Makros zuweisen
Screenshot Outlook Symbolleiste für Schnellzugriff
Befehlsart Makros auswählen und entsprechendes Makro der Symbolleiste für den Schnellzugriff zuweisen

Über den Ändern-Button kann man dann seinem Makro noch ein eigens Icon und einen eigenen passenden Text zuweisen.

AngebotBestseller Nr. 1
Microsoft Office 2019 Home & Student multilingual...
  • Installieren Sie Office auf 1 PC oder Mac
  • Klassische Versionen von Word, Excel und PowerPoint 2019. Plus OneNote für Windows 10
  • Aktivierung – Wechseln Sie zu Office.com/setup und melden Sie sich mit Ihrem Microsoft-Konto an...

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.