如何使用VBA执行与 Ctrl + Shift + B ,工具,选项,自定义相同的操作并设置特定的内容联系人列表为第一名?
答案 0 :(得分:2)
您无法在VBA中执行此操作 - Outlook对象模型不会公开该功能。
在扩展MAPI(C ++或Delphi)中,使用IAddrBook.SetDefaultDir并相应地设置PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY属性。
如果使用Redemption(任何语言)是一个选项,您可以使用RDOAddressBook。DefaultAddressList
属性:
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