Outlook-Kontakten nachträglich Formulare zuordnen

Ich möchte in Outlook 97 Kontakten nachträglich ein anderes, selbstgestaltetes Formular zuzuweisen. Alle bisherigen Versuche waren erfolglos. Besonders nach dem Import von Adreßdaten gibt das Probleme, weil Outlook den importierten Datensätzen automatisch das Standardformular zuweist. Wissen Sie, wie ich alle meine Kontakte mit dem selbstentworfenen Formular versehen kann?

Mit Outlook allein geht das nicht, sie brauchen VBA in Verbindung mit der entsprechenden Microsoft-Objektbibliothek für Outlook. Dazu benutzen Sie Word 97 oder Excel 97 als äFernsteuerungô und schreiben dort ein Makro, das den gewünschten Effekt ausführt. Weitere Voraussetzung ist, daß die Kontakte im Outlook-Standardordner Kontakte stehen. Auf andere Ordner mit Kontakt-Objekten greift das Makro nicht zu.
Zunächst müssen Sie die interne Bezeichnung Ihres selbstgestalteten Formulars kennen. Dazu starten Sie Outlook und klicken mit der rechten Maustaste auf den Ordnereintrag Kontakte in der Ordnerleiste . Dann rufen Sie die Eigenschaften auf, aktivieren das Register Formulare, klicken auf die Schaltfläche Verwalten, markieren in der rechten Liste des Formular-Managers das gewünschte Formular und klicken auf die Schaltfläche Eigenschaften. Im Feld Nachrichtenklasse finden Sie die Bezeichnung. Diese besteht aus IPM.Contact, gefolgt von einem Punkt und dem Namen des Formulars, also etwa in dieser Form: IPM.Contact.Test.
Jetzt starten Sie zum Beispiel Word 97, rufen den Befehl Extras – Makro – Makros auf, vergeben einen aussagekräftigen Namen wie OutlookKontakteFormularzuweisung und klicken auf Erstellen. Der VBA-Editor öffnet sich, in den Sie die Anweisungen aus dem Listing-Kasten unten eintragen oder den Inhalt der Datei KONTFORM.TXT kopieren, die Sie auf der WIN-Monats-CD und in den WIN-Online-Diensten finden.
Nun gilt es noch, die Objektbibliothek zu aktivieren. Dazu rufen Sie den Befehl Extras – Verweise auf und haken in der Liste Verfügbare Verweise den Eintrag Microsoft Outlook 8.0 Object Library (nicht verwechseln mit Microsoft Office Object Library) an. Jetzt können Sie das Makro mit dem Befehl Ausführen – Sub/UserForm ausführen starten. Es öffnet in Outlook den Ordner Kontakte. Dann prüft es für jedes Element, ob schon eine Verknüpfung mit dem gewünschten Formular besteht. Wenn das nicht der Fall ist, weist es dem Element das Formular zu. Natürlich wird Ihr Formular nicht wie im Beispiel IPM.Contact.Test heißen, deshalb ändern Sie die Namensangaben in den Zeilen acht und neun des Makros entsprechend Ihres Formularnamens.
Wenn Sie im Kontakte-Ordner mit mehreren Formularen arbeiten möchten, läßt sich die Prüfbedingung anpassen. Sie können das Makro veranlassen, direkt nach Elementen mit dem Standardformular zu suchen und nur diese mit dem neuen Formular zu verknüpfen. Dann sehen die Zeilen acht und neun folgendermaßen aus:

If MyItem.MessageClass = ôIPM.Contactô Then¶
MyItem.MessageClass = ôIPM.Contact.Testô¶
Ebenso können Sie die Elemente genau eines Formulartyps mit einem anderen verknüpfen, wenn Sie die Prüfbedingung so anpassen:
If MyItem.MessageClass <> ôIPM.Contact.Test1ô Then¶
MyItem.MessageClass = ôIPM.Contact.Test2ô¶
Listing: Outlook-Kontakten anderes Formular zuweisen
Sub OutlookKontakteFormularzuweisung ()
Set myOLApp = CreateObject (ôOutlook.Applicationô)
Set olNamespace = myOLApp.GetNamespace (ôMAPIô)
Set myContacts = olNamespace.GetDefaultFolder (olFolderContacts)
Set Items = myContacts.Items
For I = myContacts.Items.Count To 1 Step -1
Set MyItem = Items.Item (I)
If MyItem.MessageClass <> ôIPM.Contact.Testô Then
MyItem.MessageClass = ôIPM.Contact.Testô
MyItem.Save
End If
Next
End Sub