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.