Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Email-Body formatieren...

Forumthread: Email-Body formatieren...

Email-Body formatieren...
20.11.2006 11:35:36
Michel
Hallo liebe Excel-Gemeinde,
ich habe es geschafft, eine Email mit Outlook aus Excel heraus zu starten, die Adressen etc. werden eingefügt, der Text im Body auch.
Was ich nur leider nicht schaffe, das ist diesen Text im Body auch zu FORMATIEREN, d.h. ic h würde gerne spezielle Teile FETT oder UNTERSTRICHEN formatieren. Jemand sagte mal zu mir, das könne man mit Html machen - aber ich habe da -trotz Recherche- nichts finden können.
Kann mir da jemand weiterhelfen?
Lieben Dank.
Michel
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email-Body formatieren...
20.11.2006 12:47:38
IngGi
Hallo Michel,
hier mal ein Beispiel:

Sub eMail_versenden()
Dim olApp As Object
Dim olMail As Object
Set olApp = GetObject(, "Outlook.Application")
Set olMail = olApp.createitem(0)
olMail.htmlbody = "<b>fett</b> <i>kursiv</i> <u>unterstrichen</u>"
olMail.display
End Sub

Gruß Ingolf
Anzeige
AW: Email-Body formatieren...
20.11.2006 19:54:32
Michel
Hallo Ingolf!
Super - vielen Dank. Das klappt schon sehr gut.
Nur jetzt möchte ich gleich die ganze Hand, nachdem Du mir schon den Finger gereicht hast! ;-)
Guck Dir bitte mal VBA-Text im Anhang an.
https://www.herber.de/bbs/user/38347.doc
Was ich gerne noch machen möchte: (nur 4 Punkte - dann bist Du mich los!)
1. die Schriftart formatieren (kann man das "global" für die Email machen oder muss man das für jedes Textelement in den Anführungszeichen machen?)
2. einen Hyperlink einbauen (ich habe es versucht, aber er wirft mir immer "Compilation-Error" vor. Den VBA-Text für den Hyperlink habe ich im VBA-Code nicht gezeigt)
3. Eine Grafik in die Email zwischen die Textzeilen einfügen, die ich vorher kopiert habe und die demnach im Zwischenspeicher ist.
4. Eine Zahl, die ich aus der Excel-Tabelle auslese, formatieren undzwar als Tausender, d.h. 1.500 Euro. Derzeit wird die angezeigt als 1005,2354865468
Vielen vielen Dank und einen schönen Abend,
Michel
Anzeige
AW: Email-Body formatieren...
21.11.2006 16:24:05
IngGi
Hallo Michel,
zu 1.
die Schriftart musst du ebenfalls in den Anführungszeichen festlegen. Das geht allerdings für den gesamten Body mit diesem HTML-Tag am Anfang:
<font face=""Arial"">
Da das Ganze in Anführungszeichen übergeben wird, musst du je zwei doppelte Anführungszeichen vor und nach "Arial" verwenden. Ganz an's Ende des Bodys kommt dann dieser HTML-Tag:
</font>
zu 2.
Für Hyperlinks gibt es folgenden HTML-Tag:
<a href=""https://www.herber.de"">https://www.herber.de</a>
wobei die URL in Anführungszeichen (auch hier wieder doppelt!) die Adresse des Lins angibt und die zweite URL den Text darstellt, der den Link enthält.
zu 3.
Bilder kannst du mit folgendem HTML-Tag einfügen (es wird hier ausnahmsweise nur ein einzelnes Tag benögigt):
<img src="C:\DeinBild.jpg">
zu 4.
Wenn die Zahl in der Variablen "Betrag" steht, dann füge nicht einfach die Variable ein, sondern wandle die enthaltene Zahl in formatierten Text um. Also statt
"Das kostet " & Betrag & " Euro."
folgendes:
"Das kostet " & Format(Betrag, "# ##0,00") & " Euro"
Gruß Ingolf
Anzeige
AW: Email-Body formatieren...
21.11.2006 20:09:11
Michel
Hallo lieber Ingolf,
phantastisch legendär!! Super & herzlichen Dank !! Das hilft mir klasse weiter !!
Ich würde das alles mal gerne selber können - muss mir mal den VBA-Schmöker krallen.
Nur eines klappt noch nicht: das mit dem Bild einfügen. Tatsächlich möchte ich ja gar kein Bild einfügen, sondern nur etwas aus der Zwischenablage, was ich eine Sekunde vorher reinkopiert habe.
Bin sicher, dass das auch geht - weiß nur leider überhaupt nicht, wie das geht.
Und..wie kann ich bei folgendem Befehl nur den Monat darstellen: FormatDateTime(Date , vb LongDate) - er wirft mir immer nur z.B. "21 November 2006" raus - ich möchte aber gerne nur "November 2006" da stehen haben. Ist wahrscheinlich sehr einfach...
Könntest Du mir noch einmal helfen?
Herzlichen Dank!!
Michel
Anzeige
AW: Email-Body formatieren...
22.11.2006 22:55:12
IngGi
Hallo Michel,
wegen der Geschichte mit der Zwischenablage musste ich erst selbst ein bißchen googlen. Das ist nicht so einfach und überhaupt nur möglich, wenn sich das, was du kopiert hast, als Text interpretieren läßt. Dann bekommst du den Inhalt der Zwischenablage mit folgenden Programmzeilen in die Stringvariable strDaten:
Dim objData As DataObject
Dim strDaten As String
Set objData = New DataObject
objData.GetFromClipboard
strDaten = objData.GetText
Wenn du den Inhalt einer Excelzelle kopierst, hängt hinten automatisch noch eine Zeilenschaltung (2 Zeichen, Hex 0D 0A) dran. Die musst du noch abschneiden:
strDaten = Left(strDaten, Len(strDaten) - 2)
Die Datumsformatierung funktioniert mit
Format(Date, "MMMM JJJJ")
Gruss Ingolf
Anzeige
AW: Email-Body formatieren...
23.11.2006 08:50:56
IngGi
Hallo Michel,
eines habe ich noch vergessen. Damit das auch läuft, musst du im VBA-Editor über Extras-Verweise einen Verweis auf die Objektbibliothek "Microsoft Forms 2.0 Object Library" setzen.
Gruß Ingolf
AW: Email-Body formatieren...
23.11.2006 13:31:36
Michel
Hallo lieber Ingolf,
erneut herzlichen Dank für Deine Hilfe!
Das mit dem Kopieren aus der Zwischenablage ist schwierig, weil es sich um eine Graphik handelt und nicht um Text (genau genommen ist es eine Photographie eines Teilbereichs aus einer anderen Tabelle). Aber das ist eigentlich auch nicht so wichtig, da ich ohnehin schon sehr viel automatisiert habe, so dass ich den letzten Teil auch noch grad manuell machen kann.
Das mit der Datumsformatierung hat super geklappt.
Vielen Dank und herzliche Grüße,
Michel
Anzeige
AW: Email-Body formatieren...
20.11.2006 12:48:43
Nepumuk
Hallo Michel,
Body ist eine Eigenschaft und kein Objekt. Da kannst du nichts formatieren. Du kannst aber die HTMLBody-Eigenschaft benutzen. Diese kann HTML-Code interpretieren und damit bestimmte Formate annehmen.
Gruß
Nepumuk
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Email-Body formatieren mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um den Email-Body in Excel mit VBA zu formatieren, kannst du die htmlbody-Eigenschaft der Outlook-Mail verwenden. Hier ist ein einfaches Beispiel, wie du dies umsetzen kannst:

  1. Öffne den VBA-Editor in Excel (ALT + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Kopiere den folgenden Code in das Modul:

    Sub eMail_versenden()
       Dim olApp As Object
       Dim olMail As Object
    
       Set olApp = CreateObject("Outlook.Application")
       Set olMail = olApp.CreateItem(0)
    
       olMail.htmlbody = "<b>Fett</b> <i>Kursiv</i> <u>Unterstrichen</u>"
       olMail.Display
    End Sub
  4. Führe das Makro aus (F5), um die formatierte Email zu generieren.

Mit diesem Code kannst du grundlegende HTML-Formatierungen wie Fett, Kursiv und Unterstrichen für den Email-Body einfügen.


Häufige Fehler und Lösungen

  • Fehler: "Compilation Error" beim Hyperlink
    Stelle sicher, dass du den HTML-Tag korrekt verwendest:

    olMail.htmlbody = "<a href=""https://www.beispiel.de"">Beispiel Link</a>"
  • Fehler: Schriftart nicht gesetzt
    Um die Schriftart für den gesamten Body zu setzen, verwende den <font>-Tag:

    olMail.htmlbody = "<font face=""Arial"">Dein Text hier</font>"

Alternative Methoden

Du kannst auch die body-Eigenschaft verwenden, aber diese unterstützt keine HTML-Formatierungen. Verwende daher immer htmlbody, um vba email html body format korrekt umzusetzen.


Praktische Beispiele

  • Text mit verschiedenen Formatierungen
    Um mehrere Textformatierungen in einem Email-Body zu kombinieren:

    olMail.htmlbody = "<font face=""Arial""><b>Wichtige Nachricht:</b><br>Hier ist <i>kursiver Text</i> und <u>unterstrichener Text</u>.</font>"
  • Bild aus der Zwischenablage einfügen
    Um ein Bild, das sich in der Zwischenablage befindet, einzufügen, kannst du den <img>-Tag verwenden, allerdings ist dies nur möglich, wenn das Bild lokal gespeichert ist:

    olMail.htmlbody = "<img src=""C:\DeinBild.jpg"">"

Tipps für Profis

  • Formatierung von Zahlen
    Um Zahlen im gewünschten Format anzuzeigen, verwende:

    Dim Betrag As Double
    Betrag = 1000.235
    olMail.htmlbody = "Das kostet " & Format(Betrag, "#,##0.00") & " Euro."
  • Verweis auf Objektbibliothek setzen
    Vergiss nicht, im VBA-Editor unter "Extras" > "Verweise" den Verweis auf die "Microsoft Forms 2.0 Object Library" zu setzen, um mit der Zwischenablage arbeiten zu können.


FAQ: Häufige Fragen

1. Wie kann ich die Schriftart für den gesamten Email-Body festlegen?
Du kannst die Schriftart in den <font>-Tags um den gesamten Text setzen:

olMail.htmlbody = "<font face=""Arial"">Hier ist der gesamte Text.</font>"

2. Wie füge ich einen Link in den Email-Body ein?
Verwende den <a>-Tag, um einen Hyperlink zu erstellen:

olMail.htmlbody = "<a href=""https://www.beispiel.de"">Klicke hier</a>"

3. Kann ich mehrere Formatierungen in einer Zeile kombinieren?
Ja, du kannst HTML-Tags kombinieren, um verschiedene Formatierungen in einer Zeile zu verwenden:

olMail.htmlbody = "<b>Fett</b> und <i>Kursiv</i> in einem Satz."

4. Wie formatiere ich das Datum?
Verwende die Funktion Format für die Datumsformatierung:

olMail.htmlbody = "Heute ist der " & Format(Date, "MMMM JJJJ")

Durch diese Anleitung kannst du den Email-Body in Excel mit VBA effektiv formatieren und anpassen, um ansprechende und gut strukturierte Emails zu erstellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige