У меня есть пользовательская форма с 3 текстовыми полями и 1 кнопкой. Я хочу поместить псевдоним Outlook в текстовое поле 1 (txtPID) и вернуть тип отображения и адрес электронной почты в поля 2 и 3 (txtName и txtEmail).
похоже, что это подключается к Outlook и извлекает информацию, но не ищет псевдоним, указанный в текстовом поле 1.
Load UsrFrmNewRep
Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim olGAL As Outlook.AddressList
Dim olMember As Outlook.AddressEntry
Dim olAliasName As String
Dim exchuser As Outlook.ExchangeUser
Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
Set olGAL = olNS.AddressLists("Global Address List")
olAliasName = UsrFrmNewRep.txtPID.Value
Set olMember = olGAL.AddressEntries(olAliasName)
Set exchuser = olMember.GetExchangeUser
If Not exchuser Is Nothing Then
UsrFrmNewRep.txtName.Value = exchuser.DisplayType
UsrFrmNewRep.txtEmail.Value = exchuser.PrimarySmtpAddress
End If
End Sub
я уверен, что я не ссылаюсь на что-то правильно, я просто не уверен, что.
Спасибо
Вместо olGAL.AddressEntries(olAliasName)
используйте olNS.CreateRecipient(olAliasName)
/ Recipient.Resolve
/ set olMember = Recipient.AddressEntry
Спасибо @Dmitry, пришлось немного проб и ошибок, но это сработало именно так, как я хотел.