Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you get a reference to the mail item in the current open window in Outlook using VBA?

I have a macro that works very well to place into folders / apply flags / set categories, but it only works on the current item selected in the explorer.

When I get an email alert on my desktop and click on it to open the email message, I would like to be able to run the same macro against that open item, but I can't find any documentation on how to access that object in a similar way to how I access the selected item in the explorer list.

My current selection logic looks like this:

Dim Item As Object
Dim SelectedItems As Selection

Set SelectedItems = Outlook.ActiveExplorer.Selection
For Each Item In SelectedItems
    With Item
        'do stuff
    End With
Next Item
like image 881
Matt Connolly Avatar asked Nov 09 '10 14:11

Matt Connolly


2 Answers

Apparently this is the code to get the current open item:

If TypeName(Application.ActiveWindow) = "Inspector" Then
    Set Item = Application.ActiveWindow.CurrentItem
like image 125
Matt Connolly Avatar answered Oct 19 '22 07:10

Matt Connolly


I did it like this. Declare the Item as a MailItem instead of an Object and then you get help from IntelliSense.

Dim CurrentMessage As MailItem
Set CurrentMessage = ActiveInspector.CurrentItem
CurrentMessage.HTMLBody = "[Insert HTML here]" 
like image 44
user2038505 Avatar answered Oct 19 '22 07:10

user2038505