У меня есть два календаря, один мой, а другой общий . Оба открываются в перспективе, как показано ниже.
![enter image description here](https://i.stack.imgur.com/2bkxD.png)
Как я могу получить адрес электронной почты выбранного календаря приставок?
Я видел AppointmentItem имеет GetOrganizer , чтобы найти, кто создал встречу, но я не нахожу какого-либо метода или свойства пользователя календаря в том случае, если встреча ...
Поэтому я попытался Application.ActiveExplorer.CurrentFolder
получить выбранную папку, а затем получить AdressEntry
, но я не могу получить хранилище папки, потому что это общий календарь (а затем folder.store
возвращает ноль).
Следуя советам Дмитрия там , я сделал:
Dim appointment_item As Outlook.AppointmentItem
Dim PR_MAILBOX_OWNER_ENTRYID as String
Dim mapiFolder As Outlook.MAPIFolder
Dim folderStore As Outlook.Store
Dim mailOwnerEntryId As String
Dim entryAddress As Outlook.AddressEntry
Dim smtpAdress As String
PR_MAILBOX_OWNER_ENTRYID = "http://schemas.microsoft.com/mapi/proptag/0x661B0102"
appointment_item = Application.ActiveExplorer.Selection.Item(1)
mapiFolder = appointment_item.Parent
folderStore = mapiFolder.Store
mailOwnerEntryId = folderStore.PropertyAccessor.GetProperty(PR_MAILBOX_OWNER_ENTRYID)
entryAddress = Application.Session.GetAddressEntryFromID(mailOwnerEntryId)
smtpAdress = entryAddress.GetExchangeUser.PrimarySmtpAddress
MsgBox(smtpAdress)
Проблема в том, что я не могу получить .Store
общей папки, как написано здесь в документации MS.
Это свойство возвращает объект Store , за исключением случая, когда папка является общей папкой (возвращается NameSpace.GetSharedDefaultFolder). В этом случае один пользователь делегировал доступ к папке по умолчанию другому пользователю; вызов Folder.Store вернет Null .