ich würde gerne mit VBA in Excel das globale Adressbuch von Outlook nach Namen durchsuchen und mir die dazu passende e-Mail Adresse zurückgeben lassen. Dazu habe ich mir eine Funktion geschrieben, welche soweit auch funktioniert. Das Problem ist das das globale Adressbuch um die 400000 Einträge enthält! Es kommt also nicht in Frage mit einer Schleife jeden Eintrag zu durchsuchen.
Das Problem:
Bei so vielen Einträgen kommt es vor dass Personen gleiche Namen haben und in diesem Fall gibt die Funktion natürlich nur den zuerst gefundenen Kontakt zurück.
Meine Frage:
Wie kann ich meinen Code anpassen dass ich mehrere Treffer erhalte und sich dann z.B. eine Auswahl öffnet aus der man den passenden Kontakt wählen kann?
Über Hilfe würde ich mich sehr freuen :)
Ich bin kein Profi und nehme natürlich auch gerne Tipps zum bestehenden Code an.
Mein bisheriger Code:
Function GetMail(strName As String) As String
Dim outApp As Outlook.Application
Dim outNms As Outlook.Namespace
Dim outAddr As Outlook.AddressList
Dim outRcpt As Outlook.AddressEntry
On Error GoTo MailError
Set outApp = New Outlook.Application
Set outNms = outApp.GetNamespace("MAPI")
Set outAddr = outNms.AddressLists("Globale Adressliste")
Set outRcpt = outAddr.AddressEntries(strName)
GetMail = outRcpt.GetExchangeUser.PrimarySmtpAddress
Exit Function
MailError:
Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
Exit Function
End Function