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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top