Outlook VBA - Получить информацию о текущей активной (или открытой) электронной почте

Я полностью зациклен на том, как получить информацию о электронном письме, которое либо выбрано, либо открыто. На самом деле, я не могу найти никаких подробностей о том, как получить доступ к электронной почте. Кажется, вы можете пройти всю структуру папок и получить все электронные письма, но это мне действительно не помогает.

Я не думаю, что могу получить некоторые указатели?

И да, я ненавижу VBA так же, как и следующий разработчик, но, к сожалению, около 0,1% моей работы связано с интеграцией с Outlook.

Приветствия.

Ответы

Ответ 1

Чтобы получить выбранные электронные письма, просмотрев Selection объекта Explorer.

Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection

Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection

Объект выбора может содержать много элементов, а также элементы, которые относятся к другим типам, чем почта (IPM.Note), например, приложения календаря и т.д. Поэтому, если вам нужны только почтовые отправления, вы можете взглянуть на элемент MessageClass

Что касается текущей электронной почты, которая сложнее, так как вы можете использовать ее многократно, если вы просто хотите использовать верхнюю часть, вы можете использовать Application.ActiveInspector в противном случае вы должны посмотреть Inspectors Collection объекта Application. Затем вы можете получить "элемент" из свойства