Debuggen eines von einer Regel ausgelösten Outlook 2007-Skripts
-
14-11-2019 - |
Frage
Ich versuche, ein Outlook 2007-VBA-Skript zu debuggen, das von einer Regel ausgelöst wird.Ich habe im Skript einen Haltepunkt gesetzt, aber er wird nicht erreicht.
Das Drehbuch ist eigentlich ein Sub
im ThisOutlookSession
Objekt.
Wenn ich die Regel für einen bestimmten Ordner ausführe, scheint nichts zu passieren.
Was mache ich falsch?
Aktualisieren:
Ich habe ein hinzugefügt MsgBox "Processing: " & mailItem.Subject
zum Skript und das erscheint ganz gut, wenn ich die Regel ausführe.Allerdings kann ich das Skript anscheinend nicht dazu bringen, an Haltepunkten anzuhalten.
Lösung
Ich denke, dass Sie vielleicht nichts falsch machen, denn ich habe genau das gleiche Verhalten erlebt.
Um Ihr VBA zu debuggen, schlage ich jedoch vor, dass Sie ein Makro erstellen (über das Menü Extras|Makro|Makros), das Ihre Skriptfunktion mit einem Test-E-Mail-Element aufruft, das Sie im Makro erstellen.
Vielleicht so etwas:
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
Auf diese Weise können Sie über das Makro-Dialogfeld erneut in das Makro einsteigen und alle erforderlichen Debugging-Vorgänge durchführen.Mein Problem hat es jedenfalls gelöst.
Andere Tipps
Jedes vorhandene Element kann zum Testen von Code verwendet werden, der eines erfordert.
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