Viele IT-Abteilungen und Entwickler im Mittelstand setzen seit Jahren auf VBA–Automatisierung mit Outlook, um Mails aus Access, Excel oder Word zu versenden. Mit dem neuen „Outlook (new)“, das Microsoft inzwischen immer stärker pusht, ist damit allerdings Schluss – und das hat tiefgreifende Folgen für bestehende Workflows.
Was ist „Outlook (neu)“ überhaupt?
„Outlook (neu)“ (engl. New Outlook) ist Microsofts neu gestaltete Outlook-Version für Windows. Sie basiert auf der Web-Version von Outlook und ist technisch gesehen eine Art „Wrapper“ um den Webclient – ähnlich wie bei Teams (neu). Microsoft verfolgt damit das Ziel, eine einheitliche Codebasis für Windows, macOS und Web zu schaffen.
Das Problem:
🧱 Viele klassische Features und Integrationen der Win32-Version fehlen – darunter auch die COM-Schnittstelle, über die VBA bislang mit Outlook kommunizieren konnte.
Warum funktioniert VBA nicht mehr?
Die klassische Outlook-Automatisierung per VBA läuft über die COM-Schnittstelle (CreateObject("Outlook.Application")). Darüber lässt sich z. B. aus Access heraus eine neue Mail erzeugen und versenden, die in Outlook gespeichert wird – samt Zugriff auf den Ordner Gesendete Objekte oder Entwürfe.
Diese Schnittstelle existiert in Outlook (new) nicht mehr. Das bedeutet:
- Kein Fernsteuern von Outlook per VBA
- Kein automatisierter Mailversand über Outlook
- Kein Zugriff auf gesendete Objekte
- Keine Custom Add-ins auf Basis von VBA/COM
Was tun? – Drei Alternativen
Wer weiterhin automatisiert E-Mails versenden will, hat ein paar Optionen – auch wenn sie einen etwas anderen Setup erfordern:
1. Outlook Classic behalten
Für viele KMU der einfachste Weg: Outlook (neu) nicht aktivieren und bei der klassischen Outlook Desktop-App bleiben.
Wichtig: Microsoft bietet derzeit noch die Wahl, beide Versionen zu nutzen. Die Einstellung findet sich oben rechts in Outlook unter dem Toggle „Neues Outlook“.
➡️ Empfehlung: Deaktiviere das neue Outlook auf Clients, die VBA nutzen.
2. Versand über SMTP direkt
Statt Outlook zu verwenden, kann VBA auch direkt über ein SMTP-Gateway Mails verschicken – z. B. mit CDO.Message:
Dim objMsg As Object
Set objMsg = CreateObject("CDO.Message")
With objMsg.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@example.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With objMsg
.To = "empfänger@example.com"
.From = "user@example.com"
.Subject = "Testmail"
.TextBody = "Hallo Welt"
.Send
End With
✅ Vorteil: Outlook wird nicht benötigt
⚠️ Nachteil: Kein Zugriff auf gesendete Objekte, keine Integration in Outlook
3. Versand über Power Automate
Microsofts Cloud-Plattform Power Automate kann auf Outlook-Konten zugreifen und E-Mails senden – auch auf Trigger aus Office heraus.
Beispiel: Aus Excel oder Access wird per VBA ein HTTP-Request an einen Power Automate Flow gesendet.
✅ Vorteil: Modern, zukunftssicher, M365-nativ
⚠️ Etwas komplexer im Setup, erfordert passende Lizenzen und API-Wissen
Wenn du deine Prozesse in Office noch über VBA automatisierst, ist jetzt ein guter Zeitpunkt für eine Bestandsaufnahme. Outlook (neu) wird sich in der Microsoft-Welt weiter durchsetzen – aber der klassische Weg über VBA ist dort endgültig vorbei.
🛠️ Ob du beim klassischen Outlook bleibst, auf SMTP umstellst oder einen modernen Cloud-Weg wie Power Automate gehst:
Ich helfe dir gern bei der Analyse und Umsetzung.
Datenschäfer: Office-Automatisierung für KMU im Norden 🐑
📈 Prozesse optimieren, statt Workflows reparieren.
👉 Fragen oder eigene Erfahrungen? Schreib mir oder verlinke deinen Ansatz in den Kommentaren!