我正在尝试调试由规则触发的Outlook 2007 VBA脚本。我在脚本中设置了一个断点,但它没有被击中。
该脚本实际上是Sub
对象中的ThisOutlookSession
。
当我在指定文件夹上运行规则时似乎没有发生任何事情。
我做错了什么?
更新
我在脚本中添加了一个MsgBox "Processing: " & mailItem.Subject
,当我运行规则时弹出就好了。但是我似乎无法让脚本停在断点上。
答案 0 :(得分:11)
我认为你可能没有做错任何事,因为我经历过完全相同的行为。
但是,为了调试您的VBA,我建议您创建一个宏(通过工具|宏|宏菜单),使用您在宏中创建的测试电子邮件项调用脚本函数。
也许是这样的:
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
通过这种方式,您可以再次通过该宏对话框“进入”宏,并执行所需的所有调试。无论如何,它解决了我的问题。
答案 1 :(得分:0)
任何现有项目都可以用于测试需要其中一项的代码。
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