Imported Addresses are Missing from Address Book

Last reviewed on April 12, 2012

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

Written by

Diane Poremsky
A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

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