Screenshot

Ab Microsoft Outlook 2002 (XP)

Ältere Outlook-Versionen verfügten über eine Möglichkeit, Mail-Adressen beim Beantworten einer Nachricht automatisch in den Kontaktordner eintragen zu lassen. In Outlook 2002 (XP), 2003 und 2007 gibt es diese Automatik nicht mehr.

Es gibt eine einfache VBA-Lösung, mit der die fehlende Funktionalität in Outlook (2002 (XP)/2003/2007) nachgerüstet werden kann. Der Prozedurcode überwacht das Senden von E-Mail-Nachrichten und durchsucht den Kontaktordner nach der Empfängeradresse. Falls die Empfängeradresse noch nicht vorhanden ist, fragt das Prozedere nach, ob ein entsprechender Kontakt angelegt werden soll. Wenn die Frage bejaht wird, wird automatisch ein neuer Kontakt unter dem Anzeigenamen des aktuellen Empfängers angelegt mit der zugehörigen E-Mail-Adresse.

In den folgenden Schritten wird Outlook für die automatische Bearbeitung der Empfängeradressen eingerichtet:

1.) Outlook Menü - Extras - Makro - Visual Basic-Editor



2.) Projekt-Explorer öffnen. Auf der linken Seite des VB-Editor-Fensters die untergeordneten Zweige zu "Projekt1 (VbaProject.OTM)" und dann zu "Microsoft Outlook Objekte" öffnen. Um die Zweige zu öffnen, wird auf die kleinen Plussymbole neben den Einträgen geklickt.




3.) Unter den "Microsoft Outlook Objekten" sieht man nun den Eintrag "DieseOutlookSitzung". Doppelklick darauf, um das zugehörige Codefenster zu öffnen.



4.) Am oberen Rand des Codefensters befinden sich zwei Dropdown-Listenfelder. Die linke Dropdown-Liste öffnen und das Objekt "Application" auswählen.



5.) In der rechten Dropdown-Liste des Codefensters wird der Eintrag "ItemSend" ausgewählt.



6.) Im Codefenster erscheint daraufhin automatisch ein entsprechendes Prozedurgerüst.



7.) Ergänzt wird das Gerüst folgendermaßen:


Private Sub Application_ItemSend(ByVal Item As Object, _
Cancel As Boolean)
If Item.Class = olMail Then
Call AdresseZuKontakten(Item)
End If
End Sub





8.) Diese Prozedur führt Outlook automatisch beim Senden einer Nachricht aus. Somit wird in Zukunft immer die Prozedur "AdresseZuKontakten" gestartet, wenn es sich bei der Nachricht um eine E-Mail und nicht um eine Antwort auf eine Besprechungsanfrage oder ähnliches handelt.


9.) Für die Hauptprozedur "AdresseZuKontakten" wird ein neues Codefenster geöffnet und im Menü Einfügen - Modul folgendes eingegeben.



Folgenden Prozedurcode eingeben:


Sub AdresseZuKontakten(objMail As MailItem)
Dim objMAPI As NameSpace
Dim objKontakte As Items
Dim objKontakt As ContactItem
Dim objEmpfaenger As Recipient
Dim strAdresse As String
Dim strSuchtext As String
Dim i As Integer

objMail.Save
Set objMAPI = Application.GetNamespace("MAPI")

Set objKontakte = _
objMAPI.GetDefaultFolder(olFolderContacts).Items

For Each objEmpfaenger In objMail.Recipients
strAdresse = objEmpfaenger.Address
For i = 1 To 3
strSuchtext = "[Email" & i & "Address] = """ & _
strAdresse & """"
Set objKontakt = objKontakte.Find(strSuchtext)
If Not objKontakt Is Nothing Then
Exit For
End If
Next
If objKontakt Is Nothing Then
If MsgBox("Soll der Empfänger, dem Sie gerade " & _
"schreiben, als neuer Kontakt " & _
"gespeichert werden?", vbYesNo) = _
vbYes Then
Set objKontakt = _
Application.CreateItem(olContactItem)
With objKontakt
.FullName = objEmpfaenger.Name
.Email1Address = strAdresse
.Save
End With
End If
End If
Set objKontakt = Nothing
Next
Set objEmpfaenger = Nothing
Set objKontakte = Nothing
Set objMAPI = Nothing
End Sub



10.) Über das Menü "Datei" den Befehl "Schließen und zurück zu Microsoft Outlook" anwählen.




11.) Outlook neu starten, damit die Überwachung des Senden-Ereignisses aktiviert wird.


Zur Erläuterung
Die Prozedur arbeitet mit dem Argument "objMail". Dabei handelt es sich um die Nachricht, die gerade verschickt wird. Danach werden in einer For-Schleife alle Empfängeradressen der Nachricht im Standard-Kontaktordner gesucht. Da es pro Kontakt drei E-Mail-Felder gibt, durchläuft eine weitere For-Schleife nacheinander alle Adressfelder. Falls die Suche erfolglos bleibt, wird gefragt, ob ein neuer Kontakt angelegt werden soll. Sofern die Frage mit "Ja" beantwortet wird, führt die Prozedur die erforderlichen Schritte zum Speichern des Kontakts aus. Übernommen werden der vollständige Name sowie die E-Mail-Adresse.
Ab sofort sorgt die VBA-Lösung dafür, dass neue E-Mail-Empfänger automatisch in den Kontaktordner eingetragen werden. Allerdings meldet sich dabei der Schutz des Outlook-Objektmodells zu Wort. Das heißt, es erscheint die Frage, ob der Zugriff auf die gespeicherten E-Mail-Adressen gewährt werden soll. Damit die Prozedur ungestört arbeiten kann, aktiviert man das Kontrollkästchen "Zugriff gewähren" mit der Standard-Zeitspanne von "1 Minute".


Screenshots

  • Screenshot

Bewertung

Besucherwertung (5 Stimmen)
5 / 6
(Höher ist besser)

Haben Sie Fragen dazu oder Probleme mit dem Tipp, dann melden Sie uns dies über das spezielle Kontaktformular.
Danke sagt das WinTotal-Team.