FixContactAB
Outlook erlaubt ihnen die Pflege ihrer Kontakte in eigenen Kontaktordnern und kann ihnen diese über den "Outlook Adressbuch-Dienst" sogar als Adressbuch für E-Mails anbieten. So schön diese Funktion ist, so nervig sind zwei Fakten:
- Faxnummern sind gültige Empfänger
Das ist besonders ärgerlich, wenn Sie keinen Faxserver haben der die FAX:-Adressen bedienen kann - "Name" ist nicht passend formatiert
Das Adressbuch zeigt nicht nur den Anzeigename (Displayname) an, sondern auch den "Betreff" (Subject) eines Kontakts als Name, den Sie über die Karteikarte gar nicht direkt pflegen können
Die Liste wird dann schnell unübersichtlich, wie das Beispiel mit nur einem Kontakt schon zeigt.

Neben dem Mailadressen erscheinen hier auch die Faxnummern als gültige Adressen. Das macht Outlook schon immer alleine ohne Rücksicht, ob der Exchange Server oder eine lokale Software überhaupt weiß, wie man mit Adressen vom Typ "[FAX:xx]" umgeht. Leider gibt es meines Wissens keine Funktion, um dieses Verhalten auf dem Client abzuschalten.
Allerdings kann man Outlook derart überlisten, dass man die Faxnummer so abändert, dass Outlook sie nicht mehr erkennt. Ergänzt man die Nummer z.B. einfach mit einem Prefix wie "fax:", dann erkennt Outlook diese nicht mehr als gültige Faxnummer und blendet diesen Eintrag aus.
Das folgende VBA-Makro macht genau das. Es muss allerdings vom Benutzer selbst gestartet werden und fordert zur Auswahl des Ordners aus, welcher verarbeitet werden soll. Hinzu kommt die Intelligenz von Outlook. ändert ein Anwender die Faxnummer nachträglich, dann wird diese wieder sichtbar, da Outlook diese Nummer wieder normiert bis das Skript erneut die Nummer untauglich gemacht hat.
Eine zweite Funktion ist die Anpassung des "Display Namens". Die erste Spalte im Adressbuch stellt nicht das Feld "Speichern unter" oder den Displaynamen des Kontakts dar, sondern das Feld "Subject", welches Sie über Outlook gar nicht bearbeiten können. Das Skript übernimmt die Aufgabe, bei allen Kontakten eben auch dieses Feld auf den Wert des "Speichern unter"-Felds zu setzen.
' Outlook Adressbuchanzeige "Name" ist Inhalte von PR_SUBJECT
' auch wenn "Speichern unter" ausgewählt wurde
' Dieses Skript normiert das Feld für den gewaehlten Ordner
Dim objfolder As MAPIFolder
Set objfolder = Outlook.GetNamespace("MAPI").PickFolder
Dim blnmodified As Boolean
If objfolder.DefaultItemType = olContactItem Then
Dim objcontact As ContactItem
Dim total As Long
total = 0 für Each objcontact In objfolder.Items.Restrict("[MessageClass]='IPM.Contact'")
blnmodified = False
If objcontact.Subject <> objcontact.FileAs Then
objcontact.Subject = objcontact.FileAs
blnmodified = True
End If
If Left(objcontact.BusinessFaxNumber, 4) <> "Fax:" Then
objcontact.BusinessFaxNumber = "Fax:" & objcontact.BusinessFaxNumber
blnmodified = True
End If
If Left(objcontact.HomeFaxNumber, 4) <> "Fax:" Then
objcontact.HomeFaxNumber = "Fax:" & objcontact.HomeFaxNumber
blnmodified = True
End If
If blnmodified Then
total = total + 1
objcontact.Save
End If
Next
MsgBox total & " Kontakte angepasst"
Else
MsgBox "Der Order ist kein Kontaktordner", vbCritical
End If
End Sub
In der vorliegenden Form muss der Anwender selbst dieses Makro innerhalb von Outlook ausführen und den gewünschten Kontakt-Ordner auswählen. Analog zu Skripten wie Feiertage und andere wäre natürlich auch eine servergestützte regelmäßige Verarbeitung möglich.














