[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 9040
  • Last Modified:

VBA Looking Up User in Global Address List

So I have the VBA code below, found via Google. References are as shown in the attached bitmap, all in Office 2007.

What I'd like to do is modify the line which dispalys the Global Address List to default to select a specific individual (e.g. I want to use this to look up people in the GAL)
Set orecip = oCDOSession.AddressBook(Nothing, txtCaption, True, True, 1, buttontext, "", "", 0)

when the thing opens. However, I can't find ANY documentation on the Namespace.AddressBook method. Any ideas what each of it's arguements represent, or where there is some documentation on this? (I understand args 2 and 6...)


Sub Main()
    Call Globaladdress("Access-Executive", "Address Book: Global Address List", "Add")
End Sub

Sub Globaladdress(fieldname, caption, buttontext)
    Dim oOutlookApplication As Outlook.Application
    On Error Resume Next
    
    If oOutlookApplication Is Nothing Then
        Err.Clear
        Set oOutlookApplication = CreateObject("Outlook.Application")
    Else
        Set oOutlookApplication = GetObject(, "Outlook.Application")
    End If
    
    Set oCDOSession = CreateObject("Mapi.Session")
    oCDOSession.Logon "", "", False, False, 0
    txtCaption = caption 'The title of the window, e.g. "Address Book: Global Address List"
    
    If Not Err Then
        Set orecip = oCDOSession.AddressBook(Nothing, txtCaption, True, True, 1, buttontext, "", "", 0)
    End If
    
    If Not Err Then
        Item.UserProperties.Find(fieldname).Value = orecip(1).Name
    End If
    
    oCDOSession.Logoff
    oCDOSession = Nothing
    oOutlookApplication = Nothing
End Sub

Open in new window

References.bmp
0
travisjbennett
Asked:
travisjbennett
  • 4
  • 3
1 Solution
 
David LeeCommented:
Hi, travisjbennett.

Forgetting about this code for a minute, what is it that you want to accomplish?  There may be a simpler way to do this.
0
 
travisjbennettAuthor Commented:
I already know how to use LDAP via VBA -- I'm just trying to learn the method to give end users a nice pretty recognizable dialog with all the user info in it -- a way to automate looking up someone in the GAL.
All I want to do is pre-select someone (their name highlighted for easy right clicking to properties) in the GAL.
0
 
David LeeCommented:
Sorry, but I'm not clear on what you have in mind.  Outlook already has a means of searching the GAL and right-clicking to view the properties of an entry.  Are you proposing another means of doing the same thing?  If so, what's the advantage?  If not, then I'm not understanding your goal.
0
Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

 
travisjbennettAuthor Commented:
Outlook has the abilities built in, sure...

... But Access does not.

A VBA solution would make it extensible across all of Microsoft Office.

I want to open a user properties form from Access, and add/remove people to lists within Access.
0
 
David LeeCommented:
You can call Outlook's address book function from any Microsoft Office app using VBA.
0
 
travisjbennettAuthor Commented:
How?
0
 
David LeeCommented:
Sorry to be slow.  Here's how.  Be sure to include a project reference to Outlook.
Sub ShowOutlookAddressBook()
    Dim olkApp As Outlook.Application, olkSes As Outlook.Namespace, olkSND As Outlook.SelectNamesDialog
    Set olkApp = GetObject(, "Outlook.Application")
    Set olkSes = olkApp.Session
    Set olkSND = olkSes.GetSelectNamesDialog
    With olkSND
        .AllowMultipleSelection = True
        .Display
        'The selections the user makes will be in the olkSND.Recipients collection'
    End With
    Set olkSND = Nothing
    Set olkSes = Nothing
    Set olkApp = Nothing
End Sub

Open in new window

0
 
Glen KnightCommented:
This question has been classified as abandoned and is being closed as part of the Cleanup Program. See my comment at the end of the question for more details.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now