Mehrzeilige VBA-E-Mails versenden
Schritt-für-Schritt-Anleitung
Um den Body einer E-Mail, die über VBA versendet wird, auf mehrere Zeilen zu erweitern, kannst du folgende Schritte befolgen:
-
Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deinDokumentName)" klickst und "Einfügen" > "Modul" wählst.
-
Kopiere und füge den folgenden Code in das Modul ein:
Sub SendEmail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "empfaenger@beispiel.de"
.Subject = "Betreff der E-Mail"
.Body = "Mit besten Grüßen" & vbCrLf & "Eure liebe Moni" & vbCrLf & "PS: Frohe Adventszeit"
.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
-
Passe die E-Mail-Adresse, den Betreff und den Body nach deinen Wünschen an.
-
Schließe den VBA-Editor und führe das Makro aus.
Durch die Verwendung von vbCrLf im Body kannst du Zeilenumbrüche erzeugen, was für eine schöner formatierte E-Mail sorgt.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du nicht über VBA arbeiten möchtest, kannst du auch den mailto:-Link verwenden, um E-Mails mit mehreren Zeilen im Body zu senden. Hier ein Beispiel:
<a href="mailto:empfaenger@beispiel.de?subject=Betreff&body=Zeile1%0AZeile2%0DZeile3">E-Mail senden</a>
Hierbei wird %0A für einen Zeilenumbruch verwendet. Beachte jedoch, dass diese Methode in einem Browser und nicht direkt in Excel funktioniert.
Praktische Beispiele
Hier ist ein Beispiel für einen vollständigen VBA-Code, der eine E-Mail mit einem mehrzeiligen Body versendet:
Sub SendMultiLineEmail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "empfaenger@beispiel.de"
.Subject = "Test E-Mail"
.Body = "Hallo," & vbCrLf & _
"Dies ist eine E-Mail aus VBA." & vbCrLf & _
"Mit freundlichen Grüßen," & vbCrLf & _
"Dein Name"
.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
In diesem Beispiel wird der Body der E-Mail durch die Verwendung von vbCrLf in mehrere Zeilen unterteilt.
Tipps für Profis
-
Nutze HTMLBody, wenn du eine formatierte E-Mail mit HTML-Inhalten versenden möchtest. Beispiel:
.HTMLBody = "<html><body>Hallo,<br>Dies ist eine <b>HTML</b> E-Mail.</body></html>"
-
Experimentiere mit verschiedenen Zeilenumbruch-Methoden wie vbNewLine oder vbLf, um zu sehen, welcher am besten für deinen Anwendungsfall geeignet ist.
FAQ: Häufige Fragen
1. Wie kann ich den Body einer E-Mail in VBA formatieren?
Du kannst den Body mit vbCrLf oder vbNewLine formatieren, um Zeilenumbrüche einzufügen.
2. Funktioniert das auch in Excel Online?
Die VBA-Funktionalitäten sind nur in der Desktop-Version von Excel verfügbar, nicht in Excel Online.
3. Was ist der Unterschied zwischen .Body und .HTMLBody?
.Body sendet einfachen Text, während .HTMLBody HTML-Formatierungen wie fett, kursiv und Links unterstützt.