Zum Inhalt springen

Praxis: Outlook-Anhänge in Masse drucken

da ich sehr selten Dinge auf Papier drucke, stellen sich mir manche Fragen gar nicht.
Wie zum Beispiel, ob und wie man von mehr als einer E-Mail die Anhänge auf einmal drucken kann.
Standardmäßig kann Outlook das grundsätzlich schon.

Das Vorgehen dabei:
Alle E-Mails mit Anhängen markieren.

Alle E-Mails mit Anhängen markieren

Zum Reiter “Datei” wechseln.

Zum Reiter “Datei” wechseln

Das Menü “Drucken” wählen.

Das Menü “Drucken” wählen.

Es kann einen Moment dauern, bis die Druckoptionen zur Verfügung stehen.

Weiteres unter den Druckoptionen

Dort den Haken bei „Anlagen drucken. Anlagen werden nur mit dem Standarddrucker gedruckt.“ setzen und drucken.

Auch die Anlagen drucken per Haken aktivieren.

Der Nachteil dabei ist, dass die E-Mail mit gedruckt wird.

Unter dieser Seite fand ich etwas vbs-Code, dass man als Makro einbinden kann.
Damit werden ausschließlich die Anhänge gedruckt.
Zur Implementierung öffnet man Outlook und wechselt mit ALT+F11 zum VBA-Editor.
Es öffnet sich eine neues Fenster mit dem Titel “Microsoft Visual Basic for Aplications”
Über das Kontextmenü fügt man ein neues Modul und den VBA-Code ein und speichert das Modul.

Sub BatchPrintAllAttachmentsinMultipleEmails()
    Dim objFileSystem As Object
    Dim strTempFolder As String
    Dim objSelection As Outlook.Selection
    Dim objItem As Object
    Dim objMail As Outlook.MailItem
    Dim objAttachments As Outlook.attachments
    Dim objAttachment As Outlook.Attachment
    Dim objShell As Object
    Dim objTempFolder As Object
    Dim objTempFolderItem As Object
    Dim strFilePath As String
 
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    strTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Attachments " & Format(Now, "YYYY-MM-DD_hh-mm-ss")
    'Create a new temp folder
    MkDir (strTempFolder)
 
    Set objSelection = Outlook.Application.ActiveExplorer.Selection
 
    For Each objItem In objSelection
        If TypeOf objItem Is MailItem Then
           Set objMail = objItem
           Set objAttachments = objMail.attachments
 
           'Save all the attachments in the temp folder
           For Each objAttachment In objAttachments
               strFilePath = strTempFolder & "\" & objAttachment.FileName
               objAttachment.SaveAsFile (strFilePath)
 
               'Print all the files in the temp folder
               Set objShell = CreateObject("Shell.Application")
               Set objTempFolder = objShell.NameSpace(0)
               Set objTempFolderItem = objTempFolder.ParseName(strFilePath)
               objTempFolderItem.InvokeVerbEx ("print")
           Next objAttachment
        End If
    Next
End Sub
EIn neues Modul erstellen, Code einfügen und speichern.

Der Editor kann nun geschlossen werden.
Um das Makro dem Schnellzugriff hinzuzufügen, klickt man auf das Pfeil-nach-unten-Symbol und wählt “Weitere Befehle…”.

Den Schnellzugriff anpassen.

Im Untermenü wählt man “Makros” aus und fügt das “Projekt1.BatchPrintAllAttachmentsinMultipleEmails” dem Schnellzugriff hinzu.

Zu den Makros wechseln
Das Makro dem Schnellzugriff hinzufügen

Wer möchte, der kann dem Makro noch ein eigenes/ anderes Icon über den “Ändern…”-Dialog zuweisen.

Ein individuelles Icon gefällig?

Alles speichern und ab sofort könne aus E-Mails heraus nur die Anhänge in masse gedruckt werden.

PS: Es gibt weitere Bedingungen: der Acrobat Reader ist die Standard-Anwendung für PDF und die Makrosicherheit in Office muss deaktiviert sein.

Office-Updates stellen gern mal die Makro-Sicherheit wieder um. Ebenso tragen sich die Edge-Browser-Updates wieder als Standard-Anwendung für PDFs ein.

15 Kommentare

  1. Gerd Gerd

    Danke für diesen Beittrag, er hat mir sehr weitergeholfen!

    • oberguru oberguru

      Schön, dass es noch jemand geholfen hat.

  2. Stephan Stephan

    Ja hier, mir auch!
    VIELEN Dank dafür!!

  3. John Doe John Doe

    Gerade wenn ich zb 10 PDF’s auf einmal drucken möchte, ohne diese vorher speichern zu müssen, möchte ich nicht ein PDF per Schnelldruck drucken, dann warten, da der PDF-Reader sich dann ja kurz öffnet und dann erst zu PDf 2 übergehen usw. usf.

    Da erleichtert mir deine Anleitung das Arbeiten wesentlich!

    Vielen Dank dafür!!!

  4. Vanessa Vanessa

    Hallo,
    das hat uns auch sehr geholfen.
    Allerdings werden die Anhänge unsortiert gedruckt.
    z.b. bei zwei Mails hat jede Mail zwei Anhänge. Diese kommen dann nicht nach einander sondern durcheinander aus dem Drucker.
    Kann man da was machen?

    • oberguru oberguru

      Ich würde da eher bei den Drucker-Einstellungen schauen.
      In den Eigenschaften unter “Erweitert” die Option “Druckaufträge direkt zum Drucker schicken”.

  5. Roman Roman

    Danke!!!!!!!!

  6. Isa Isa

    Hallo,
    ich bin sehr froh endlich eine Lösung gefunden zu haben dieses lästige Problem des Druckens der Anhänge loszuwerden.
    Am Tag der Einrichtung hat es auch geklappt, als ich aber dann am nächsten Tag wieder etwas drucken wollte, reagierte der Befehl nicht. Man kann so oft drauf drücken wie man will, es druckt gar nichts.
    Ich habe auch schon etwas herumprobiert, das Problem zu lösen, jedoch ohne Erfolg.
    Was kann man da machen?

    • oberguru oberguru

      Es gibt weitere Bedingungen: der Acrobat Reader ist die Standard-Anwendung für PDF und die Makrosicherheit in Office sollte deaktiviert sein. Office-Updates stellen gern mal die Makro-Sicherheit wieder um.

  7. Florian Florian

    Hi,
    wir haben das auch eingerichtet und es hat funktioniert – jetzt geht gar nichts mehr, Makros sind deaktiviert.
    Was kann man sonst noch machen??

    • oberguru oberguru

      Ich habe die anderen Bedingungen noch mal am Ende im Artikel ergänzt.
      Es gibt weitere Bedingungen:
      der Acrobat Reader ist die Standard-Anwendung für PDF und die Makrosicherheit in Office sollte deaktiviert sein.
      Office-Updates stellen gern mal die Makro-Sicherheit wieder um.

  8. Martin Martin

    Hallo,
    ein User hat das Makro bei sich aktiviert und es funktioniert auch. Seit ca. 1 Woche hat der User das Problem, dass das Drucken extrem lange dauert. Als das Makro frisch eingespielt wurde, konnte der User 10-30 Anhänge sofort drucken und nach 2-3 Minuten war alles ausgedruckt. Seitdem das Problem vorhanden ist, braucht das Makro für die gleiche Anzahl an Anhängen 30-40 Minuten.
    Ich habe beim User etwa zum gleichen Zeitpunkt PDF24 installiert als das Problem auftrat..
    Makrosicherheit in Office ist deaktiviert (alle Makros sind zugelassen) & Acrobat Reader ist die Standart PDF-Anwendung.
    Hat noch jemand eine Idee?

    • oberguru oberguru

      Schau mal mit dem Process Monitor während des Drucks, was da bremst. Plötzliche Verzögerungen können durch den Anti-Virus herkommen.

  9. Armin Estermann Armin Estermann

    Guten Tag

    Vielen Dank für dieses Super Marko. Gibt es die Möglichkeit einen anderen Drucker zu bestimmen als den Standard Drucker?

    Besten Dank für die Rückmeldung.

    • oberguru oberguru

      Visual Basic ist keine meiner Kernkompetenzen und das Makro ist ja nicht von mir. Daher würde ich ein wenig damit herumspielen, um vor dem Ausdruck den gewünschten Drucker als Standard zu setzen (nach Zeile “Set objSelection=”) und am Ende des Skripts wieder zurück zu stellen (vor “End Sub”).

Schreibe einen Kommentar

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