How to Update Contacts in Distribution Lists

How to Update Contacts in Distribution Lists

Outlook allows the user to create an object consisting of a group of contacts. This type of object, called a distribution list, has a unique set of features. One of those lets you update contacts that were earlier added to the group list by selecting them in the address book.

Such contacts can evolve, but unfortunately they are not permanently tied with the distribution list. This means that changing contact information and sending a message to a distribution list will not cause the intended effect. Unless the contact was deleted and replaced by an (almost) identical one, it should have a reference number partially consistent with the contact chosen in the list building phase.

e.g. contact has the number: “000000003921EFB12C34994594C86EC4DE706AB084092200”

and based on it, a contact attached to a distribution list has the number:


It would seem that, to get the new contact address and replace it simultaneously updating the list member, all one needs to do is refer to the 48 characters of every contact in the list.

Sub contact_data_request()
    Debug.Print(FindAContact("Surname Name"))
End Sub
Function FindAContact(ByVal adres As String) As String
    Dim oItems As Items, oContact As ContactItem
    Dim oContactFolder As MAPIFolder
    oContactFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
    oItems = oContactFolder.Items
    oContact = oItems.Find("[FullName] =" & """" & address & """" & "")
    FindAContact = oContact.EntryID  '.Email1Address 'can be an address
    oContact = Nothing
    oContactFolder = Nothing
    oItems = Nothing
End Function

Unfortunately the manufacturer left the parameter oDistList.GetMember(nIndex) .AddressEntry “to be read”. Moreover, the user can change not only the contact address, but also its name. In this case the above code (if working) would return an error. It can be argued that Microsoft left this feature unavailable for the user, because one cannot refer to any of the available parameters of a group member.

Fig.1. Contact list update in Outlook 2007

To get around this problem one can apply automatic clicking method (as by the user).

To achieve this the below provided procedure needs to be embedded in the Outlook developer module [Alt+F11], and then activated from the level of the Outlook contacts folder, where the distribution lists are stored.

Sub distribution_list_update()
    'Created by OShon 2011-04-22
    Dim item As Object, oDistList As DistListItem
    Dim oFolder As MAPIFolder, WshShell, winexist As Boolean
    oFolder = Application.ActiveExplorer.CurrentFolder
    For Each item In oFolder.Items
        If item.Class = 69 Then
            oDistList = item

            WshShell = CreateObject("WScript.Shell")
            Do While winexist = False
                winexist = WshShell.AppActivate(oDistList.DLName)
            Select Case Val(Application.Version)
                Case 12 'for Outlook 2007
                    Sleep(100) : SendKeys("%RU")
                    Sleep(100) : SendKeys("%RSS")
                Case 14 'for Outlook 2010
                    Sleep(100) : SendKeys("%TU")
                    Sleep(100) : SendKeys("%TSS")
            End Select
        End If
    WshShell = Nothing
    oDistList = Nothing
    oFolder = Nothing
End Sub
Procedure was successfully tested for Outlook 2007 and Outlook 2010.

If you are not experienced in macro installation in Microsoft Outlook, please refer to the article Installation and running macros

 (c) Shon Oskar 
© All rights reserved. No part or whole of this article may not be reproduced or published without prior permission.
Oryginal article publicate at this page
Leave a Comment
  • Please add 7 and 5 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
  • Richard Mueller edited Original. Comment: Removed (en-US) from title, modified title casing, added tags

Page 1 of 1 (1 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
  • Richard Mueller edited Original. Comment: Removed (en-US) from title, modified title casing, added tags

Page 1 of 1 (1 items)