2014-03-31 61 views
1

是否可以使用VBA添加/刪除Exchange分發列表的成員?是否可以使用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

快速回答爲否,您無法使用Exchange Web服務使用VBA添加和刪除Exchange通訊組的成員。通訊組在Exchange服務器上管理,我知道使用代碼管理這些組的唯一方法是使用Exchange命令行管理程序中的cmdlet或API修改Active Directory。我最近發表在MSDN上,大約通訊組與EWS會談的文章,也列出可用的命令一節:

Managing distribution groups by using the Exchange Management Shell

一旦你創建了使用這些cmdlet的腳本你可以調用腳本從您的VBA代碼使用Shell()函數。我自己並沒有這樣做,但我曾在其他論壇上看過帖子,人們在這方面取得了一些成功。下面是另一篇文章的鏈接,讓你開始顯示在Excel中調用腳本VBA的例子:

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

我希望這個信息幫助。如果這確實能解決您的問題,請將此帖標記爲已回答。

感謝,

---鮑勃---

+0

感謝鮑勃,這確實給我,我一直在尋找的答案。不幸的是Visual Studio目前還沒有提供給我,所以我必須繼續以手動方式進行。從好的一面來看,我寫了一些SendKeys,它可以提供一定程度的自動化。 –

1

鮑勃是不正確。您絕對可以通過VBA管理DL成員資格。我一直這樣做。您通過ADSI管理組成員身份,並且有一個記錄良好的API來執行此操作。這裏有一些功能,我寫這樣做:

http://naterice.com/articles/62

+1

謝謝,彌敦道,我會檢查一下並回復給你。如果我能把這個工作,你會讓我的生活變得更輕鬆! –

+0

Nathan,當談到ADSI時,請原諒我的天真,但是在您的代碼中,您指的是「組」和「用戶」,這是否分別指的是「Exchange分佈列表」和「成員」?我看不到任何對Outlook,Exchange或聯繫人的引用。 在此先感謝。 –

+0

Exchange分發列表只是AD組,而其成員是啓用郵件的AD用戶。您可以像在AD中一樣將用戶添加到組以將用戶添加到DL。 –

相關問題