Débogage d'une Outlook 2007 script déclenché par une règle
-
14-11-2019 - |
Question
Je suis en train de déboguer une Outlook 2007 VBA script qui est déclenché par une règle.J'ai mis un point d'arrêt dans le script, mais il ne veut pas se faire frapper.
Le script est en fait un Sub
dans le ThisOutlookSession
objet.
Quand je lance la règle sur un dossier spécifié rien ne semble se produire.
Ce que je fais mal?
Mise à jour:
J'ai ajouté un MsgBox "Processing: " & mailItem.Subject
pour le script et pop-up de l'amende juste quand je lance la règle.Cependant, je n'arrive pas à obtenir le script s'arrête sur les points d'arrêt.
La solution
Je pense que vous ne pouvez pas faire quelque chose de mal, parce que j'ai connu exactement le même comportement.
Toutefois, afin de déboguer votre VBA, je vous suggère de créer une macro (via les Outils|Macro|Macros menu) qui appelle la fonction de script avec un e-mail de test à l'élément que vous créez dans la macro.
Peut-être quelque chose comme ceci:
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 cette façon, vous pouvez "Étape" Dans la macro via la boîte de dialogue Macro de nouveau, et faire tout le débogage dont vous avez besoin.Il a résolu mon problème, de toute façon.
Autres conseils
Tout élément existant peut être utilisé pour tester le code qui le nécessite.
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