Отладка Outlook 2007 script, запущенная по правилу
Я пытаюсь отлаживать Outlook VBA script для Outlook 2007, который запускается с помощью правила. Я установил точку останова в script, но не попал.
script на самом деле является Sub
в объекте ThisOutlookSession
.
Когда я запускаю правило в указанной папке, ничего не происходит.
Что я делаю неправильно?
Update:
Я добавил MsgBox "Processing: " & mailItem.Subject
в script и это всплывает нормально, когда я запускаю правило. Однако я не могу заставить script останавливаться на контрольных точках.
Ответы
Ответ 1
Я думаю, что вы, возможно, не делаете ничего плохого, потому что я испытал точно такое же поведение.
Однако, чтобы отладить ваш VBA, я предлагаю вам создать макрос (через меню Tools | Macro | Macros), который вызывает вашу функцию script с помощью тестового элемента электронной почты, который вы создаете в макросе.
Возможно, что-то вроде этого:
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
Таким образом вы снова можете "перейти в" макрос через этот диалог макросов и выполнить всю необходимую отладку. Во всяком случае, это решило мою проблему.
Ответ 2
Любой существующий элемент можно использовать для тестирования кода, для которого он требуется.
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