Startseite Inhaltsverzeichnis Nutzungsbedingungen Datenschutz Impressum Weitere Informationen

CODE-SCHNIPSEL

Microsoft® Outlook® Adressbuch auslesen

VBA und Makros • Codeschnipsel • Arbeitsblatt • Adressbuch • Auslesen • CDO

Ausgangslage ... Was tut der Codeschnipsel?

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

VBAVBA Codeschnipsel
XLSQuelltext zur Verwendung mit Microsoft® Excel®
OUTQuelltext zur Verwendung mit Microsoft® Outlook®

Der Quelltext ...

Option Explicit
' ****************************************************************
' Autor/en und Original-Quelltext unter:
' https://www.online-vba.de/vba_outlookadr.php
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von https://www.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.
Es gelten die Nutzungsbedingungen von Online-VBA.de.
TOTOP
ANZEIGE