2010-11-09 12 views
6

Ho una macro che funziona molto bene per posizionarla in cartelle/applicare flag/set categorie, ma funziona solo sull'elemento corrente selezionato in explorer.Come si ottiene un riferimento all'elemento di posta nella finestra aperta corrente in Outlook utilizzando VBA?

Quando ricevo un avviso di posta elettronica sul mio desktop e faccio clic su di esso per aprire il messaggio di posta elettronica, vorrei poter eseguire la stessa macro con quell'oggetto aperto, ma non riesco a trovare alcuna documentazione su come accedere a quell'oggetto in modo simile a come accedo all'elemento selezionato nell'elenco di Explorer.

La mia logica di selezione corrente si presenta così:

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 

risposta

9

A quanto pare questo è il codice per ottenere la corrente elemento aperto:

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

Ciao Matt, qualche idea su come ottenere ** tutti ** articoli aperti per l'elaborazione individuale? – user3429738

6

ho fatto in questo modo. Dichiarare l'oggetto come un oggetto MailItem invece di un oggetto e quindi ottenere aiuto da IntelliSense.

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

Benvenuti in StackOverflow! Grazie per un buon primo post :) – andrewdotnich

Problemi correlati