personalized - Utilizando eventos de Outlook desde Excel
outlook mass email (1)
Puede hacer esto, pero necesita usar un módulo de Clase en Excel para lograrlo.
Módulo de clase: "myOutlook" o llámalo como quieras.
Private WithEvents myItems As Outlook.Items
Private Sub Class_Initialize()
Dim oNS As Namespace
Dim myOL As Outlook.Application
Set myOL = New Outlook.Application
Set oNS = myOL.GetNamespace("MAPI")
Set myItems = oNS.GetDefaultFolder(olFolderInbox).Items
''Set this equal to the folder you wish to use this on
End Sub
Private Sub myItems_ItemAdd(ByVal Item As Object)
Debug.Print "Got_EMAIL!!!"
End Sub
Luego, en un módulo regular haz esto:
Dim myOutlook As myOutlook
Sub TestSub()
Set myOutlook = New myOutlook
End Sub
Una vez que inicialice la instancia de su clase definida por el usuario, los eventos serán atrapados por ella.
Obviamente, deberá configurar el objeto "myItems" para que esté vinculado a la bandeja de entrada correcta. Para mí, solo está vinculado a mi buzón predeterminado, que fue más fácil de probar.
Estoy intentando utilizar el enlace de MSDN del evento "ItemAdd" aquí desde el modelo de objetos de Outlook en una macro de Excel; sin embargo, no he podido encontrar una forma de utilizar eventos desde fuera de Excel.
Mi caso de uso previsto es supervisar los elementos recibidos en un buzón compartido y registrar su recepción. Actualmente estoy ejecutando un ciclo en un temporizador que busca nuevos correos electrónicos, sin embargo, prefiero simplemente iniciar sesión cada vez que un evento se active si es posible.
Desafortunadamente, no puedo ejecutar macros desde Outlook directamente, por lo que tengo restricciones para acceder al Modelo de objetos de Outlook desde otras aplicaciones de Office.