Part 4: Automating Outlook using QTP | Working with Outlook Contacts
In this article, you’ll see how you can work with Outlook Contacts. We’ll cover various topics such as how to access Outlook Contacts, how to retrieve properties (such as name, telephone number, email id etc) from an Outlook Contact, how to search for a Contact, how to create a new Contact, delete a Contact etc.
In Outlook, Contact Items are stored in Contacts folder and it is represented by ContactItem object. ContactItem objects contain a variety of contact information, such as people’s street addresses, e-mail addresses, and phone numbers. It also provides a set of methods using which you can access Outlook Contacts. Let’s see few examples on how to work with Outlook Contacts.
Sample Code 1: Access Outlook Contacts and display details of a Contact. Here the script accesses contact items from Contacts folder and displays the details of the first contact.
Dim sMessage sMessage = "" Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") 'Create reference to Contacts Folder Set oContacts = objNamespace.GetDefaultFolder(10) 'Find all items in the Contacts Folder Set oAllContacts = oContacts.Items iCount = oAllContacts.Count sMessage = "Total Contacts -> " & iCount & vbCrLf & vbCrLf 'Find out different properties of the first contact If iCount >= 1 Then sMessage = sMessage & "Full Name - " & oAllContacts(1).FullName & vbCrLf sMessage = sMessage & "Company - " & oAllContacts(1).CompanyName & vbCrLf sMessage = sMessage & "Job Title - " & oAllContacts(1).JobTitle & vbCrLf sMessage = sMessage & "File As - " & oAllContacts(1).FileAs & vbCrLf sMessage = sMessage & "Email - " & oAllContacts(1).Email1Address & vbCrLf sMessage = sMessage & "Display As - " & oAllContacts(1).Email1DisplayName & vbCrLf sMessage = sMessage & "Web Page - " & oAllContacts(1).WebPage & vbCrLf End If 'Display the contact properties msgbox sMessage
Sample Code 2: Create a new Outlook Contact. This example creates a new Outlook Contact and displays it.
Dim olContactItem 'olContactItem is Referenced by Value 2 olContactItem = 2 Set objOutlook = CreateObject("Outlook.Application") Set oNewContact = objOutlook.CreateItem(2) 'Set Properties for the new Contact oNewContact.FirstName = "First" oNewContact.LastName = "Last" oNewContact.Email1Address = "first@email.com" oNewContact.CustomerID = "123456" oNewContact.PrimaryTelephoneNumber = "(91)0000000000" oNewContact.MailingAddressStreet = "Street" oNewContact.MailingAddressCity = "City" oNewContact.MailingAddressState = "State" 'Save details and display oNewContact.Save oNewContact.Display
Sample Code 3: Copy an Existing Outlook Contact. This example searches for a contact with a specific mail id and then creates a copy of the same.
Dim iCount, objReturnVal Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") 'Create reference to Contacts Folder Set oContacts = objNamespace.GetDefaultFolder(10) 'Find all items in the Contacts Folder Set oAllContacts = oContacts.Items iCount = oAllContacts.Count 'Copy an existing contact For i=1 to iCount If oAllContacts(i).Email1Address = "abc@email.com" Then 'objReturnVal is the object that contains the copied Contact Set objReturnVal = oAllContacts(i).Copy Exit For End If Next 'Display Results msgbox "Contact Copied. Full Name -> " & objReturnVal.FullName
Sample Code 4: Delete an Outlook Contact. This example deletes an Outlook Contact based on a specific criteria
Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") 'Create reference to Contacts Folder Set oContacts = objNamespace.GetDefaultFolder(10) 'Find all items in the Contacts Folder Set oAllContacts = oContacts.Items iCount = oAllContacts.Count For i = 1 to iCount If oAllContacts(i).Email1Address = "abc@email.com" Then oAllContacts(i).Delete Exit For End If Next
If you feel that we have missed out any important concept, or if you want any other topic to be covered here, please leave a comment or just drop in a mail to us. We’ll be more than happy to work on it.
If you enjoyed this article, you can join our blog to get new posts delivered directly in your inbox.