如何使用 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
如何使用 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