Outlook Code zum E-Mail erstellen
#1
Moin,
ich experimentiere mal wieder ein wenig herum und möchte eine Outlook-Vorlage via Code erstellen.
Ich selbst nutze bei Vorlagen den Klassischen weg, aber darum geht es nicht.

Ich habe zum Testen einen Code erstellt und der macht im Grunde das, was er soll.
Outlook öffnet sich, Empfänger und Betreff werden gefüllt und Text und Signatur angezeigt.

Was mich stutzig machte, war die Reihenfolge, wie der Code erstellt werden musste, damit die Texte und Signatur in der richtigen Abfolge stehen.
Um die richtige Reihenfolge der Text-Bodys zu erhalten, musste ich im Code mit der Signatur anfangen.
Was als Letztes im Code steht, wird als Erstes angezeigt. Warum das nur so funktioniert, habe ich nicht verstanden?

Dann würde ich ganz gerne weitere Formatierungen im Text vornehmen, aber das bekomme ich nicht hin.
Wie z. B. ein Wort im Text "fett" oder "unterstrichen" oder mit anderen "Farbe" hervorheben.
Auch eine Linie quer über die Mail, um Textpassagen voneinander zu trennen.
Ein Foto/Bild zwischen den Text oder als Anhang einfügen, wäre sehr interessant, hatte bislang nicht geklappt.

Im Anhang mein zusammen-gegoogelter Code.
Leider ließ sich der Code nicht in diesem Beitrag darstellen.



Gruß
Björn


Angehängte Dateien
.docx   Sub EMail erstellen.docx (Größe: 12,68 KB / Downloads: 2)
Antworten Top
#2
Hallöchen,

zuerst mal ein Hinweis zum Einstellen von Code. Das geht ganz einfach mit den "Code-Tags", die man über die Schaltfläche über der Texteingabe schalten kann. Um was es bei den Schaltflächen geht, sieht man, wenn man drüber fährt und kurz verweilt. Code wäre die 5. von rechts Smile


Code:
Sub EMail_erstellen()
Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
.To = "tester.test@test.de"
.CC = "Muster@muster.de"
.Subject = "Halli-Hallo"

.GetInspector
.HTMLBody = "<span style='font-family:Arial;font-size:12pt;'>" _
& "</span><br>" & .HTMLBody
.Display

.BodyFormat = 2
.HTMLBody = "<span style='font-family:Arial;font-size:9pt;'>" _
& "Test<br>" _
& "Test<br>" _
& "Test</span><br><br>" & .HTMLBody
.Display

.HTMLBody = "<span style='font-family:Arial;font-size:20pt;'>" _
& "Test<br>" _
& "Test<br>" _
& "Test</span><br><br>" & .HTMLBody
.Display

End With

Set objMail = Nothing
Set objOutlook = Nothing

End Sub

Formatierungen für den html-body kannst Du Dir per google raussuchen. Eine Zeile könnte dann so aussehen

PHP-Code:
"<font color =ffc6c3 Test </font><br>" 
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo schauan,
vorab danke für den Hinweis, wie ich den Code in einen Beitrag darstellen kann.

Worüber ich gar nicht gestolpert bin, war die Art meine Suche.
Ich hatte immer nach Outlook VBA xxxx gesucht, anstatt nach HTMLBody xxxxx.
So konnte ich die meisten meiner Fragen selbst beantworten.

Was allerdings überhaupt nicht funktioniert, ist ein Bild einzufügen.
Outlook setzt einen Platzhalter, aber das Bild wird nicht durch die Pfadangabe gefunden???

Code:
.HTMLBody = "<img src=""C:\Users\Björn\Desktop\Logo.jpg"" width=""150"" height=""150"" align=""top"" alt=""XXX""><br>" & .HTMLBody

Was ist falsch?

Gruß
Björn
Antworten Top
#4
Hallöchen,

Du müsstest das Bild als "unsichtbares" Attachment einfügen und dann nochmal im Body platzieren.

Im Prinzip so:

Code:
...
    strFile = "c:\temp\zweiter.png"
    .Attachments.Add strFile, 1, 0
    .HTMLBody = "<html><p>Hallöchen</p>" & _
                "<img src=""cid:zweiter.png""height=520 width=750>"
...

Siehe dazu auch microsoft - outlook.attachments.add
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
(18.02.2023, 12:34)Björn.412 schrieb: Was als Letztes im Code steht, wird als Erstes angezeigt. Warum das nur so funktioniert, habe ich nicht verstanden?
Du hast mehrere ".htmlBody"-Tags drin. Das letzte Tag überschreibt das bereits vorhandene. Das Body-Tag darf nur einmal vorhanden sein. Und es reicht ein ".display".

Zur Textformatierung geht auch das:
https://www.rholtz-office.de/outlook/ema...llen_teil2
https://www.rholtz-office.de/outlook/ema...llen_teil3
https://www.rholtz-office.de/outlook/ema...llen_teil4
Antworten Top
#6
Moin,
das ist mal wieder zu hoch für mich.
Ich habe mit Deinem Code experimentiert und immer wird der Pfad nicht gefunden.

Sehe ich das richtig, dass die strFile variable als "variant" gesetzt wird?

Code:
Sub EMail_erstellen()

Dim objOutlook   As Object
Dim objMail      As Object
Dim strFile      As Variant

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
.To = "tester.test@test.de"
.CC = "Muster@muster.de"
.Subject = "Halli-Hallo"


    strFile = "C:\User\Björn\Bilder\Logo.jpg"
    .Attachments.Add strFile, 1, 0
    .HTMLBody = "<html><p>Hallöchen</p>" & _
                "<img src=""cid:Logo.jpg""height=150 width=150>" & _
"<span style='font-family:Arial;font-size:20pt;'>" & _
"<b>Test</b><br>" & _
"<i>Test</i><br>" & _
"<u>Test</u><br>" & _
"<font color=red>Test-1</font><br>" & _
"<span style=""background-color:rgb(150,150,150)"">Dieser Text ist grau gemarkert</span><br>" & _
"Test</span><br><br>" & _
"<span style='font-family:Arial;font-size:12pt;'>" & _
"Test<br>" & _
"<center>Dies ist ein zentrierter Absatz.</center>" & _
"Test<br>" & _
"Test<hr><br>" & _
.GetInspector.Display & _
.HTMLBody

'.HTMLBody = "<img src=""Logo"" width=""150"" height=""150"" align=""top""><br>" & .HTMLBody
'.Display


End With

Set objMail = Nothing
Set objOutlook = Nothing


End Sub

Gruß
Björn

Hallo mumpel,
danke für den Hinweis, ich konnte so den Code verkürzen und in die richtige Abfolge bringen.

Witzigerweise hatte ich das so im Internet gefunden ... war wohl von jemanden wie ich, ein blutiger Anfänger.

Gruß Björn
Antworten Top
#7
Hallöchen,

strFile ist ein string
Schaue mal ob es mit users klappt. 21
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Bei "src" muss der Pfad angegeben werden, kein Text.
Antworten Top
#9
Hallo René,

das funktioniert ohne Pfad, weil da auf das zuvor unsichtbar eingefügte Attachment zugegriffen wird. Der Fehler dürfte nur das fehlende s bei users sein.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
Hallo schauan und mumpel,
danke für Eure Unterstützung.

Das "s" und die Variable AS String hat nichts geändert.
Der Pfad wird nicht gefunden.
Der Code stoppt bei ".Attachments.Add".

Da der Code nicht bis "img src" ausgeführt wird, müssen wir die Frage, was nach src zu stehen hat, vertagen.

Gruß
Björn
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste