#

Download:

Datei 1: Demo_32c_Excel_Email.xlsm

Diese Anwendung zeigt, wie man mit Excel Emails über Outlook automatisch versenden kann.

Änderung: Die neue Version ist unter: 

https://codedocu.de/Office-365/Excel/Vorlagen/Email


https://codedocu.de/Office-365/Excel/Vorlagen/Email/Excel-Vorlage_colon_-Versenden-von-Emails-in-einer-Liste-mit-Sende--Feld,-Platzhaltern-und-Anh%C3%A4ngen?3025

Beispiel:

Die Excel Datei hat eine Liste mit Emails, wo man ein X setzen kann zu den Email-Adressen, an welche eine automatisierte Email aus Excel heraus versendet werden soll.

 

Die versendeten Emails werden in diesem Beispiel geöffnet und als Textformat dargestellt.

Man kann im vba Code auch einstellen, dass die Emails automatisch ohne Ansicht gleich versendet werden.

 

Unter dem Excel-Blatt "ini_Vorlage" befindet sich eine Textfeld, welche die Email Vorlage aufweist.

Das Feld [@Name] wird zur Laufzeit ersetzt durch die Email-Anschrift.

 

 

Mit Alt-F11 kommt man auf die Vba Codeseite (Makro-Seite).

Der vba Code befindet sich in der Seite: Module/Modul1

 

 

Vba Code erläuterung:

 

Zunächst wird die Vorlage aus dem Textfeld geholt.

'< HMTL holen >

Dim sTemplate As String

sTemplate = Sheets("ini_Vorlage").Shapes(1).TextFrame2.TextRange.Text

'</ HMTL holen >

 

Dann wird Outlook als Anwendung gestartet und hieraus ein Email-Objekt erstellt

'----< Send with Outlook >----

Dim app_Outlook As Outlook.Application

Set app_Outlook = New Outlook.Application

  

'--< Email einstellen >--

Dim objEmail As Outlook.MailItem

 

Das Email-Objekt wird dann gefüllt mit dem Titel, der Email-Adresse und dem Body-Text.

Mit dem Parameter .Display wird normalerweise eine Ansicht unterdrückt.

Mit .Send wird die Email automatisch gesendet.

'< Fill Placeholders >

Dim sHTML As String

sHTML = Replace(sTemplate, "[@Name]", sEmail_Address)

'</ Fill Placeholders >

 

'--< Send Email >--

Set objEmail = app_Outlook.CreateItem(olMailItem)

objEmail.To = sEmail_Address

objEmail.Subject = sTitle

'objEmail.HTMLBody = sHTML  '*use .HTMLBody for HTML

objEmail.Body = sHTML       '*and .body for pure Text

objEmail.Display False

'objEmail.Send

'--</ Send Email >--

 

 

 

 

Kompletter Makro-Code für eigene Anwendungen

Vba Makro Code

Option Explicit On

 

Sub BtnEmail_Senden()

    Send_Email()

End Sub

 

 

Private Sub Send_Email()

    '-------------< Send_Email() >-------------

    Dim sTitle As String

    sTitle = "Test-HTML Email from Excel"

 

    '< HMTL holen >

    Dim sTemplate As String

    sTemplate = Sheets("ini_Vorlage").Shapes(1).TextFrame2.TextRange.Text

    '</ HMTL holen >

 

    '----< Send with Outlook >----

    Dim app_Outlook As Outlook.Application

    Set app_Outlook = New Outlook.Application

  

    '--< Email einstellen >--

    Dim objEmail As Outlook.MailItem

 

    Dim sEmail_Address As String

    Dim iRow As Integer

    For iRow = 4 To 100

        If Cells(iRow, 3) = "x" Then

            '< get Email Address >

            'Column 2, B

            sEmail_Address = Cells(iRow, 2)

            '</ get Email Address >

 

            '< Fill Placeholders >

            Dim sHTML As String

            sHTML = Replace(sTemplate, "[@Name]", sEmail_Address)

            '</ Fill Placeholders >

           

            '--< Send Email >--

            Set objEmail = app_Outlook.CreateItem(olMailItem)

            objEmail.To = sEmail_Address

            objEmail.Subject = sTitle

            'objEmail.HTMLBody = sHTML  '*use .HTMLBody for HTML

            objEmail.Body = sHTML       '*and .body for pure Text

            objEmail.Display False

            'objEmail.Send

            '--</ Send Email >--

 

 

        End If

    Next

      

   

   

    '< Abschluss >

    Set objEmail = Nothing

    Set app_Outlook = Nothing

    '</ Abschluss >

   

    MsgBox "Emails erstellt", vbInformation, "Fertig"

 

    '----</ Send with Outlook >----

    '-------------</ Send_Email() >-------------

End Sub

 

 

Zusatz-Hinweis.

Damit man mit Outlook arbeiten kann, muss man unter der vba Codeseite im Menü->Extras->Verweise ein Outlook-Verweis aktivieren.

 

Dann wählt man in der Liste Microsoft Outlook 16.0 Object Library aus. Hierzu muss man eventuell in der Liste weiter unten suchen.

Die Version 16 hängt von der verwendeten Microsoft Office ab.

Microsoft Outlook 16.0 ist derzeit für Office 365 Desktop Version in 2018.

Mobile

.

soap2day