如何使用 VBA 打开联系人列表

How to open contact list with VBA

如何使用 VBA 来完成与 Ctrl+Shift+B 相同的操作、工具、选项、自定义并将特定联系人列表设置为第一?

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

在扩展 MAPI(C++ 或 Delphi)中,适当地使用 IAddrBook.SetDefaultDir and set the PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY 属性。

如果使用 Redemption (any language - I am its author) is an option, you can use the RDOAddressBook.DefaultAddressList 属性:

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

这是你想做的吗?

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