You can work with a distribution list (DL) if you have the appropriate permissions in the address list that contains it. Normally you have the required permissions in your personal address book (PAB), in which you can create and modify a private distribution list (PDL). Permissions for the global address list (GAL) are typically limited to a very few profiles, but users with appropriate permissions can modify it as well.
The following code fragment provides two utility functions: AddDLToAL, which creates a new private distribution list in the address list the caller specifies by name; and AddUserToDL, which adds an address entry to a distribution list specified by the caller.
Public Function AddDLToAL(objAL As MAPI.AddressList, _
strDLName As String) As MAPI.AddressEntry
' Create a new (private) DL in the specified address list
Dim colAEs As MAPI.AddressEntries
Dim objNewAE As MAPI.AddressEntry
On Error GoTo Err_AddDLToAL
Set colAEs = objAL.AddressEntries
Set objNewAE = colAEs.Add("MAPIPDL", strDLName)
objNewAE.Update ' commit changes to persistent storage
Set AddDLToAL = objNewAE ' return added PDL (AddressEntry object)
Exit Function
Err_AddDLToAL:
Set AddDLToAL = Nothing ' no object was added to address list
Exit Function
End Function
Public Function AddUserToDL(objDL As MAPI.AddressEntry, _
strAEName As String, _
strAEAddr As String) As Boolean
' Add an address entry to the specified DL
Dim objNewAE As MAPI.AddressEntry
On Error GoTo Err_AddUserToDL
Set objNewAE = objDL.Members.Add("SMTP", strAEName)
With objNewAE
.Address = strAEAddr
.Fields(CdoPR_COMMENT) = "Added by AddUserToDL function"
.Fields(CdoPR_COMPANY_NAME) = "Our company"
.Fields(CdoPR_DEPARTMENT_NAME) = "Your department"
.Fields(CdoPR_MANAGER_NAME) = "Your manager"
.Fields(CdoPR_TITLE) = "Dr/Mr/Mrs/Ms/M/Mme/Mlle/Sr/Sra/Herr/Fr"
.Fields(CdoPR_GIVEN_NAME) = "Your first name"
.Fields(CdoPR_SURNAME) = "Your last name"
.Update
End With
AddUserToDL = True ' successful
Exit Function
Err_AddUserToDL
AddUserToDL = False ' unsuccessful
Exit Function
End Function