Depurar un script de Outlook 2007 activado por una regla
-
14-11-2019 - |
Pregunta
Estoy intentando depurar un script VBA de Outlook 2007 activado por una regla.Establecí un punto de interrupción en el script pero no se alcanza.
El guión es en realidad un Sub
en el ThisOutlookSession
objeto.
Cuando ejecuto la regla en una carpeta específica, parece que no sucede nada.
¿Qué estoy haciendo mal?
Actualizar:
He agregado un MsgBox "Processing: " & mailItem.Subject
al script y eso aparece bien cuando ejecuto la regla.Sin embargo, parece que no consigo que el script se detenga en los puntos de interrupción.
Solución
Creo que es posible que no estés haciendo nada malo, porque yo he experimentado exactamente el mismo comportamiento.
Sin embargo, para depurar su VBA, le sugiero que cree una macro (a través del menú Herramientas|Macro|Macros) que llame a su función de script con un elemento de correo electrónico de prueba que cree en la macro.
Quizás algo como esto:
Sub TestScript()
Dim testMail As MailItem
Set testMail = Application.CreateItem(olMailItem)
testMail.Subject = "Test subject"
testMail.Body = "Test body"
Project1.ThisOutlookSession.YourScriptForDebugging testMail
End Sub
De esta manera, puede "entrar en" la macro nuevamente a través del cuadro de diálogo Macro y realizar toda la depuración que necesite.Resolvió mi problema de todos modos.
Otros consejos
Cualquier elemento existente se puede utilizar para probar el código que lo requiera.
Sub passOpenItem()
'first open an item
codeRequiringItemParameter ActiveInspector.CurrentItem
End Sub
Sub passSeletion()
'first select an item
codeRequiringItemParameter ActiveExplorer.Selection(1)
End Sub
Sub codeRequiringItemParameter(itm As Object)
Debug.Print "TypeName: " & TypeName(itm)
Debug.Print "Class...: " & itm.Class
End Sub