Rubrik: COM/OLE/Registry/DLL · Automation | VB-Versionen: VB5, VB6 | 17.07.02 |
Zugriff auf Outlook-Kontakte Dieser Tipp verrät, wie man mit VB auf die Outlook Kontakte zugreifen kann, um diese z.B. in einer Liste anzuzeigen. | ||
Autor: Ralf Kronen | Bewertung: | Views: 51.223 |
www.kerstel-solutions.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Nachfolgender Tipp zeigt, wie man von Visual Basic aus auf die Kontakt-Datenbank von Microsoft Outlook zugreifen kann.
Setzen Sie hierzu einen Verweis auf die Microsoft Outlook Object Library.
Fügen Sie den nachfolgenden Code in den Codeteil einer Form:
Option Explicit ' Outlook als Objekt festlegen Dim objOutlook As Outlook.Application ' Den aktuellen Arbeitsbereich von Outlook mit dem ' Namespaces festlegen Dim objNameSpace As NameSpace ' Der MAPI-Folder legt den Ordner fest (z. B. Kontakte) Dim objMapiFolder As MAPIFolder ' Items sind die einzelnen Einträge Dim objItems As Items ' Zähler zum Füllen der Listboxen Dim zaehler As Integer ' Speicherung des Usernamens - vom Profil abhängig Dim AktUser As String
Hiermit sind alle benötigten Variablen deklariert. Plazieren Sie nun ein ListBox-Control (lstKontakt), sowie einen CommandButton (cmdKontakt) auf die Form.
Private Sub cmdKontakt_Click() ' Kontakte auslesen und in Liste anzeigen Kontakte_Lesen End Sub
Private Sub Kontakte_Lesen() ' Das erste Auslesen kann ein bissl dauern :-) MousePointer = vbHourglass ' Outlook initialisieren Set objOutlook = New Outlook.Application ' Namespace initialisieren Set objNameSpace = objOutlook.GetNamespace("MAPI") ' Aktueller User in Outlook ermitteln AktUser = objNameSpace.CurrentUser ' Ordner setzen, in unserem Fall Contacts Set objMapiFolder = objNameSpace.GetDefaultFolder(olFolderContacts) ' Items initialisieren Set objItems = objMapiFolder.Items ' Einträge nach dem Nachnamen sortieren lassen objItems.Sort "[Lastname]", False ' Alle Items in die Listbox schreiben ' (Zuname & Vorname) For zaehler = 1 To objItems.Count lstKontakt.AddItem objItems(zaehler).LastName & _ ", " & objItems(zaehler).FirstName Next zaehler ' Mousepointer wieder "normal" einstellen MousePointer = vbDefault End Sub
Wird die Form geschlossen, trennen wir auch die Verbindung zu Outlook:
Private Sub form_Unload(Cancel As Integer) ' alle Objekte abschließen Set objItems = Nothing Set objMapiFolder = Nothing Set objNameSpace = Nothing Set objOutlook = Nothing End Sub