How to access contact groups in Excel VBA? How to access contact groups in Excel VBA? vba vba

How to access contact groups in Excel VBA?


Just use the name of the contact group (formerly called "distribution lists"). I just tried it, as suggested on Ron de Bruin's site, and it works.


Expanding on the accepted answer to simply use the name, ensure that the Contact Group name is not ambiguous.

For example, if I have two groups called "My List" and "My List 2". When I try to manually send an email and only type "My List" in the 'To' box, Outlook shows a pop-up asking which list to resolve. This works kind of like and autofill suggestion in Excel. If instead I typed "My List 2", Outlook will know exactly which list I want.

Similarly, Outlook gets confused when trying the same things via VBA, and the error message is not very clear: "Outlook does not recognize one or more names".

The simplest workaround I'm aware of is simple to change the name of "My List" to "My List 1" or anything else completely unique, where no other list shares that exact base name.


In order to have the recipient's email addresses or names resolved (so they don't display just plain text), you can do the following.

With OutMail    '.TO field should be set to the contact group    .BCC = ""    .Attachments.Add ActiveWorkbook.FullName    .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod)    .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod)    'To display the email leave as is;  to send the Email, change to .Send    .Display    'or Send    If Not .Recipients.ResolveAll Then        For Each Recipient In .Recipients            If Not Recipient.Resolved Then                MsgBox Recipient.Name & " could not be resolved"            End If        Next     End IfEnd With