无法从AddressList对象(Outlook VBA)访问AddressEntries对象

我试图访问Excel中的VBA脚本内的AddressList的AddressEntries属性。 该列表是包含存储在Exchange Server上的联系人的全局地址列表。

当我尝试运行下面的代码时,它给了我一个错误:

运行时错误“287”:应用程序定义或对象定义的错误

这是我试图执行的准系统代码。 debugging器停止在我尝试访问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文件中的电子邮件地址列表相对应的条目,并检查每个条目是否在Phone Number(电话号码)属性中列出了一个工作电话号码。

编辑: Outlook的灰色图像我的选项

设置应用

编辑2:这仍然给我在第二行相同的错误

 Set appOL = CreateObject("Outlook.Application") Set oGAL = appOL.GetNamespace("MAPI").AddressLists("Global Address List").AddressEntries 

看起来像你的杀毒软件将访问视为潜在的威胁 – 这是一个编码自动化访问你的数据。

检查您的pipe理员,看看您是否可以启用信任中心显示的选项之一(打开Outlook 2010,转到“文件/选项/信任中心”菜单项,然后单击“信任中心设置”button对话框的右侧),最好是第一个。

这是一篇关于启用访问的文章,您可以试试。