· Mehdi Aroui · produktivitaet · 2 min read
VBA-Makro: Outlook-Kontakte auf neues Formular umstellen
Wer ein benutzerdefiniertes Outlook-Kontaktformular aktualisiert, stellt fest, dass bestehende Kontakte das alte Formular behalten. Dieses VBA-Skript stellt markierte Kontaktelemente per Massenaktion auf die neue Formularversion um.

Das Problem
Wer in Outlook benutzerdefinierte Kontaktformulare nutzt, kennt das Verhalten: Nach einer Formularaktualisierung übernehmen nur neu angelegte Kontakte das neue Layout. (Stand 2026: Das Verhalten und die VBA-Lösung gelten für Outlook in Microsoft 365 unverändert.) Bestehende Kontakte bleiben auf dem alten Formular, weil die MessageClass-Eigenschaft des Elements nicht automatisch angepasst wird.
Lösung: VBA-Makro für Massenumstellung
Das folgende Makro fragt nach dem Namen des neuen Formulars und stellt alle markierten Kontaktelemente per Schleife um.
Sub KontakteFormularMassenAenderung()
Dim objSelection As Outlook.Selection
Dim i As Long
Dim objItem As Object
Dim strOldForm As String
Dim strNewForm As String
Set objSelection = Outlook.Application.ActiveExplorer.Selection
If objSelection Is Nothing Then
MsgBox "Es ist kein Element markiert.", vbExclamation + vbOKOnly
Else
strNewForm = InputBox("Name des neuen Formulars eingeben:", , "IPM.Contact.IhrFormularName")
If strNewForm <> "" Then
For i = objSelection.Count To 1 Step -1
Set objItem = objSelection(i)
strOldForm = objItem.MessageClass
If LCase(strNewForm) <> LCase(strOldForm) Then
objItem.MessageClass = strNewForm
objItem.Save
End If
Next
MsgBox "Abgeschlossen.", vbInformation + vbOKOnly
End If
End If
End SubAnwendung
- Outlook öffnen, Alt + F11 drücken (VBA-Editor)
- Einfügen, Modul wählen
- Code einfügen
- Speichern
- Outlook-Kontakteordner öffnen
- Gewünschte Kontakte markieren (Strg + A für alle oder Einzelauswahl)
- Alt + F8, Makro
KontakteFormularMassenAenderungausführen - Namen des neuen Formulars eingeben, Bestätigen
Das Makro durchläuft die markierten Elemente rückwärts (For i = Count To 1 Step -1), um Indexverschiebungen bei Änderungen zu vermeiden. Nur Elemente mit abweichender MessageClass werden gespeichert.
Hinweis zur Formularbenennung
Der Formularname entspricht dem MessageClass-Wert des Formulars. Zu finden unter: Entwicklertools, Entwurfsformular, Eigenschaften, Klasse (MessageClass).
Netzleiter unterstützt bei der Entwicklung und Wartung benutzerdefinierter Outlook-Formulare und Office-Automatisierungen. Fragen an die Hotline: 040 25 499 500.

