Last reviewed on April 12, 2012   —  No Comments

If you have Contacts in the Contacts folder but they are not accessible when you click on the To button, and they were not imported, see Outlook Contacts are missing when you click the To button for a common problem affecting Microsoft Outlook.

Addresses imported into the Contacts folder from sources other than the Personal Address Book (a) may not appear in the Address Book display and (b) may not show all fields when Inserting Addresses in Microsoft Word Documents.

In case (a), the e-mail address has not been "resolved," using the Check Names function. Resolved addressees are underlined in the E-mail fields in the Contacts record. You can either open each record and use Tools | Check Names or press Ctrl+K (use the Next Item button to browse through quickly) or add VBScript to a form using the technique in the MSKB article How to Programmatically Resolve a Contact E-mail Address. Or, you can use the Resolve E-mail Address Utility.

Resolve Addresses using VBA

Please note: I have not personally tested this code to verify it fixes the problem (I don’t have any contacts that are not resolved) but it *should* work. I have run it on my own contacts and it did not “break” anything.

Public Sub ResolveEmailAddresses()
     Dim objOL As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Dim objContact As Outlook.ContactItem
    Dim objItems As Outlook.Items
    Dim objContactsFolder As Outlook.MAPIFolder
    Dim obj As Object

    On Error Resume Next

    Set objOL = CreateObject("Outlook.Application")
    Set objNS = objOL.GetNamespace("MAPI")
    Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
    Set objItems = objContactsFolder.Items

    For Each obj In objItems
        'Test for contact and not distribution list
        If obj.Class = olContact Then
            Set objContact = obj

     With objContact

          If .Email1Address <> "" Then
                .User1 = .Email1Address
                .Email1Address = .User1
        '        .User1 = ""
            .Save
         End If


     End With
        End If

     Err.Clear
    Next

    Set objOL = Nothing
    Set objNS = Nothing
    Set obj = Nothing
    Set objContact = Nothing
    Set objItems = Nothing
    Set objContactsFolder = Nothing
End Sub


Leave a Reply

Please post long or more complicated questions at OutlookForums by Slipstick.com.

If the Post Comment button disappears, press your Tab key.