У меня есть кнопка с именем selectRec
, которую пользователи будут нажимать в пользовательской форме.Запустить диалоговое окно адресной книги Outlook с помощью VBA
Я хочу, чтобы эта кнопка была нажата, затем в диалоговом окне «Адресная книга Outlook» предлагается добавить получателей. Затем получатели будут добавлены к ListBox1
. В приведенном ниже коде только один получатель может быть добавлен, даже если выбрано много. Это связано с тем, что он получает доступ только к 1-му элементу массива oDialog.recipients.Item
. Я не знаю, как использовать цикл для перебора через что-то я не знаю длину (так как они могут добавить столько адресов электронной почты, как они хотели)
Private Sub selectRec_Click()
Dim olApp As Outlook.Application
Dim oDialog As SelectNamesDialog
Dim oGAL As AddressList
Dim myAddrEntry As AddressEntry
Dim exchUser As Outlook.ExchangeUser
Dim AliasName As String
Dim FirstName As String
Dim LastName As String
Dim EmailAddress As String
Set olApp = GetObject(, "Outlook.Application")
Set oDialog = olApp.Session.GetSelectNamesDialog
Set oGAL = olApp.GetNamespace("MAPI").AddressLists("Global Address List")
With oDialog
.AllowMultipleSelection = True
.InitialAddressList = oGAL
.ShowOnlyInitialAddressList = True
If .Display Then
AliasName = oDialog.recipients.Item(1).Name
Set myAddrEntry = oGAL.AddressEntries(AliasName)
Set exchUser = myAddrEntry.GetExchangeUser
If Not exchUser Is Nothing Then
FirstName = exchUser.FirstName
LastName = exchUser.LastName
EmailAddress = exchUser.PrimarySmtpAddress
End If
ListBox1.AddItem (EmailAddress)
End If
End With
Set olApp = Nothing
Set oDialog = Nothing
Set oGAL = Nothing
Set myAddrEntry = Nothing
Set exchUser = Nothing
End Sub