If you would like to get the number of the appointments that are linked to a specific contact, you can use either of the 2 means introduced in this article.
Outlook allows users to link appointments to contacts. If you have linked many appointments to a specific contact and later want to count them, you must dislike counting them one by one. Therefore, in the followings, we will introduce 2 ways to you. You can choose ether to your liking.
Method 1: Count in Contact “Activities”
- At first, double click the specific contact to open it in its own window.
- Then, click the “Activities” in the “Show” group.
- Next, in the new page, move cursor to header of the activity list.
- Subsequently, right click and choose “View Settings” from the context menu.
- Afterwards, in the popup dialog box, click “Group By” button.
- Later, in another dialog, select “Message Class” in the “Group items by” drop down list.
- Ultimately, click a series of “OK” to apply the view settings.
- When you return to the list, you can see a group called “IPM.Appointment” with a total count of all the appointments linked to the current macro, shown as the following screenshot.
Method 2: Count with Outlook VBA
- To begin with, access Outlook VBA editor via “Alt + F11”.
- Then, copy the following VBA code into a module.
Dim objContact As ContactItem Sub CountAppointmentsLinkedToContact() Dim objStore As Store Dim objOutlookFile As Folder Dim lTotalCount As Long 'Get the contact Set objContact = Outlook.Application.ActiveExplorer.Selection.Item(1) lTotalCount = 0 For Each objStore In Application.Session.Stores Set objOutlookFile = objStore.GetRootFolder Call ProcessFolders(objOutlookFile.Folders, lTotalCount) Next 'Prompt you If lTotalCount > 0 Then MsgBox lTotalCount & " appointments are linked to " & objContact.FullName & ".", vbInformation + vbOKOnly Else MsgBox "No appointment is linked to " & objContact.FullName & ".", vbExclamation + vbOKOnly End If End Sub Sub ProcessFolders(ByVal objFolders As Folders, lCount As Long) Dim objFolder As Folder Dim objItem As Object 'Process all folders recursively For Each objFolder In objFolders For Each objItem In objFolder.Items If TypeOf objItem Is AppointmentItem Then If objItem.Links.Count > 0 Then i = 0 Do Until i = objItem.Links.Count i = i + 1 If objItem.Links(i).Name = objContact.FullName Then lCount = lCount + 1 Exit Do End If Loop End If End If Next If objFolder.Folders.Count > 0 Then Call ProcessFolders(objFolder.Folders, lCount) End If Next End Sub
- Later, add this macro to Quick Access Toolbar (QAT) by following the steps in “How to Run VBA Code in Your Outlook“.
- Finally, you can try it.
- First off, select a contact.
- Then, hit the macro button in QAT.
- When macro finishes, you will receive a message about the count of appointments linked to the selected contact, like the picture below.
When Encountering Frequent Outlook Issues
Assuming that you always come across a variety of problems in your Outlook, you should raise your vigilance. It is very likely that your Outlook PST file tends to be corrupted. At this point, you’d make an updated backup of your Outlook data file at once. Also, if possible, it is recommended to get hold of a powerful PST repair tool, such as DataNumen Outlook Repair.
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including recover sql and outlook repair software products. For more information visit www.datanumen.com