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.

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top