2010-11-09 44 views
6

J'ai une macro qui fonctionne très bien pour placer dans des dossiers/appliquer des drapeaux/définir des catégories, mais cela ne fonctionne que sur l'élément actuel sélectionné dans l'explorateur. Lorsque je reçois une alerte par e-mail sur mon bureau et que je clique dessus pour ouvrir l'e-mail, je souhaite pouvoir exécuter la même macro sur cet élément ouvert, mais je ne trouve aucune documentation sur la façon de accéder à cet objet de la même manière que j'accède à l'élément sélectionné dans la liste des explorateurs.Comment obtenir une référence à l'article de courrier dans la fenêtre ouverte en cours dans Outlook en utilisant VBA?

Ma logique actuelle de sélection ressemble à ceci:

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 

Répondre

9

Apparemment, c'est le code pour obtenir l'élément ouvert actuel:

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

Salut Matt, une idée sur la façon d'obtenir ** tous ** les éléments ouverts pour le traitement individuel? – user3429738

6

Je l'ai fait comme ça. Déclarez l'élément en tant que MailItem au lieu d'un objet, puis vous obtenez l'aide d'IntelliSense.

Dim CurrentMessage As MailItem 
Set CurrentMessage = ActiveInspector.CurrentItem 
CurrentMessage.HTMLBody = "[Insert HTML here]" 
+2

Bienvenue dans StackOverflow! Merci pour un bon premier article :) – andrewdotnich