我正在尝试在Excel中的VBA脚本中访问AddressList的AddressEntries属性。该列表是包含存储在Exchange Server上的联系人的全局地址列表。
当我尝试运行以下代码时,它会给我一个错误:
运行时错误''应用程序定义或对象定义错误
这是我尝试执行的准系统代码。调试器在我尝试访问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
答案 0 :(得分:2)
似乎您的防病毒软件将访问视为潜在威胁 - 它是用于访问您的数据的编码自动化。
与您的管理员联系,看看您是否可以启用信任中心中显示的其中一个选项(打开Outlook 2010,转到“文件/选项/信任中心”菜单项,然后单击“信任中心设置”对话框右侧的按钮),最好是第一个按钮。
Here是一篇关于启用您可以尝试访问的文章。