· 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.

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 Sub

Anwendung

  1. Outlook öffnen, Alt + F11 drücken (VBA-Editor)
  2. Einfügen, Modul wählen
  3. Code einfügen
  4. Speichern
  5. Outlook-Kontakteordner öffnen
  6. Gewünschte Kontakte markieren (Strg + A für alle oder Einzelauswahl)
  7. Alt + F8, Makro KontakteFormularMassenAenderung ausführen
  8. 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.

    Share:
    Back to Blog

    Related Posts

    View All Posts »
    PDF, PDF/A, PDF/X: Welches Format wofür?

    PDF, PDF/A, PDF/X: Welches Format wofür?

    PDF ist nicht gleich PDF. Für Langzeitarchivierung gilt PDF/A, für Druckdateien PDF/X, für technische Dokumentation PDF/E. Dieser Leitfaden erklärt die Unterschiede.