我试图访问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