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

15,751

Solution 1

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

If TypeName(Application.ActiveWindow) = "Inspector" Then
    Set Item = Application.ActiveWindow.CurrentItem

Solution 2

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]" 
Share:
15,751
Matt Connolly
Author by

Matt Connolly

Updated on June 18, 2022

Comments

  • Matt Connolly
    Matt Connolly almost 2 years

    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