Я клерк и немного подумал о себе как о Excel-VBA, чтобы автоматизировать некоторые задачи в офисе.
Однако, когда я «кодировал», я наткнулся на проблему, что я не могу получить информациюуказано в поле Инициалы из адресной книги Outlook с помощью vba. Когда вы нажимаете на запись в адресной книге Outlook, появляется всплывающее окно с информацией о пользователе. С помощью vba я мог легко получить доступ ко всем полям, кроме поля «Инициалы».
Вот окно с полем, обозначенным красным AddressBookInformationJohnDoe
Один сценарий, который я написал, извлекает информацию о сотруднике в моей компании и копирует ее в ячейки рядом с именем сотрудника. (См. Упрощенный код ниже. Код, который, очевидно, не работает, закомментирован и заканчивается знаком вопроса.)
Sub GetInfoUserShort()
Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim olRecip As Outlook.Recipient
Dim Cell As Range
Dim NameEmpl As String
Dim Company As String
Dim Initials As String
NameEmpl = LCase(Trim(ActiveCell.Value))
Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
Set olRecip = olNS.CreateRecipient(NameEmpl)
olRecip.Resolve
Company = olRecip.AddressEntry.GetExchangeUser.CompanyName
'Initials = olRecip.AddressEntry.GetExchangeUser.Initials ?
ActiveCell.Offset(0, 1).Value = Company
'ActiveCell.Offset(0, 2).Value = Initials ?
End Sub
Однако в GetExchangeUser я не могу найти объект для поля инициалов. Есть ли другой способ извлечения информации?
Я видел подобные вопросы на этом форуме, но не мог точно следовать предложенным ответам.
Кроме того, я должен отметить, что проблему нельзя решить, используя первые буквы имени. Компания предоставляет каждому сотруднику определенную аббревиатуру, сопоставимую с идентификатором, и эта аббревиатура сохраняется в поле «Инициалы».