How to: Programmatically Access Outlook Contacts

This example finds all contacts whose last names contain a specified search string.

Applies to: The information in this topic applies to application-level projects for Outlook 2013 and Outlook 2010. For more information, see Features Available by Office Application and Project Type.

Example

Private Sub ThisAddIn_Startup(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Me.Startup
        AccessContacts("Na")
    End Sub 

    Private Sub AccessContacts(ByVal findLastName As String)
        Dim folderContacts As Outlook.MAPIFolder = Me.Application.ActiveExplorer() _
            .Session.GetDefaultFolder(Outlook.OlDefaultFolders _
            .olFolderContacts)
        Dim searchFolder As Outlook.Items = folderContacts.Items
        Dim counter As Integer = 0
        For Each foundContact As Outlook.ContactItem In searchFolder
            If foundContact.LastName.Contains(findLastName) Then
                foundContact.Display(False)
                counter = counter + 1
            End If 
        Next
        MsgBox("You have " & counter & _
            " contacts with last names that contain " _
            & findLastName & ".")
    End Sub
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    AccessContacts("Na");
}

private void AccessContacts(string findLastName)
{
    Outlook.MAPIFolder folderContacts = this.Application.ActiveExplorer().Session.
        GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
    Outlook.Items searchFolder = folderContacts.Items;
    int counter = 0;
    foreach (Outlook.ContactItem foundContact in searchFolder)
    {
        if (foundContact.LastName.Contains(findLastName))
        {
            foundContact.Display(false);
            counter = counter + 1;
        }
    }
    MessageBox.Show("You have " + counter +
        " contacts with last names that contain "
        + findLastName + ".");
}
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    AccessContacts("Na");
}

private void AccessContacts(string findLastName)
{
    Outlook.MAPIFolder folderContacts = this.Application.ActiveExplorer().Session.
        GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
    Outlook.Items searchFolder = folderContacts.Items;
    int counter = 0;
    foreach (Outlook.ContactItem foundContact in searchFolder)
    {
        if (foundContact.LastName.Contains(findLastName))
        {
            foundContact.Display(false);
            counter = counter + 1;
        }
    }
    MessageBox.Show("You have " + counter +
        " contacts with last names that contain "
        + findLastName + ".");
}

Compiling the Code

This example requires:

  • Contacts whose last names contain the string "Na" (for example, Tzipi Butnaru) in the Contacts folder.

See Also

Tasks

How to: Programmatically Add an Entry to Outlook Contacts

How to: Programmatically Search for a Specific Contact

How to: Programmatically Search for an E-Mail Address in Contacts

How to: Programmatically Delete Outlook Contacts

Concepts

Working with Contact Items