質問

ルールによって発生したOutlook 2007 VBAスクリプトをデバッグしようとしています。スクリプトにブレークポイントを設定しましたが、ヒットしません。

スクリプトは実際にはSubオブジェクトのThisOutlookSessionです。

指定されたフォルダ上のルールを実行すると起こらないようです。

私は何をしていますか?

更新:

スクリプトにMsgBox "Processing: " & mailItem.Subjectを追加し、ルールを実行すると元にポップアップします。しかし、スクリプトがブレークポイントで停止するようになるようには思われることはできません。

役に立ちましたか?

解決

I think you may not be doing anything wrong, because I have experienced exactly the same behaviour.

However, in order to debug your VBA, I suggest that you create a macro (via the Tools|Macro|Macros menu) that calls your script function with a test e-mail item that you create in the macro.

Maybe something like this:

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

This way you can "Step Into" the macro via that Macro dialog again, and do all the debugging you need. It solved my problem, anyway.

他のヒント

Any existing item can be used to test code that requires one.

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top