Excel VBA: PDF erstellen und per E-Mail versenden
Schritt-für-Schritt-Anleitung
Um ein Excel-Dokument als PDF zu erstellen und per E-Mail zu versenden, kannst Du das folgende VBA-Skript verwenden. Dieses Beispiel zeigt, wie Du die E-Mail-Adresse aus einer Zelle entnehmen und das PDF als Anhang versenden kannst.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu:
- Rechtsklick auf „VBAProject (DeineDatei.xlsx)“.
- Wähle „Einfügen“ > „Modul“.
- Füge den folgenden Code ein:
Sub pdf_und_email_versenden()
Dim OutlookApp As Object
Dim OutlookMailItem As Object
Dim Empfaenger As String
Dim pdfPfad As String
' Excel als PDF speichern
pdfPfad = ThisWorkbook.Path & "\MeineDatei.pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPfad
' E-Mail erstellen
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
' E-Mail-Empfänger aus Zelle A3
Empfaenger = Range("A3").Value
With OutlookMailItem
.To = Empfaenger
.Subject = "Hier ist das PDF"
.Body = "Die Excel-Datei wurde als PDF angehängt."
.Attachments.Add pdfPfad
.Display ' .Send für sofortigen Versand
End With
' Aufräumen
Set OutlookMailItem = Nothing
Set OutlookApp = Nothing
End Sub
- Speichere Deine Änderungen und schließe den VBA-Editor.
- Führe das Makro aus, um das PDF zu erstellen und die E-Mail zu senden.
Häufige Fehler und Lösungen
-
Laufzeitfehler -2147417851(80010105)
: Dieser Fehler tritt häufig auf, wenn der E-Mail-Empfänger nicht korrekt angegeben ist. Stelle sicher, dass Du .To = Range("A3").Text
oder eine Variable verwendest, die die E-Mail-Adresse enthält.
-
Outlook öffnet sich nicht: Überprüfe, ob Outlook korrekt installiert und konfiguriert ist. Manchmal können Berechtigungseinstellungen den Zugriff auf die Anwendung blockieren.
Alternative Methoden
Wenn Du Excel VBA nicht verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:
-
Power Automate: Mit Microsoft Power Automate (früher Microsoft Flow) kannst Du automatisierte Workflows erstellen, die PDFs erstellen und versenden, ohne VBA zu verwenden.
-
Drittanbieter-Tools: Es gibt verschiedene Tools, die das Erstellen und Versenden von PDFs aus Excel erleichtern, wie z.B. Adobe Acrobat oder spezielle Excel-Add-Ins.
Praktische Beispiele
-
PDF aus spezifischem Tabellenblatt erstellen:
ThisWorkbook.Sheets("MeinTabellenblatt").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPfad
-
PDF in einem anderen Format (z.B. A3):
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPfad, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Tipps für Profis
-
Automatisierung: Wenn Du regelmäßig PDFs versenden musst, überlege, das Makro automatisch über eine Schaltfläche oder beim Öffnen der Datei auszuführen.
-
Fehlermeldungen abfangen: Verwende On Error Resume Next
, um die Ausführung nicht zu unterbrechen, falls ein Fehler auftritt. Dies kann helfen, die Benutzererfahrung zu verbessern.
FAQ: Häufige Fragen
1. Wie kann ich die PDF-Datei anpassen?
Du kannst den Export-Parameter IncludeDocProperties
oder IgnorePrintAreas
anpassen, um zu steuern, welche Inhalte in das PDF aufgenommen werden.
2. Kann ich das PDF in einem bestimmten Ordner speichern?
Ja, ändere einfach den pdfPfad
auf den gewünschten Speicherort, z.B. pdfPfad = "C:\MeinOrdner\MeineDatei.pdf"
.
3. Wie sende ich mehrere Empfänger?
Trenne die E-Mail-Adressen mit einem Semikolon, z.B. .To = "email1@example.com; email2@example.com"
.
4. Funktioniert das Skript in Excel 2013?
Ja, das Skript sollte auch in Excel 2013 funktionieren, solange Outlook korrekt konfiguriert ist.