Excel VBA AI Assistant LogoExcel VBA AI Assistant
    Automatisierung
    VBA
    Outlook
    E-Mail
    Empfohlen

    E-Mails mit VBA automatisieren: So verbinden Sie Excel mit Outlook

    Outlook aus Excel steuern: Einzel-/Serienmails, Anhänge, HTML-Body – mit sicheren Mustern, Praxisfall und Checkliste.

    VBA AI Team
    Veröffentlicht am 17. August 2025
    14 Min. Lesezeit

    VBA kann Outlook fernsteuern: E-Mails erzeugen, Anhänge hinzufügen, Entwürfe speichern oder direkt senden. Dieser Leitfaden zeigt sichere Muster, Praxisfälle und Best Practices, damit Ihre Mails zuverlässig und professionell rausgehen.


    1) Voraussetzungen & Referenzen

    • In Excel: VBA-Editor (ALT+F11) → Extras → VerweiseMicrosoft Outlook XX.0 Object Library (optional; sonst Late Binding).
    • Early Binding (mit Verweis): IntelliSense, schneller.
    • Late Binding (ohne Verweis): kompatibler, z. B. in gemischten Office-Versionen.

    Late Binding Beispiel (kompatibel):

    Sub SendMail_LateBinding() Dim olApp As Object, olMail As Object Set olApp = CreateObject("Outlook.Application") Set olMail = olApp.CreateItem(0) ' olMailItem With olMail .To = "kunde@example.com" .CC = "sales@example.com" .Subject = "Monatsreport" .Body = "Guten Tag," & vbCrLf & "anbei Ihr Report." ' .Display ' zum Prüfen .Send ' direkt senden End With End Sub

    2) Anhänge & Formatierungen (HTML)

    Sub SendMail_HTML_Anhang() Dim olApp As Object, mail As Object Set olApp = CreateObject("Outlook.Application") Set mail = olApp.CreateItem(0) Dim pfad As String: pfad = ThisWorkbook.Path & "\Report.pdf" With mail .To = "kunde@example.com" .Subject = "Ihr Monatsreport" .HTMLBody = "<p>Guten Tag,<br>im Anhang finden Sie den Report.</p>" .Attachments.Add pfad .Send End With End Sub

    3) Praxisfall – Serienmails aus Excel-Tabelle

    Ausgangslage: Tabelle Empfänger mit E-Mail, Name, AnlagePfad.
    Ziel: Personalisierte Mails + jeweiliger Anhang.

    Sub SerienmailAusTabelle() Dim olApp As Object, mail As Object Dim ws As Worksheet: Set ws = Sheets("Empfänger") Dim r As Long, lastRow As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Set olApp = CreateObject("Outlook.Application") For r = 2 To lastRow If Len(ws.Cells(r, 1).Value) > 0 Then Set mail = olApp.CreateItem(0) With mail .To = ws.Cells(r, 1).Value .Subject = "Ihre Unterlagen" .Body = "Hallo " & ws.Cells(r, 2).Value & "," & vbCrLf & _ "anbei wie besprochen." & vbCrLf & "Viele Grüße" If Len(ws.Cells(r, 3).Value) > 0 Then .Attachments.Add ws.Cells(r, 3).Value .Display ' zum Prüfen; später .Send End With End If Next r End Sub

    4) Best Practices & Sicherheit

    • .Display zuerst, dann .Send – zum Testen.
    • Fehlerbehandlung + Retry bei gesperrten Postfächern.
    • Pfade prüfen, Datei existiert? Bevor Sie anhängen.
    • DSGVO/Sicherheit: Keine sensiblen Daten unverschlüsselt senden.

    5) Checkliste

    ThemaEmpfehlung
    BindingLate Binding für Kompatibilität
    TestsErst .Display, dann .Send
    AnhängeExistenz prüfen
    LoggingVersandstatus protokollieren

    Fazit

    Mit wenigen Zeilen VBA steuern Sie Outlook zuverlässig – von Einzelmails bis Serienversand. Testen Sie mit .Display und automatisieren Sie anschließend sicher.

    Mit dem VBA Assistant schneller ans Ziel

    Lassen Sie sich Best Practices vorschlagen, Code erklären und automatisch verbessern.