Per VBA-Makro eine Email mit Outlook versenden

Sie möchten einen Bericht aus einer Exceltabelle erstellen und anschließend per Email versenden? Auch der Versand einer kompletten Exceldatei oder eines bestimmten Tabellenblatts ist relativ einfach mit VBA realisierbar. Mit dem nachfolgenden Musterbeispiel zeige ich Ihnen wie Sie mit Hilfe eines VBA-Codes eine Email versenden können. Voraussetzung für die Nutzung ist, Sie haben neben Microsoft Excel auch das Programm Microsoft Outlook installiert und darin ein Emailkonto eingerichtet.

Weitere Voraussetzung, im VB-Editor muss in der Exceldatei eine der beiden Objektbibliotheken aktiviert sein:

  • Microsoft Outlook 15.0 Object Library
  • Microsoft 15.0 Object Library

Die Nummer 15.0 steht hierbei für die genutzte Office-Version (15.0 entspricht z.B. Office 2013).

Nun zum eigentlichen VBA-Code. Hier gibt es einige Möglichkeiten den Versand individuell zu gestalten. In den beiden folgenden Makros wird die Email erstellt und zunächst angezeigt (1. VBA-Code), bzw. automatisch versendet (2. VBA-Code):

Sub EmailManuellAbsenden()

Dim objOutlook As Object
Dim objMail As Object

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

With objMail
   .To = "deinname@deinedomain.de"
   .Subject = "Betreff"
   .Body = "Ihre Nachricht."
   .Display        'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
End With 

End Sub

Das zweite Makro unterscheidet sich nur aufgrund des Befehls “Send”, statt “Display”.

Sub EmailDirektSenden()

Dim objOutlook As Object
Dim objMail As Object

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

With objMail
   .To = "deinname@deinedomain.de"
   .Subject = "Betreff"
   .Body = "Ihre Nachricht."
   .Send        'Sendet die Email automatisch
End With

End Sub

Natürlich stehen auch alle weitere Optionen für den Versand von Emails in VBA-Lösungen zur Verfügung. So können Sie die Email auch in Kopie oder Blind-Kopie an weitere Adressaten versenden, oder der Email Dateianhänge beifügen.

In den obigen Beispielen können Sie die zusätzlichen Optionen bei Bedarf über den jeweils zusätzlichen VBA Code hinzufügen:

.CC = "deinname@deinedomain.de"

Sendet die Email in Kopie an die angegebene Emailadresse.

.BCC = "deinname@deinedomain.de"

Sendet die Email in Blind-Kopie an die angegebene Emaildadresse.

.Attachments.Add "C:/Beispiel.xlsx"

Hängt an die Email die angegebene Datei an.

Der Versand an mehrere Adressaten innerhalb von To, CC oder BCC erfolgt durch ein Semikolon als Trennzeichen.

.To = "deinname@deinedomain.de; zweiteEmailadresse@domain.de"

Mehrere Anhänge fügen Sie am einfachsten über mehrere Zeilen ein.

.Attachments.Add "C:/Beispiel_1.xlsx"
.Attachments.Add "C:/Beispiel_2.xlsx"

 

 

Schreibe einen Kommentar

*