{"id":55000309,"date":"2022-04-01T00:00:00","date_gmt":"2023-08-30T13:11:53","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=309"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"EMails_per_VBA_erstellen_mit_CreateItem_","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/EMails_per_VBA_erstellen_mit_CreateItem_\/","title":{"rendered":"E-Mails per VBA erstellen mit CreateItem"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/1aeec4551eea4030ad0888be28463de0\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wie man mit Outlook eine E-Mail erstellt, diese mit Betreff, Inhalt, Anlagen, Empf&auml;nger und so weiter f&uuml;llt und diese dann verschickt, wei&szlig; mittlerweile jeder. Aber was, wenn man das Erstellen von E-Mails automatisieren m&ouml;chte und dazu VBA nutzen will? Beispielsweise, um auf Knopfdruck eine Standardmail an einen Empf&auml;nger zu schicken oder auch eine Mail an eine Liste von Kunden zu senden? Der vorliegende Artikel zeigt, wie Sie per VBA neue E-Mails erstellen und diese dann entweder zum Betrachten, Nachbearbeiten und zum manuellen Senden anzeigen oder diese sofort auf den Weg zum Empf&auml;nger bringen.<\/b><\/p>\n<h2>Einfache E-Mails programmieren<\/h2>\n<p>Unabh&auml;ngig von den vielen Anwendungsf&auml;llen, die wir uns f&uuml;r das VBA-gesteuerte Erstellen von E-Mails vorstellen k&ouml;nnen, schauen wir uns in diesem Artikel erst einmal die technische Seite an. Dabei wollen wir eine einfache E-Mail wie die aus Bild 1 erstellen &#8211; also den Empf&auml;nger festlegen und den Betreff und den Inhalt eintragen. Als Abschluss wollen wir noch ein Attachment hinzuf&uuml;gen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_001.png\" alt=\"Zu erstellende E-Mail\" width=\"599,6265\" height=\"488,0905\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Zu erstellende E-Mail<\/span><\/b><\/p>\n<h2>Beispielcode in neuem Modul<\/h2>\n<p>Den Beispielcode zum Erstellen einer solchen E-Mail bringen wir in einem neuen Modul im VBA-Projekt des VBA-Editors unter, wo wir diesen leicht ausf&uuml;hren k&ouml;nnen. In weiteren Artikeln schauen wir uns an, wie wir solche und andere Prozeduren &uuml;ber das Ribbon starten k&ouml;nnen &#8211; entweder durch manuelle, benutzerdefinierte Anpassungen oder auch durch das Bereitstellen von Code und Ribbon-Anpassungen mit COM-Add-Ins.<\/p>\n<p>Dazu &ouml;ffnest Du den VBA-Editor (am schnellsten mit der Tastenkombination <b>Alt + F11<\/b>) und w&auml;hlst den Men&uuml;befehl <b>Einf&uuml;gen|Modul <\/b>aus. Damit Du den gleich erstellten Code sp&auml;ter schnell wiederfindest, &auml;ndern wir gleich den Namen des neuen Moduls. Dazu markieren wir das Modul im <b>Projekt<\/b>-Explorer (<b>Strg + R<\/b>) und passen dann den Namen im <b>Eigenschaften<\/b>-Bereich an (<b>F4<\/b>) und geben f&uuml;r die Eigenschaft <b>(Name) <\/b>den Wert <b>mdlEMailsErstellen <\/b>ein (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_002.png\" alt=\"Umbenennen des VBA-Moduls\" width=\"424,6267\" height=\"364,9602\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Umbenennen des VBA-Moduls<\/span><\/b><\/p>\n<h2>Leere E-Mail erstellen<\/h2>\n<p>Danach beginnen wir mit dem Erstellen und Anzeigen einer neuen, leeren E-Mail. Dazu legen wir eine neue Prozedur namens <b>LeereEMailErstellen <\/b>an.<\/p>\n<p>Hier kannst Du nun direkt mit dem Programmieren beginnen, und zwar mit der folgenden kleinen Prozedur. Diese deklariert eine Objektvariable des Typs <b>MailItem <\/b>und f&uuml;llt diese durch den Aufruf der Methode <b>Create-Item<\/b>. Diese Methode k&ouml;nnen wir zum Erstellen aller in Outlook verwendeter Elemente wie E-Mails, Kontakte, Termine, Aufgaben, Notizen et cetera nutzen.<\/p>\n<p>Dazu m&uuml;ssen wir lediglich den Typ des zu erstellenden Elements in Form einer Konstanten f&uuml;r den einzigen Parameter der Methode <b>CreateItem <\/b>&uuml;bergeben. Im Falle einer E-Mail handelt es sich dabei um die Konstante <b>olMailItem<\/b>. Damit haben wir, auch wenn wir diese noch nicht sehen, bereits eine neue E-Mail erstellt. Um diese sichtbar zu machen, rufen wir noch die Methode <b>Display <\/b>der Objektvariablen mit der neuen E-Mail auf:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>LeereEMailErstellen()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>MailItem\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = Application.CreateItem(olMailItem)\r\n     objMailItem.Display\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Um diese Prozedur auszuf&uuml;hren, platzieren wir einfach die Einf&uuml;gemarke innerhalb der Prozedur und bet&auml;tigen die Taste <b>F5<\/b>. Das funktioniert wie gew&uuml;nscht: Es erscheint eine neue, leere E-Mail (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_003.png\" alt=\"Eine per VBA erstellte E-Mail\" width=\"499,6267\" height=\"406,6914\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Eine per VBA erstellte E-Mail<\/span><\/b><\/p>\n<h2>Parameter der Display-Methode<\/h2>\n<p>Die <b>Display<\/b>-Methode bietet einen Parameter namens <b>Modal <\/b>an, der standardm&auml;&szlig;ig auf <b>False <\/b>eingestellt ist. Wenn Sie diesen auf True einstellen, wird die E-Mail als modales Fenster ge&ouml;ffnet. Das hei&szlig;t, dass der Benutzer erst mit Outlook weiterarbeiten kann, wenn er die E-Mail auf irgendeine Art geschlossen hat &#8211; entweder durch Versenden oder durch anderweitiges Schlie&szlig;en:<\/p>\n<pre>objMailItem.Display <span style=\"color:blue;\">True<\/span><\/pre>\n<p>F&uuml;r Experimente mit den in diesem Artikel vorgestellten Beispielen ist die Einstellung des Parameters <b>Modal <\/b>auf den Wert <b>True<\/b> recht praktisch, da das VBA-Fenster immer den Fokus beh&auml;lt und gegebenenfalls ge&ouml;ffnete Inspector-Fenster mit E-Mails verdeckt.<\/p>\n<h2>Eigenschaften der E-Mail einstellen<\/h2>\n<p>Nun wollen wir die Eigenschaften wie den Empf&auml;nger, den Betreff und den Inhalt der E-Mail einstellen. Dazu deklarieren wir in einer neuen Prozedur namens <b>EMailErstellen <\/b>eine weitere Variable namens <b>strBody<\/b> (siehe Listing 1). In dieser stellen wir den Inhalt der E-Mail zusammen, bevor wir ihn zuweisen. Zuvor jedoch weisen wir der Eigenschaft <b>To <\/b>den Empf&auml;nger zu und der Eigenschaft <b>Subject <\/b>den Betreff der E-Mail.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>EMailErstellen()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>strBody<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = Application.CreateItem(olMailItem)\r\n     <span style=\"color:blue;\">With<\/span> objMailItem\r\n         .To = \"andre@minhorst.com\"\r\n         .Subject = \"Beispielmail\"\r\n         strBody = \"Hallo Andr&eacute;, \" & <span style=\"color:blue;\">vbCrLf<\/span> & <span style=\"color:blue;\">vbCrLf<\/span>\r\n         strBody = strBody & \"ich hoffe, es geht Dir gut! Anbei findest Du das gew&uuml;nschte Bild.\" & <span style=\"color:blue;\">vbCrLf<\/span> & <span style=\"color:blue;\">vbCrLf<\/span>\r\n         strBody = strBody & \"Viele Gr&uuml;&szlig;e\" & <span style=\"color:blue;\">vbCrLf<\/span>\r\n         strBody = strBody & \"Klaus\"\r\n         .Body = strBody\r\n         .Display\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Code zum Erstellen einer Mail mit Empf&auml;nger, Betreff und Inhalt<\/span><\/b><\/p>\n<p>Danach weisen wir der Variablen <b>strBody <\/b>die erste Zeile des Inhalts zu und f&uuml;gen dieser mit der Konstanten <b>vbCrLf <\/b>zwei Zeilenumbr&uuml;che hinzu. Die n&auml;chste Anweisung greift den Inhalt von <b>strBody <\/b>auf und f&uuml;gt diesem eine weitere Zeile samt Zeilenumbr&uuml;chen hinzu &#8211; und so stellen wir den kompletten Inhalt der E-Mail zusammen. Ist der Inhalt in <b>strBody <\/b>zusammengestellt, weisen wir diesen der Eigenschaft <b>Body <\/b>des <b>MailItem<\/b>-Elements zu. Schlie&szlig;lich zeigen wir die vollst&auml;ndige E-Mail wieder mit der <b>Display<\/b>-Methode an.<\/p>\n<p>Da wir in dieser Prozedur oft auf Eigenschaften und Methoden des Elements <b>objMailItem <\/b>zugreifen, haben wir diese mit dem <b>With<\/b>-Schl&uuml;sselwort referenziert. Zwischen dieser Zeile und der Zeile <b>End With <\/b>k&ouml;nnen wir dann &uuml;ber die Punkt-Syntax auf die Eigenschaften und Methoden zugreifen, ohne jedes Mal explizit das Element <b>objMailItem <\/b>angeben zu m&uuml;ssen.<\/p>\n<p>F&uuml;hren wir nun diese Prozedur mit <b>F5 <\/b>aus, erscheint schon fast die eingangs beschriebene E-Mail &#8211; es fehlt lediglich noch die Anlage. Wir wollen der E-Mail noch eine Datei namens <b>pic001.png <\/b>hinzuf&uuml;gen.<\/p>\n<h2>Anlagen zu einer E-Mail hinzuf&uuml;gen<\/h2>\n<p>F&uuml;r das Hinzuf&uuml;gen von Anlagen bietet das MailItem-Element die Auflistung <b>Attachments <\/b>an. Um dieser eine Anlage hinzuzuf&uuml;gen, w&auml;hlen wir dessen Methode <b>Add <\/b>mit IntelliSense aus (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_005.png\" alt=\"Methoden per IntelliSense ausw&auml;hlen\" width=\"549,6265\" height=\"336,0164\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Methoden per IntelliSense ausw&auml;hlen<\/span><\/b><\/p>\n<p>Nachdem wir das getan haben, k&ouml;nnen wir als Parameter den Namen der hinzuzuf&uuml;genden Datei angeben.  Diesen speichern wir in einer Variablen namens <b>strAttachment<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>strAttachment<span style=\"color:blue;\"> As String<\/span><\/pre>\n<p>Die Zuweisung erfolgt beispielsweise wie folgt (den Pfad haben wir abgek&uuml;rzt):<\/p>\n<pre>strAttachment = \"c:\\...\\pic001.png\"<\/pre>\n<p>Und schlie&szlig;lich weisen wir das Attachment der E-Mail zu. Diese zus&auml;tzliche Zeile f&uuml;gen wir unmittelbar vor der Zeile mit der <b>Display<\/b>-Anweisung zum Anzeigen der E-Mail ein:<\/p>\n<pre>objMailitem.Attachments.Add strAttachment<\/pre>\n<p>F&uuml;hren wir die neue Version der Prozedur aus, erhalten wir genau die eingangs beschriebene E-Mail<\/p>\n<h2>E-Mail direkt nach dem Erstellen versenden<\/h2>\n<p>Wenn wir die neue E-Mail mit der <b>Display<\/b>-Methode anzeigen, kann der Benutzer diese noch kontrollieren, gegebenenfalls anpassen und sie dann mit einem Klick auf die <b>Senden<\/b>-Schaltfl&auml;che auf den Weg bringen. Vielleicht m&ouml;chtest Du dies gar nicht tun, sondern die E-Mail direkt verschicken. Dann brauchst Du nur den Aufruf der <b>Display<\/b>-Methode durch den der <b>Send<\/b>-Methode zu ersetzen:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>EMailErstellen()\r\n     ...\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = Application.CreateItem(olMailItem)\r\n     <span style=\"color:blue;\">With<\/span> objMailItem\r\n         ...\r\n         .Send\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies verschickt die E-Mail wie andere E-Mails auch, die Du &uuml;ber die Benutzeroberfl&auml;che versendest. Genau wie diese E-Mails landen auch per VBA versendete E-Mails im Ordner <b>Gesendete Elemente<\/b>.<\/p>\n<h2>Mehrere Empf&auml;nger hinzuf&uuml;gen<\/h2>\n<p>Wenn die E-Mail im Feld <b>To <\/b>mehrere Empf&auml;nger enthalten soll, gibt es zwei M&ouml;glichkeiten:<\/p>\n<ul>\n<li>Empf&auml;nger durch Semikola getrennt der Eigenschaft <b>To <\/b>zuweisen<\/li>\n<li>Empf&auml;nger zur Auflistung <b>Recipients <\/b>hinzuf&uuml;gen<\/li>\n<\/ul>\n<p>Die erste Variante sieht wie folgt aus:<\/p>\n<pre>objMailitem.To = \"andre@minhorst.com;info@amvshop.de\"<\/pre>\n<p>Bei der zweiten Variante ist etwas mehr Aufwand erforderlich &#8211; daf&uuml;r muss man die Empf&auml;nger nicht zu einer semikola-separierten Liste zusammenstellen:<\/p>\n<pre>objMailitem.Recipients.Add \"andre@minhorst.com\"\r\nobjMailitem.Recipients.Add \"info@amvshop.de\"<\/pre>\n<p>Dies wiederholt man f&uuml;r alle Empf&auml;nger, welche die E-Mail erhalten sollen &#8211; das Ergebnis ist das Gleiche wie zuvor.<\/p>\n<h2>Empf&auml;nger mit CC und BCC<\/h2>\n<p>M&ouml;chtest Du der E-Mail weitere Empf&auml;nger hinzuf&uuml;gen, welche die E-Mail als <b>CC <\/b>oder <b>BCC <\/b>erhalten, kannst Du die gleichnamigen Eigenschaften dazu nutzen. Das sieht wie folgt aus:<\/p>\n<pre>objMailitem.CC = \"andre@minhorst.com\"\r\nobjMailitem.BCC = \"info@amvshop.de\"<\/pre>\n<p>Das Ergebnis sehen wir in Bild 5.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_004.png\" alt=\"Per CC und BCC hinzugef&uuml;gte Empf&auml;nger\" width=\"424,6267\" height=\"309,8893\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Per CC und BCC hinzugef&uuml;gte Empf&auml;nger<\/span><\/b><\/p>\n<h2>Weitere Eigenschaften einstellen<\/h2>\n<p>Eine weitere Eigenschaft, die der eine oder andere gern einstellt, um seinen E-Mails eine andere Priorit&auml;t zu geben, finden wir rechts im Ribbon einer neuen E-Mail (siehe Bild 6). Die beiden markierten Schaltfl&auml;chen stehen wir <b>Wichtigkeit: hoch <\/b>und <b>Wichtigkeit: niedrig<\/b>. Auch diese k&ouml;nnen wir beim Erstellen einer E-Mail per VBA einstellen. Dazu nutzen wir die Eigenschaft <b>Importance<\/b>, der wir einen der folgenden Werte zuweisen k&ouml;nnen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_006.png\" alt=\"Weitere Eigenschaften von E-Mails\" width=\"700\" height=\"125,8016\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Weitere Eigenschaften von E-Mails<\/span><\/b><\/p>\n<ul>\n<li><b>olImportanceHigh<\/b><\/li>\n<li><b>olImportanceLow<\/b><\/li>\n<li><b>olImportanceNormal<\/b><\/li>\n<\/ul>\n<p>Dabei ist <b>olImportanceNormal <\/b>der Standardwert. Um eine E-Mail mit hoher Priorit&auml;t zu verschicken, weisen wir dieser &uuml;ber die Eigenschaft <b>Importance <\/b>den Wert <b>olImportanceHigh <\/b>zu:<\/p>\n<pre>objMailitem.Importance = olImportanceHigh<\/pre>\n<p>Und auch das beliebte Anfordern einer Lesebest&auml;tigung (und auch einer Zustellbest&auml;tigung) k&ouml;nnen wir sowohl beim Erstellen einer E-Mail &uuml;ber die Benutzeroberfl&auml;che (siehe Bild 7) als auch per VBA realisieren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_007.png\" alt=\"Anforderung verschiedener Best&auml;tigungen\" width=\"574,6265\" height=\"430,5253\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Anforderung verschiedener Best&auml;tigungen<\/span><\/b><\/p>\n<p>Die f&uuml;r das Anfordern einer Lesebest&auml;tigung ben&ouml;tigte Eigenschaft hei&szlig;t <b>ReadReceiptRequested <\/b>und nimmt die Werte <b>True <\/b>oder <b>False <\/b>entgegen. Eine Zustellungsbest&auml;tigung liefert <b>OriginatorReportRequested<\/b>:<\/p>\n<pre>objMailItem.ReadReceiptRequested = <span style=\"color:blue;\">True<\/span>\r\nobjMailItem.OriginatorDeliveryReportRequested = <span style=\"color:blue;\">True<\/span><\/pre>\n<h2>Textformatierung einstellen<\/h2>\n<p>W&auml;hrend f&uuml;r die meisten E-Mails die Darstellung als reiner Text ausreichen d&uuml;rfte, m&ouml;chte man doch manchmal eine schicke Signatur mit Logo verwenden oder Bilder oder Screenshots in den Text einarbeiten. Gegebenenfalls ist auch die Formatierung des Textes erw&uuml;nscht. Um das Format des Mailinhalts einzustellen, k&ouml;nnen wir die Eigenschaft <b>BodyFormat <\/b>verwenden. Diese bietet die folgenden Werte an:<\/p>\n<ul>\n<li><b>olFormatHTML<\/b> (<b>2<\/b>): Standardeinstellung. Hier stehen alle Formatierungsm&ouml;glichkeiten zur Verf&uuml;gung. Die HTML-Variante des E-Mail-Inhalts steht &uuml;ber die Eigenschaft <b>HTMLBody <\/b>zur Verf&uuml;gung.<\/li>\n<li><b>olFormatPlain <\/b>(<b>1<\/b>): Reines Textformat.<\/li>\n<li><b>olFormatRichText<\/b> (3): Hier stehen alle Formatierungsm&ouml;glichkeiten zur Verf&uuml;gung. Die HTML-Variante des E-Mail-Inhalts steht &uuml;ber die Eigenschaft <b>HTMLBody <\/b>zur Verf&uuml;gung.<\/li>\n<li><b>olFormatUnspecified<\/b> (0): Kein Format angegeben.<\/li>\n<\/ul>\n<p>Der Unterschied zwischen <b>olFormatHTML <\/b>und <b>olFormatRichText <\/b>liegt in der Verwendung etwas unterschiedlicher HTML-Auszeichnungen. <\/p>\n<h2>HTML-Text angeben<\/h2>\n<p>Egal, welchen Wert wir f&uuml;r die Eigenschaft <b>BodyFormat <\/b>einstellen: Wenn wir nur einen Text f&uuml;r die Eigenschaft Body hinterlegen, generiert Outlook automatisch eine HTML-formatierte Version. Diese k&ouml;nnen wir &uuml;ber die Eigenschaft <b>HTMLBody <\/b>abrufen. F&uuml;r unsere Beispielnachricht sieht dieser wie folgt aus:<\/p>\n<pre>&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 3.2\/\/EN\"&gt;\r\n&lt;HTML&gt;\r\n&lt;HEAD&gt;\r\n&lt;META NAME=\"Generator\" CONTENT=\"MS Exchange Server version 16.0.15511.20000\"&gt;\r\n&lt;TITLE&gt;&lt;\/TITLE&gt;\r\n&lt;\/HEAD&gt;\r\n&lt;BODY&gt;\r\n&lt;!-- Converted from text\/plain format --&gt;\r\n&lt;P&gt;&lt;FONT SIZE=2&gt;Hallo Andr&eacute;,&lt;BR&gt;\r\n&lt;BR&gt;\r\nich hoffe, es geht Dir gut! Anbei findest Du das gew&uuml;nschte Bild.&lt;BR&gt;\r\n&lt;BR&gt;\r\nViele Gr&uuml;&szlig;e&lt;BR&gt;\r\nKlaus&lt;\/FONT&gt;\r\n&lt;\/P&gt;\r\n&lt;\/BODY&gt;\r\n&lt;\/HTML&gt;<\/pre>\n<p>Wenn wir den Text direkt beim Anlegen der E-Mail mit HTML-Auszeichnungen versehen wollen, k&ouml;nnen wir das ebenfalls per VBA erledigen. Dazu brauchen wir nur den entsprechenden HTML-Text zusammenzustellen und weisen diesen dann nicht der Eigenschaft <b>Body <\/b>zu, sondern <b>HTMLBody<\/b>. Im Beispiel aus Listing 2 haben wir einmal einige HTML-Tags zu unserem Beispielinhalt hinzugef&uuml;gt, darunter auch eine fette Auszeichnung.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>HTMLEMailErstellen()\r\n     <span style=\"color:blue;\">Dim <\/span>objMailItem<span style=\"color:blue;\"> As <\/span>MailItem\r\n     <span style=\"color:blue;\">Dim <\/span>strBody<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strAttachment<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objMailItem = Application.CreateItem(olMailItem)\r\n     <span style=\"color:blue;\">Dim <\/span>objRecipient<span style=\"color:blue;\"> As <\/span>Outlook.Recipient\r\n     <span style=\"color:blue;\">With<\/span> objMailItem\r\n         .To = \"andre@minhorst.com\"\r\n         .BodyFormat = olFormatHTML\r\n         .Subject = \"Beispielmail\"\r\n         strBody = \"&lt;p&gt;Hallo Andr&eacute;,&lt;\/p&gt;\" & <span style=\"color:blue;\">vbCrLf<\/span> & <span style=\"color:blue;\">vbCrLf<\/span>\r\n         strBody = strBody & \"&lt;p&gt;ich hoffe, &lt;b&gt;es geht Dir gut&lt;\/b&gt;! Anbei findest Du das gew&uuml;nschte Bild.&lt;\/p&gt;\" & <span style=\"color:blue;\">vbCrLf<\/span> & <span style=\"color:blue;\">vbCrLf<\/span>\r\n         strBody = strBody & \"&lt;p&gt;Viele Gr&uuml;&szlig;e&lt;\/p&gt;\" & <span style=\"color:blue;\">vbCrLf<\/span>\r\n         strBody = strBody & \"&lt;p&gt;Klaus&lt;\/p&gt;\"\r\n         .HTMLBody = strBody\r\n         <span style=\"color:blue;\">Debug.Print<\/span> .HTMLBody\r\n         .Display\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Erstellen einer E-Mail mit HTML-Inhalt<\/span><\/b><\/p>\n<p>Diese E-Mail sieht nach dem Erstellen wie in Bild 8 aus. Wenn Du eine solche E-Mail erstellst und versendest, wirst Du allerdings feststellen, dass Outlook hier noch einige Auszeichnungen hinzuf&uuml;gt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_309_008.png\" alt=\"E-Mail mit HTML-Body\" width=\"424,6267\" height=\"394,749\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: E-Mail mit HTML-Body<\/span><\/b><\/p>\n<p>Um sich davon zu &uuml;berzeugen, braucht man nur die gesendete E-Mail im Postausgang zu &ouml;ffnen und mit der rechten Maustaste auf den Inhalt zu klicken. Der Kontextmen&uuml;-Befehl Quelle anzeigen liefert dann den von Outlook erzeugten Quellcode, der nicht mehr viel mit dem von uns vorgesehenen Code zu tun hat &#8230;<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Artikel zeigt, wie Du E-Mails per VBA erstellen und versenden kannst. Dabei stellen wir die wichtigsten Eigenschaften vor.<\/p>\n<p>Es gibt noch viel mehr, was wir in Zusammenhang mit dem Versenden von E-Mails besprechen k&ouml;nnten &#8211; zum Beispiel kann man auch die Absenderadresse per VBA einstellen. Das ist allerdings nicht mit einem einfachen Einstellen einer Eigenschaft wie From getan, daher k&uuml;mmern wir uns in einem sp&auml;teren Artikel darum.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie man mit Outlook eine E-Mail erstellt, diese mit Betreff, Inhalt, Anlagen, Empf&auml;nger und so weiter f&uuml;llt und diese dann verschickt, wei&szlig; mittlerweile jeder. Aber was, wenn man das Erstellen von E-Mails automatisieren m&ouml;chte und dazu VBA nutzen will? Beispielsweise, um auf Knopfdruck eine Standardmail an einen Empf&auml;nger zu schicken oder auch eine Mail an eine Liste von Kunden zu senden? Der vorliegende Artikel zeigt, wie Sie per VBA neue E-Mails erstellen und diese dann entweder zum Betrachten, Nachbearbeiten und zum manuellen Senden anzeigen oder diese sofort auf den Weg zum Empf&auml;nger bringen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022022,662022,44000026,44000023],"tags":[],"yst_prominent_words":[],"class_list":["post-55000309","post","type-post","status-publish","format-standard","hentry","category-66022022","category-662022","category-Outlook_programmieren","category-PowerApps"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000309"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000309\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000309"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}