Automatisierte Sicherung von Outlook-Nachrichten als PDF

Outlook VBA

Möchten Sie erfahren, wie Sie Ihre Outlook-Nachrichten automatisch in PDF-Dateien konvertieren und auf Ihrer Festplatte speichern können? Dann sind Sie hier genau richtig! In diesem Artikel stellen wir Ihnen einen praktischen VBA-Code für Outlook vor, der genau das macht.

Schritt 1: Das passende Konvertierungstool

Bevor wir starten, benötigen Sie ein Konvertierungstool, um MSG-Nachrichten in PDF-Dateien zu verwandeln. Ein hervorragendes Tool für diesen Zweck ist der „MSG Viewer„. Laden Sie es herunter und installieren Sie es auf Ihrem Computer, bevor Sie weitermachen.

Schritt 2: VBA-Code in Outlook einfügen

Das Dateinamenformat ist ddmmyyyy_hhmm_subject.msg, wie in:

22102023_0319_Inquiry.msg

Der Dateiname wird mit diesem Code festgelegt:

StrFile = StrSaveFolder & StrReceived & „_“ & StrName & „.msg“

Die Länge der Dateinamen ist auf 256 Zeichen begrenzt, wobei der Betreff gekürzt wird, wenn er zu lang ist.

  1. Öffnen Sie Outlook und drücken Sie ALT + F11, um den VBA-Editor zu öffnen.
  2. Einfügen des untenstehenden VBA-Codes.

Dim StrSaveFolder As String
Dim StrReceived As String
Dim StrName As String
Dim StrFile As String

Sub SaveMsgsAsPDF()
Dim ns As Outlook.Namespace
Dim inbox As Outlook.MAPIFolder
Dim subfolder As Outlook.MAPIFolder
Dim Item As Object
Dim strFolderPath As String
Dim objMail As Outlook.MailItem
Dim converterPath As String

Set ns = GetNamespace("MAPI")
Set inbox = ns.PickFolder 'Ordner auswählen

' Pfad für das Konvertierungstool
converterPath = "C:\Pfad\zum\MSGViewer\MSGViewer.exe"

' Speicherordner festlegen
StrSaveFolder = "C:\MeinSpeicherort\"

If Not inbox Is Nothing Then
ProcessFolder inbox
End If
End Sub

Sub ProcessFolder(ByVal oFolder As Outlook.MAPIFolder)
Dim Item As Object
Dim objMail As Outlook.MailItem

For Each Item In oFolder.Items
If TypeOf Item Is Outlook.MailItem Then
Set objMail = Item
SaveMailAsPDF objMail
End If
Next

If oFolder.Folders.Count > 0 Then
For Each subfolder In oFolder.Folders
ProcessFolder subfolder
Next
End If
End Sub

Sub SaveMailAsPDF(objMail As Outlook.MailItem)
StrReceived = Format(objMail.ReceivedTime, "ddmmyyyy_hhmm")
StrName = Left(objMail.Subject, 250)
StrName = Replace(StrName, "\", "-")
StrName = Replace(StrName, ":", "-")
StrName = Replace(StrName, "/", "-")
StrName = Replace(StrName, "*", "-")
StrName = Replace(StrName, "?", "-")
StrName = Replace(StrName, Chr(34), "-")
StrName = Replace(StrName, "<", "-")
StrName = Replace(StrName, ">", "-")
StrName = Replace(StrName, "|", "-")

StrFile = StrSaveFolder & StrReceived & "_" & StrName & ".msg"

objMail.SaveAs StrFile, olMSG

' Konvertieren Sie die MSG-Datei in PDF mit dem Konvertierungstool
Shell converterPath & " " & StrFile & " " & Replace(StrFile, ".msg", ".pdf")
End Sub

Schritt 3: Den Pfad anpassen

Bitte beachten Sie, dass Sie den Pfad zum Konvertierungstool (converterPath) und den Speicherort (StrSaveFolder) im obigen Code an Ihren Computer anpassen müssen.

Schritt 4: Code ausführen

Nachdem Sie alles eingerichtet haben, können Sie den Code einfach ausführen, um einen spezifischen Outlook-Ordner auszuwählen und alle darin enthaltenen Nachrichten (sowie Nachrichten in allen Unterordnern) als PDF-Dateien zu speichern.

Schlusswort

Beachten Sie, dass die Ausführung einige Zeit in Anspruch nehmen kann, wenn der Ordner sehr viele Nachrichten enthält. Rechnen Sie mit etwa 2 Sekunden pro Nachricht, also etwa 15 Minuten für 400 Nachrichten.
Das Automatisieren von Routineaufgaben wie dieser kann Ihnen viel Zeit sparen und sicherstellen, dass keine wichtige Nachricht verloren geht. Mit dem oben beschriebenen Ansatz können Sie Ihre E-Mails sicher und effizient als PDFs archivieren.

Alternative

Wenn dieser Weg zu kompliziert bzw. zu umständlich ist empfehlen wir Ihnen die Outlook Erweiterung Print Tools for Outlook.

-

Vorheriger Artikel Nächster Artikel

Hat Ihnen der Beitrag gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...

Schreibe einen Kommentar

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

CAPTCHA eingeben * Das Zeitlimit ist erschöpft. Bitte CAPTCHA neu laden.