我試圖訪問Excel中的VBA腳本內的AddressList的AddressEntries屬性。該列表是包含存儲在Exchange Server上的聯繫人的全局地址列表。無法從AddressList對象(Outlook VBA)訪問AddressEntries對象
當我嘗試雖然運行下面的代碼,它給了我一個錯誤:
Run-time error '287': Application-defined or object-defined error
這裏是我想執行的準系統代碼。調試器停止在我嘗試訪問AddressEntries的行上。
Public Sub Test()
Dim appOL As Object
Dim mapiNamespace As Object
Dim GAL As AddressList, allGAL As AddressEntries
Set appOL = GetObject(, "Outlook.Application")
Set mapiNamespace = appOL.GetNamespace("mapi")
Set GAL = mapiNamespace.AddressLists("Global Address List")
Set allGAL = GAL.AddressEntries 'Debugger stops here
MsgBox allGAL.Count
End Sub
服務器上的某些設置是否能夠阻止我訪問列表條目?有沒有其他的方式來獲得參賽作品?我的最終目標是從列表中獲取與我在Excel文件中的電子郵件地址列表相對應的條目,並檢查每個條目是否在其電話號碼屬性中列出了一個工作電話號碼。
編輯: Image of Outlook graying out my options
設置應用
EDIT2:這仍然給了我同樣的錯誤在第二行
Set appOL = CreateObject("Outlook.Application")
Set oGAL = appOL.GetNamespace("MAPI").AddressLists("Global Address List").AddressEntries
在運行代碼時Outlook是否提示訪問? Outlook有可能阻止「程序化訪問」,從而給您帶來錯誤。 [這裏](https://social.technet.microsoft.com/Forums/ie/en-US/64c14bd3-0e7f-4ba9-b2bd-26cf62ce5883/how-to-stop-outlook-security-message-a-program- is-trying-to-access-email-addresses-allow-access?forum = outlook)是一篇關於啓用訪問的文章,您可以試試。 – Alex
你看過[這個答案](https://stackoverflow.com/a/18406935/4717755)嗎?這似乎表明它有點不同。 – PeterT
@Alex好像你在那裏。我的管理員似乎已將選項弄得灰白,以致於無法編程訪問(請參閱上面的編輯和圖像) – takanuva15