Im ersten Teil wurde der Emailversand mit Outlook erklärt. Bei dieser Variante gibt es sehr viele Optionen um den Emailversand optimal anzupassen. Eine Email mit ganz einfachen Funktionen kann aber auch ohne die Nutzung von Microsoft Outlook sehr einfach und schnell versendet werden.
Teil 1: Per VBA-Makro eine Email mit Outlook versenden
Teil 2: Mit VBA Email versenden ohne Outlook
Email mit FollowHyperlink erzeugen
Die Methode über einen Mailto-Hyperlink ist eine sehr einfache Möglichkeit zum Erzeugen einer Email, allerdings auch mit einem eingeschränkten Funktionsumfang.
Gleich Vorweg, Dateianhänge lassen sich auf diese Weise nicht versenden. Auch an Formatierungen braucht man hier nicht zu denken. Es können einzig simple Textnachrichten versendet werden.
Unterstützt wird der Email-Versand an eine oder mehrere Emailadressen. Auch Kopie-Empfänger (CC) und Blindkopie-Empfänger (BCC) stehen zur Verfügung. Zusätzlich kann der Betreff und die eigentliche Textnachricht innerhalb des FollowHyperlink-Befehls übergeben werden.
Die Email wird jedoch nur für den Versand vorbereitet. Gesendet wird die Emailnachricht vom Anwender anschließend, wie bei selbst erstellten Emails, über den Button “Senden” im jeweils genutzten Emailprogramm.
Der VBA Code kann sowohl mit Outook, als auch mit den meisten alternativen Mail-Programmen genutzt werden.
Sub Email_senden() Dim strEmailadresse As String Dim strCc As String Dim strBcc As String Dim strSubject As String Dim strBody As String strEmailadresse = "email@domain.de" strCc = "email@domain.de" strBcc = "email@domain.de" strSubject = "Betreff" strBody = "Emailtext" ActiveWorkbook.FollowHyperlink Address:="mailto:" & strEmailadresse & _ "?subject=" & strSubject & _ "&cc=" & strCc & _ "&bcc=" & strBcc & _ "&body=" & strBody End Sub
Sonderzeichen im Emailtext
Zu beachten ist zudem, dass einige Sonderzeichen im Emailtext noch mit Hexadezimal-Code zu ersetzen sind. Dafür eignet sich die Funktion Replace() innerhalb des VBA-Codes oder der Text wird direkt mit den entsprechenden Hexadezimal-Codes bereitgestellt. Ansonsten kann die Erstellung der Email auch zu Problemen führen.
Leerzeichen können mit der Funktion z.B. wie folgt ersetzt werden:
Replace("Emailtext der Nachricht", " ", "%20")
Email mit der SendMail-Methode
Mit dieser Variante kann die Arbeitsmappe an einen oder mehrere Empfänger versendet werden. Für mehrere Email-Empfänger ist ein Array zu erstellen.
Array("email1@domain.de", "email2@domain.de")
Zusätzlich kann noch ein Betreff für die Nachricht gewählt werden. Wird kein Betreff angegeben, wird der Dateiname als Betreff verwendet.
Sub Datei_senden() Dim strEmailadresse As String Dim strSubject As String strEmailadresse = "email@domain.de" strSubject = "Betreff" ActiveWorkbook.SendMail Recipients:=strEmailadresse, Subject:=strSubject End Sub
Der Versand der Email ist anschließend noch zu bestätigen. Je nach genutzten Emailprogramm wird eine Sicherheitsabfrage für die Bestätigung angezeigt.
Teil 1: Per VBA-Makro eine Email mit Outlook versenden
Teil 2: Mit VBA Email versenden ohne Outlook
Guten Morgen,
ich hoffe man kann mir schnell weiter helfen.
Vorab, bin Anfänger :D.
Der Code passt soweit und das versenden klappt auch, wie muss der Befehl denn umgeändert werden, wenn ich zB eine ganze Spalte mit Email Adressen habe und die Email an alle Email Adressen rausgeschickt werden soll die sich innerhalb der Spalten (nehmen wir mal C1 -> C10) befinden?
Danke schonmal im Voraus für die Hilfe 🙂
Guten Morgen Lukasz,
dazu benötigst man eine Schleife.
Die E-Mail Adressen werden dann Zeile für Zeile ausgelesen.
Sub Multi_Mail()
Dim strEmailadresse As String
Dim strSubject As String
Dim i As Integer
strSubject = “Betreff”
For i = 1 To 10
strEmailadresse = Range(“C” & i).Value
ActiveWorkbook.SendMail Recipients:=strEmailadresse, Subject:=strSubject
Next i
End Sub
Hallo, ist es auch möglich als Anhang diese Excel Mappe mit zu senden?
Lg Jürgen
Grüezi
Wie kann bei diesen Beispielen eine bestimmte Absenderadresse gewählt werden?
Liebe Grüsse aus der Schweiz
Guido
Super vielen Dank da habe ich lange nach gesucht, aber eine Frage habe ich trotzdem. Wie kann ich die Schriftgröße und Farbe des nachtichtentextes noch anpassen ?
Hallo
Wie muss der VBA Code heissen wenn ein *.pdf Dokument als Anhang versende werden möchte?
Danke für die Antwort
@MW: Es steht doch ziemlich eindeutig im Beitrag, dass bei dieser Variante keine Anhänge versendet werden können. Sollen Anhänge versendet werden ist die Variante über Outlook zu verwenden. https://www.makro-excel.de/2017/03/06/per-vba-makro-eine-email-mit-outlook-versenden/