Excel E-Mail mit Anhang versenden
Schritt-für-Schritt-Anleitung
Um aus Excel eine E-Mail mit Anhang zu versenden, kannst Du den folgenden VBA-Code verwenden. Dieser Code erstellt ein PDF-Dokument aus einem bestimmten Bereich in Deiner Excel-Tabelle und versendet es als Anhang:
Sub PDF_und_Senden()
Dim DateiName As String
Dim sPfad As String
sPfad = ThisWorkbook.Path & "\"
DateiName = sPfad & Range("I15").Value & ".pdf"
Range("A1:G49").ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
With CreateObject("Outlook.Application").CreateItem(0)
.To = Range("H14").Value
.Subject = Range("H15").Value
.Body = Range("H20") & Range("H22").Value & Range("H23").Value
.Attachments.Add DateiName
.Display
' .Mail.Send
End With
End Sub
Stelle sicher, dass Du die Outlook-Anwendung ordnungsgemäß installiert hast und der Pfad für das PDF korrekt ist.
Häufige Fehler und Lösungen
-
Laufzeitfehler '91': Objekvariable oder With-Blockvariable nicht festgelegt
Dieser Fehler tritt auf, wenn Du versuchst, auf ein Objekt zuzugreifen, das nicht richtig initialisiert wurde. Überprüfe, ob Du die OutlookApp korrekt gesetzt hast. Der Code sollte so aussehen:
Set OutlookApp = CreateObject("Outlook.Application")
-
Laufzeitfehler '424': Objekt erforderlich
Dieser Fehler kann auftreten, wenn Du auf ein Objekt zugreifen möchtest, das nicht existiert. Stelle sicher, dass Du die Zeile richtig angepasst hast:
Set myAttachments = Nachricht.Attachments
-
Laufzeitfehler '-2147024894 (80070002)': Datei kann nicht gefunden werden
Wenn dieser Fehler auftritt, überprüfe, ob der angegebene Pfad korrekt ist und ob die Datei tatsächlich existiert. Achte darauf, dass Du die Datei im richtigen Verzeichnis speicherst.
Alternative Methoden
Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:
-
Excel Serienmail verwenden: Du kannst die Serienbrieffunktion von Word nutzen, um Mails mit Anhängen zu versenden. Dies erfordert jedoch mehr Schritte, ist aber eine nützliche Alternative.
-
Drittanbieter-Tools: Es gibt verschiedene Tools, die sich in Excel integrieren lassen und das Versenden von E-Mails mit Anhängen erleichtern, wie z.B. Mail Merge Toolkit.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie Du mit VBA eine E-Mail mit Anhang versendest:
Sub SendEmailWithAttachment()
Dim OutlookApp As Object
Dim Email As Object
Dim Anhang As String
Anhang = "C:\DeinPfad\Datei.pdf"
Set OutlookApp = CreateObject("Outlook.Application")
Set Email = OutlookApp.CreateItem(0)
With Email
.To = "deine.email@example.com"
.Subject = "Betreff der E-Mail"
.Body = "Hier ist die E-Mail mit dem Anhang."
.Attachments.Add Anhang
.Display
End With
Set OutlookApp = Nothing
Set Email = Nothing
End Sub
Tipps für Profis
-
Late Binding verwenden: Wenn Du Late Binding anstelle von Early Binding verwendest, musst Du keine Verweise auf die Outlook-Bibliothek setzen, was die Kompatibilität erhöht.
-
Fehlerbehandlung implementieren: