Outlook Adressbuch in Excel auslesen

VBA und Makros
Codeschnipsel
Arbeitsblatt
Adressbuch
Auslesen
CDO
Excel
Outlook

Ausgangslage - Was tut dieser Code-Schnipsel?

Beispielquelltext, um das Adressbuch von Microsoft Outlook aus Excel heraus auszulesen.

Der Quelltext

Option Explicit
' Original-Quelltext unter: https://www.online-vba.de/outlook-adressbuch-in-excel-auslesen
' Express-Hilfe für VBA unter https://www.online-vba.de/vba-expresshilfe
' Es gelten die Nutzungsbedingungen von Online-VBA.de

'Achtung VERWEIS im VBA Projekt setzen: "Microsoft Outlook x.x Object Library"!
'Achtung VERWEIS im VBA Projekt setzen: "Microsoft CDO x.x Library"!

Public Sub OVBAde_GetOutlookAdressbookEntries()
  Const lNAME = &H3A06001E 'Nachname
  Const lVORNAME = &H3A11001E 'Vorname
  Const lALIAS = &H3A00001E 'Alias
  Const lDISPLAYNAME = &H3001001E 'Angezeigter Name
  Const lADDRESS = &H3A29001E 'Adresse
  Const lORT = &H3A27001E 'Ort
  Const lPLZ = &H3A2A001E 'Postleitzahl
  Const lLAND = &H3A26001E 'Land
  Const lTITEL = &H3A17001E 'Titel, Anrede
  Const lFIRMA = &H3A16001E 'Firma
  Const lABTEILUNG = &H3A18001E 'Abteilung
  Const lMOBILHANDY = &H3A1C001E 'Mobiltelefon
  Const lTELBUERO = &H3A08001F 'Telefon Geschäftlich
  Const lTELHOME = &H3A09001E 'Telefon Privat
  Const lEMAIL = &H39FE001E 'E-Mail
  Const lSMTP = &H39FE001F
  Dim oAlias As Object, oCDO As Object
  Dim z As Long
  Dim i As Long
  Dim oADREntries As MAPI.AddressEntries
  Dim oADREntry As MAPI.AddressEntry
  Dim sName As String, aAdress As String
    
    z = 2
    
    Set oOutlookApp = GetObject(, "Outlook.Application") 'Outlook muss offen sein, alternativ umbauen!
    Set oNameSpace = oOutlookApp.GetNamespace("MAPI")
    Set oCDO = CreateObject("MAPI.Session")
    oCDO.Logon "", "", False, False
    
    Set oADREntries = oCDO.AddressLists.Item(1).AddressEntries
    
    For Each oADREntry In oADREntries.Items
        Application.StatusBar = CStr("VBA: OVBAde_GetOutlookAdressbookEntries --> Import " & _
                            i & " von " & oADREntries.Count & " Elementen ...")
        Set oAlias = oADREntry.Fields(CdoPR_ACCOUNT)
        
        ' Nur Einträge, welche ein E-Mail Eintrag sind werden verarbeitet
        If oADREntry.DisplayType = olUser Then
            
            sAddress = oADREntry.Fields(lSMTP).Value
            sName = oADREntry.Fields(lNAME).Value
            
            ' Ausgabe auf aktivem Tabellenblatt, evtl. neues Blatt einfügen/hinzufügen bei Bedarf
            Cells(z, 1) = oAlias
            Cells(z, 2) = sAddress
            Cells(z, 3) = sName
            
            z = z + 1
            
        End If
    
    Next oADREntry
    
    Application.StatusBar = CStr("Fertig.")
    
    MsgBox "Fertig."
End Sub

Anmerkungen und Hinweise

Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2013.
Die Nutzung erfolgt auf eigene Gefahr. Bitte denken Sie immer zuerst an eine ausreichende Datensicherung. Wir können keinen kostenlosen Support anbieten. Es gelten unsere Nutzungs­bedingungen.


So einfach läuft unsere VBA-Expresshilfe ab

1
Senden Sie uns Ihre Office-Datei oder Ihren VBA-Code (gerne anonymisiert) mit einer kurzen Problembeschreibung oder Ihrem Erweiterungswunsch per E-Mail.
2
Wir analysieren Ihr Anliegen schnell und schicken Ihnen umgehend (tagsüber meist innerhalb von 1-2 Stunden) ein Festpreis-Angebot.
3
Nach Ihrer Zustimmung lösen wir Ihr Problem (meist noch am gleichen Tag) oder setzen Ihre Erweiterung zuverlässig um – inklusive verständlicher Dokumentation der durchgeführten Maßnahmen.

Jetzt kontaktieren!







Mit einem * gekennzeichnete Eingabefelder sind Pflichtfelder.
Datenschutzhinweise zum Kontaktformular: Die von Ihnen im Kontaktformular bereitgestellten Daten werden ausschließlich zur Bearbeitung Ihrer Anfrage verwendet und nicht ohne Ihre Zustimmung an Dritte weitergegeben. Ihre Daten werden nur für den Zeitraum gespeichert, der zur Bearbeitung Ihrer Anfrage erforderlich ist. Weitere Hinweise zum Datenschutz finden Sie in unserer Datenschutzerklärung.
Hinweis: Für die vollständige Funktion dieser Website ist JavaScript erforderlich.
Bitte aktivieren Sie JavaScript in Ihrem Browser, um alle Inhalte und interaktiven Funktionen nutzen zu können.