Outlook VBA - получить подробную информацию о текущей активной (или открытой) электронной почте - PullRequest
15 голосов
/ 08 февраля 2010

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

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

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

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

1 Ответ

25 голосов
/ 08 февраля 2010

Чтобы получить выбранные в данный момент электронные письма, посмотрите на объект Выбор в Проводнике.

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

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

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

Что касается текущей электронной почты, которая более сложна, так как вы можете создать несколько из этих открытых, если вы просто хотите получить верхнюю часть, вы можете использовать Application.ActiveInspector , в противном случае вам следует взглянуть на Коллекция инспекторов объекта Application. Затем вы можете получить «элемент» из свойства CurrentItem из Инспектора (помните, что это могут быть и другие сообщения)

Надеюсь, что это наполнит вас

...