是否可以使用VBA添加/删除Exchange通讯组列表的成员?

时间:2014-03-31 10:08:12

标签: vba outlook exchange-server

是否可以使用VBA添加/删除Exchange通讯组列表的成员?

我可以使用以下代码遍历成员,但我似乎无法添加新代码。

Dim olApp As New Outlook.Application 'Start instance of Outlook
Dim olNS As Outlook.NameSpace 'Reference the Outlook namespace and use MAPI
Set olNS = olApp.GetNamespace("MAPI") 'Open the AddressList you want to use
Dim olAddressList As Outlook.AddressList
Set olAddressList = olNS.AddressLists("Global Address List")

olAddressList.AddressEntries.Item(DLList).Members.Item (1).name

2 个答案:

答案 0 :(得分:2)

快速回答是否定的,您无法使用带有Exchange Web服务的VBA添加和删除Exchange通讯组的成员。通讯组在Exchange服务器上进行管理,我知道使用代码管理这些组的唯一方法是使用Exchange命令行管理程序或API中的cmdlet来修改Active Directory。我最近在MSDN上发表了一篇文章,讨论了使用EWS的通讯组,并且有一节列出了可用的cmdlet:

Managing distribution groups by using the Exchange Management Shell

使用这些cmdlet创建脚本后,您可以使用Shell()函数从VBA代码中调用脚本。我自己没有这样做,但我在其他论坛上看到了人们在这方面取得一些成功的帖子。这是一个链接到另一篇文章,以帮助您入门,其中显示了Excel中调用脚本的VBA示例:

Can I pass a VBA variable into a called Powershell script?

我希望这些信息有所帮助。如果这确实解决了您的问题,请将此帖标记为已回答。

谢谢,

---鲍勃---

答案 1 :(得分:1)

Bob不对。您绝对可以通过VBA管理DL会员资格。我一直这样做。您可以通过ADSI管理组成员身份,并且有一个记录良好的API来执行此操作。以下是我写的一些函数:

http://naterice.com/articles/62