Gesendete E-Mails aus Excel automatisch speichern
Schritt-für-Schritt-Anleitung
-
VBA-Editor öffnen: Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle "Einfügen" > "Modul".
-
Code einfügen: Füge den folgenden Code ein, um eine E-Mail zu senden und sie gleichzeitig zu speichern:
Sub SendMailAndSave()
Dim olApp As Object, objMail As Object
Set olApp = GetObject(, "Outlook.Application")
Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
' Hier wird das aktuelle Datum und der Betreff gesetzt
Dim fileName As String
fileName = Environ("USERPROFILE") & "\Desktop\" & _
Format(Date, "yymmdd") & "_" & _
Sheets("Tabelle1").Range("B4").Value & ".msg"
' E-Mail speichern
objMail.SaveAs fileName, 3
End Sub
-
Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools
> Makros
> SendMailAndSave
aus.
Häufige Fehler und Lösungen
-
Fehler: Objekt nicht gefunden: Dieser Fehler tritt häufig auf, wenn der Code nicht korrekt ist. Achte darauf, dass du Set objMail =
nur einmal verwendest und den richtigen Outlook-Ordner (5 für "Gesendete Elemente") wählst.
-
Fehler 13: Typen unverträglich: Überprüfe, ob in den Zellen A5, A6 oder U1 unzulässige Zeichen für Dateinamen enthalten sind. Ein Backslash (\
) hinter dem FolderPDF
könnte ebenfalls fehlen.
Alternative Methoden
Eine alternative Methode, um E-Mails in Outlook automatisch zu speichern, ist die Verwendung von Outlook-Regeln. Du kannst Regeln einrichten, die eingehende oder gesendete E-Mails in bestimmte Ordner speichern.
Zusätzlich kannst du VBA-Skripte verwenden, die auf bestimmte Ereignisse in Excel reagieren, anstatt manuell zu starten.
Praktische Beispiele
Hier ist ein Beispiel, wie du E-Mails mit einem benutzerdefinierten Dateinamen speichern kannst:
objMail.SaveAs FolderPDF & Format(Date, "yymmdd") & "_" & _
"Betreff" & "_" & _
wksPrint.Range("A5").Value & ".msg", 3
Dies speichert die E-Mail im Desktop-Ordner mit dem Format JJMMTT_Betreff.msg
.
Tipps für Profis
-
Verweise setzen: Stelle sicher, dass die benötigten Verweise in den VBA-Optionen gesetzt sind, um die Outlook-Objektbibliothek zu verwenden.
-
Fehlermeldungen unterdrücken: Du kannst die Anweisung On Error Resume Next
verwenden, um Fehlermeldungen zu ignorieren. Dies kann jedoch zu unvorhersehbaren Ergebnissen führen, also sei vorsichtig damit.
FAQ: Häufige Fragen
1. Wie kann ich die gespeicherten E-Mails in einem anderen Verzeichnis speichern?
Du kannst den Speicherort ändern, indem du den Pfad in Environ("USERPROFILE") & "\Desktop\"
anpasst.
2. Welche Excel-Version benötige ich für diese Methode?
Der Code sollte in Excel 2010 und späteren Versionen funktionieren, solange Outlook installiert und konfiguriert ist.
3. Wie kann ich den Betreff der E-Mail anpassen?
Du kannst den Betreff der E-Mail ändern, indem du den Wert in der entsprechenden Zelle anpasst, z.B. Sheets("Tabelle1").Range("B4").Value
.
4. Kann ich das Speichern von E-Mails automatisieren?
Ja, du kannst den Code so anpassen, dass er automatisch beim Senden einer E-Mail ausgeführt wird, indem du das Makro an ein Ereignis bindest.