2016-06-01 9 views

Antwort

2

diesen Code zum ThisOutlookSession Modul hinzufügen:

Private WithEvents objNewContact As Items 

Private Sub Application_Startup() 
    Set objNewContact = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items 
End Sub 

Private Sub objNewContact_ItemAdd(ByVal Item As Object) 
    MsgBox Item.CompanyAndFullName & " added" 
End Sub 

Private Sub objNewContact_ItemChange(ByVal Item As Object) 
    MsgBox Item.CompanyAndFullName & " changed" 
End Sub 

Application_StartUp wird objNewContact stellen Sie den Kontakteordner zu beobachten, wenn Sie Outlook starten.
ItemAdd wird ausgelöst, wenn Sie den Kontakt speichern.
wird ausgelöst, wenn Sie einen vorhandenen Kontakt speichern, nachdem Sie ihn geändert haben.

Wie der von @Maciej angegebene Link angibt - Der Beispielcode muss in einem Klassenmodul platziert werden, und ThisOutlookSession ist ein Klassenmodul.

+0

Vielen Dank. War in der Lage, es durch Kopieren/Einfügen meines vorhandenen Makros in den Körper von ItemAdd arbeiten zu lassen. Aus Neugier - hätte ich das Makro, das sich in Modul1 befand, von ItemAdd aus aufrufen können, anstatt es in ThisOutlookSession zu verschieben? – SeanS

+0

Ja, das könnte man - solange es als 'Public' und nicht als' Private' definiert ist. In meinem Beispiel würden Sie einfach die Zeile "MsgBox" durch etwas wie "NameOfYourMacro Item" oder "Call NameOfYourMacro (Item)" ersetzen –