vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: COM/OLE/Registry/DLL · Automation   |   VB-Versionen: VB5, VB617.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 KronenBewertung:  Views:  51.223 
www.kerstel-solutions.deSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.