无法从AddressList对象(Outlook VBA)

时间:2017-06-14 20:47:20

标签: excel vba outlook

我正在尝试在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

1 个答案:

答案 0 :(得分:2)

似乎您的防病毒软件将访问视为潜在威胁 - 它是用于访问您的数据的编码自动化。

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

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