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.
- Öffnen Sie Outlook und drücken Sie
ALT + F11
, um den VBA-Editor zu öffnen. - 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.