如何用VBA打开联系人列表

时间:2018-02-28 20:16:11

标签: vba outlook outlook-vba addressbook

如何使用VBA执行与 Ctrl + Shift + B ,工具,选项,自定义相同的操作并设置特定的内容联系人列表为第一名?

2 个答案:

答案 0 :(得分:2)

您无法在VBA中执行此操作 - Outlook对象模型不会公开该功能。

在扩展MAPI(C ++或Delphi)中,使用IAddrBook.SetDefaultDir并相应地设置PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY属性。

如果使用Redemption(任何语言)是一个选项,您可以使用RDOAddressBookDefaultAddressList属性:

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AddrList = Session.AddressBook.AddressLists.Item("Contacts")
Session.AddressBook.DefaultAddressList = AddrList

答案 1 :(得分:2)

这是你想要做的吗?

Option Explicit
Public Sub Example()
    Dim olDialog As SelectNamesDialog
    Dim AL As AddressList

    Set olDialog = Application.Session.GetSelectNamesDialog
    Set AL = Application.GetNamespace("MAPI").AddressLists("Contacts")

    Debug.Print AL.GetContactsFolder

    With olDialog
        .InitialAddressList = AL
        .ShowOnlyInitialAddressList = True
        .Display
    End With
End Sub