Rubrik: COM/OLE/Registry/DLL · Automation | VB-Versionen: VB4, VB5, VB6 | 21.03.07 |
Outlook: Neuen Kontakt hinzufügen Mit dieser Funktion lässt sich programmgesteurt eine neue Adresse im Kontakt-Ordner von Outlook hinzufügen. | ||
Autor: Dieter Otter | Bewertung: | Views: 30.055 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit dieser Funktion lässt sich programmgesteuert ein neuer Eintrag im Adressbuch von Outlook (Kontakt-Ordner) erstellen. Aktivieren Sie hierzu zunächst den Verweis "Microsoft Outlook x.0 Object Library" und fügen nachfolgenden Code in den Codeteil Ihres Projekts ein.
Public Function olAddContact(ByVal sLastName As String, _ Optional ByVal sFirstName As String, _ Optional ByVal sCompanyName As String, _ Optional sPhoneNumber As String, _ Optional ByVal sEMail As String, _ Optional ByVal sWebPage As String) As Boolean ' Neuen Outlook-Kontakt hinzufügen Dim oOutlook As Outlook.Application Dim oNameSpace As Outlook.NameSpace Dim oMAPIFolder As Outlook.MAPIFolder Dim oContact As Outlook.ContactItem ' Fehlerbehandlung aktivieren On Error GoTo ErrHandler ' Outlook-Application-Objekt erstellen Set oOutlook = CreateObject("Outlook.Application") ' Namespace initialisieren Set oNameSpace = oOutlook.GetNamespace("MAPI") ' Kontakt-Ordner verwenden Set oMAPIFolder = oNameSpace.GetDefaultFolder(olFolderContacts) ' Objekt für neuen Eintrag erstellen Set oContact = oMAPIFolder.Items.Add With oContact ' Eigenschaften des Eintrag festlegen .LastName = Trim$(sLastName) .FirstName = Trim$(sFirstName) .CompanyName = Trim$(sCompanyName) .PrimaryTelephoneNumber = Trim$(sPhoneNumber) .Email1Address = Trim$(sEMail) .WebPage = Trim$(sWebPage) ' hier können natürlich noch weitere Eigenschaften ' für den neuen Kontakt festgelegt werden, wie z.B. ' HomeAddressStreet, HomeAddressCity, etc. ' (siehe hierzu VB-Objekt-Katalog - Outlook - ContactItem) ' ... ' Kontakt speichern .Save End With olAddContact = True ErrHandler: If Err.Number <> 0 Then MsgBox "Fehler beim Erstellen des Outlook-Kontakts." & vbCrLf & _ CStr(Err.Number) & " " & Err.Description, vbExclamation + vbOKOnly olAddContact = False End If ' Objekte wieder freigeben Set oContact = Nothing Set oMAPIFolder = Nothing Set oNameSpace = Nothing Set oOutlook = Nothing End Function
Aufrufbeispiel:
If olAddContact("Otter", "Dieter", "Tools & Components", _ "(09708) 706247", "info@tools4vb.de", "http://www.tools4vb.de") Then MsgBox "Herzlichen Glückwunsch." & vbCrLf & _ "Der Eintrag wurde dem Kontakt-Ordner von Outlook hinzugefügt.", _ vbInformation + vbOKOnly End If
Hinweis:
Durch das Aktivieren des Outlook-Verweises (Early-Binding) kann beim Ausführen der Anwendung zu Problemen kommen, wenn auf dem Zielsystem eine andere Outlook-Version
installiert ist, als auf Ihrem Entwicklerrechner. Daher empfiehlt es sich besser die Late-Binding-Variante zu verwenden. Deaktivieren Sie hierzu den Verweis
auf die Outlook Object Library und ändern den Code wie folgt ab:
Public Function olAddContact(ByVal sLastName As String, _ Optional ByVal sFirstName As String, _ Optional ByVal sCompanyName As String, _ Optional sPhoneNumber As String, _ Optional ByVal sEMail As String, _ Optional ByVal sWebPage As String) As Boolean ' Neuen Outlook-Kontakt hinzufügen Dim oOutlook As Object ' Outlook.Application Dim oNameSpace As Object ' Outlook.NameSpace Dim oMAPIFolder As Object ' Outlook.MAPIFolder Dim oContact As Object ' Outlook.ContactItem Const olFolderContacts = 10 ' Fehlerbehandlung aktivieren On Error GoTo ErrHandler ' Outlook-Application-Objekt erstellen Set oOutlook = CreateObject("Outlook.Application") ' Namespace initialisieren Set oNameSpace = oOutlook.GetNamespace("MAPI") ' Kontakt-Ordner verwenden Set oMAPIFolder = oNameSpace.GetDefaultFolder(olFolderContacts) ' Objekt für neuen Eintrag erstellen Set oContact = oMAPIFolder.Items.Add With oContact ' Eigenschaften des Eintrag festlegen .LastName = Trim$(sLastName) .FirstName = Trim$(sFirstName) .CompanyName = Trim$(sCompanyName) .PrimaryTelephoneNumber = Trim$(sPhoneNumber) .Email1Address = Trim$(sEMail) .WebPage = Trim$(sWebPage) ' hier können natürlich noch weitere Eigenschaften ' für den neuen Kontakt festgelegt werden, wie z.B. ' HomeAddressStreet, HomeAddressCity, etc. ' (siehe hierzu VB-Objekt-Katalog - Outlook - ContactItem) ' ... ' Kontakt speichern .Save End With olAddContact = True ErrHandler: If Err.Number <> 0 Then MsgBox "Fehler beim Erstellen des Outlook-Kontakts." & vbCrLf & _ CStr(Err.Number) & " " & Err.Description, vbExclamation + vbOKOnly olAddContact = False End If ' Objekte wieder freigeben Set oContact = Nothing Set oMAPIFolder = Nothing Set oNameSpace = Nothing Set oOutlook = Nothing End Function