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.

Schreibe einen Kommentar

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