Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per VBA Mail verschicken - "Body" in mehr Zeilen

Per VBA Mail verschicken - "Body" in mehr Zeilen
09.12.2006 10:21:30
Moni
Hallo Zusammen,
per VBA möchte ich eine Lotus-Mail verschicken.
Klappt soweit wunderbar.
Aber wie bekomme ich es hin, dass ich in der Mail
die Fußzeile/ den "Body" auf mehrere Zeilen bekomme ?
Im VBA habe ich drin:
.body = "Mit besten Grüßen"
und möchte hier noch
mehr schreiben.
Habt Ihr einen Tipp ?
Viele Grüße,
Monika
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeilenumbruch per %0A oder %0D
09.12.2006 10:29:41
NoNet
Hallo Monika,
Du kannst in den Link einen "LineFeed" (ASCII 010) oder "Carriage Return" (ASCII 013) einfügen, um einen Zeilenumbruch zu erzeugen. Beides wird in der HEX-Schreibweise angegeben :
%0A = ASCII 010 bzw. %0D = ASCII 013
Im Klartext lautet der Link dann z.B: so :
mailto:irgendwen@Irgendwo.de?subject=Dein Betreff&body=Zeile 1%0AZeile2%0DNoch eine Zeile
Liebe Grüße,
NoNet
Anzeige
Wer lesen kann...Es sollte ja VBA sein ;-)
09.12.2006 10:59:04
NoNet
Hallo Moni,
habe wieder mal überlesen, dass Du ja eine VBA-Lösung suchst.
Unter VBA lautet die Anweisung :
.body = "Mit besten Grüßen" & vbcrlf & "Eure liebe Moni" & vbcrlf & "PS: Frohe Adventszeit"

Liebe Grüße,
NoNet
AW: Wer lesen kann...Es sollte ja VBA sein ;-)
09.12.2006 11:12:53
Moni
Hallo NoNet,
ich bin begeistert. Vielen Dank. ; - )
Liebe Grüße,
Moni
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deinDokumentName)" klickst und "Einfügen" > "Modul" wählst.

  3. 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
  4. Passe die E-Mail-Adresse, den Betreff und den Body nach deinen Wünschen an.

  5. 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

  • Fehler: Der Body wird nicht korrekt angezeigt.

    • Lösung: Stelle sicher, dass du vbCrLf oder vbNewLine verwendest, um Zeilenumbrüche hinzuzufügen.
  • Fehler: Outlook öffnet sich nicht oder die E-Mail wird nicht gesendet.

    • Lösung: Überprüfe, ob Outlook korrekt installiert ist und ob du die notwendigen Berechtigungen zum Senden von E-Mails hast.

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige