A depuração do Outlook 2007 script acionado por uma regra
-
14-11-2019 - |
Pergunta
Eu estou tentando depurar um Outlook 2007 script VBA que é acionado por uma regra.Eu defina um ponto de interrupção no script, mas ele não começar a batida.
O script é realmente um Sub
no ThisOutlookSession
objecto.
Quando eu executar a regra em uma pasta especificada nada parece acontecer.
O que estou fazendo de errado?
Atualização:
Eu adicionei um MsgBox "Processing: " & mailItem.Subject
para o script e que aparece bem quando eu executar a regra.No entanto, eu não consigo obter o script para parar em pontos de interrupção.
Solução
Eu acho que você pode não estar fazendo nada de errado, porque eu experimentei exatamente o mesmo comportamento.
No entanto, a fim de depurar o VBA, eu sugiro que você crie uma macro (por meio de Ferramentas|Macro|Macros menu) que chama a função de script com um e-mail de teste item que você criar a macro.
Talvez algo como isto:
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
Desta forma, você pode "entrar" macro através desse diálogo Macro novamente, e fazer todas as depuração que você precisa.Ele resolveu o meu problema, de qualquer maneira.
Outras dicas
Qualquer item existente pode ser usado para testar o código que requer um.
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