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.

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top