Если вы хотите обрабатывать разговоры, вам придется делать это явно.Вы можете перейти от MailItem к его разговору, используя MailItem.GetConversation , но вам лучше работать с беседами напрямую.
Что вы делаете:
- Получить все заголовки разговоров из текущего выбора
- Для каждого разговора получить отдельные элементы
- Выполнить с ними свою архивацию.
Следующий код C # иллюстрируетэто и должно быть тривиально для портирования на VBA.
Outlook.Selection selection = Application.ActiveExplorer().Selection;
Outlook.Selection convHeaders = selection.GetSelection( Outlook.OlSelectionContents.olConversationHeaders) as Outlook.Selection;
foreach (Outlook.ConversationHeader convHeader in convHeaders)
{
Outlook.SimpleItems items = convHeader.GetItems();
for (int i = 1; i <= items.Count; i++)
{
if (items[i] is Outlook.MailItem)
{
Outlook.MailItem mail = items[i] as Outlook.MailItem;
mail.UnRead = false;
mail.Move( archiveFolder );
}
// else... not sure how if you want to handle different types of items as well }
}