2010-11-09 13 views
6

Tengo una macro que funciona muy bien para colocar en carpetas/aplicar banderas/establecer categorías, pero solo funciona en el elemento actual seleccionado en el explorador.¿Cómo se obtiene una referencia al elemento de correo en la ventana abierta actual en Outlook usando VBA?

Cuando recibo una alerta por correo electrónico en mi escritorio y hago clic en ella para abrir el mensaje de correo electrónico, me gustaría poder ejecutar la misma macro en ese elemento abierto, pero no encuentro ninguna documentación sobre cómo acceder a ese objeto de forma similar a cómo accedo al elemento seleccionado en la lista del explorador.

Mi lógica selección actual se parece a esto:

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 

Respuesta

9

Al parecer, este es el código para obtener el elemento abierto actual:

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

Hola Matt, ¿alguna idea sobre cómo obtener ** todos ** elementos abiertos para procesar individualmente? – user3429738

6

lo hice así. Declare el artículo como un artículo de correo en lugar de un objeto y luego obtenga ayuda de IntelliSense.

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

¡Bienvenido a StackOverflow! Gracias por una buena primera publicación :) – andrewdotnich

Cuestiones relacionadas