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!
No responses yet