TOP

VBA-Lição 2. Depurador (Debugger)

Uma ferramenta no ambiente VBA para depuração de código de programa. Ser capaz de trabalhar com um depurador é vital para quem escreve em VBA. É necessário para verificar como o seu código funciona e para encontrar e corrigir erros nele.


Abra Visual Basic Editor (Alt+F11). Crie um módulo nele e escreva o seguinte código:

 Sub LearningDebug()
    Dim A As Long, B As Long, C As Long, D As Long

    D = 0
    A = 10
    Debug.Print "A = " + Trim(Str(A))
    B = 15
    Debug.Print "B = " + Trim(Str(B))
    C = A + B
    Debug.Print "C = " + Trim(Str(C))
    C = Round(C / 5)
    Debug.Print "Divide С by 5: C = " + Trim(Str(C))  'C é dividido por 5: C =
    C = Round(C / D) 'haverá um erro aqui, pois é impossível dividir por zero (e D = 0)
End Sub

Pressione Ctrl+G e a janela Immediate aparecerá na parte inferior. Nesta janela, durante a operação da macro, você pode alterar os valores das variáveis, executar códigos diferentes em VBA, não escritos anteriormente no módulo.

Se você colocar o cursor dentro do código do módulo e pressionar F5, ele será executado completamente. Se você pressionar F8, apenas uma linha de código será executada. A próxima pressão de F8 executará a próxima linha de código e assim por diante. você pode percorrer todo o código. Você pode criar um ponto de interrupção usando o botão F9. Se você executar o código com F5, o código será executado na linha especificada e depois será pausado. Pode então continuar usando os botões F5 ou F8 descritos anteriormente.

Se você observar atentamente o código, verá que as variáveis A, B, C, D recebem números. As linhas Debug.Print "text" imprimem o texto que especificamos na janela Immediate aberta anteriormente para ver o que está acontecendo com a variável. Str(A) converte um número em um valor de texto. E Trim() remove os espaços à direita e à esquerda dele. O operador Round(C) arredonda o valor de acordo com as regras da aritmética para um número inteiro (portanto, atribuímos o resultado dos cálculos a uma variável do tipo inteiro Long, o que significa que deve ser um número inteiro). No final do código, criamos especificamente uma situação falsa para praticar o uso do depurador.

Fique dentro do código e pressione F8 quatro vezes. A linha que será executada a seguir estará marcada em amarelo. Passe o mouse sobre as diferentes variáveis. Ao mesmo tempo, aparecerá uma janela pop-up na qual você verá o seu valor. Variáveis às quais ainda não foram atribuídos valores são iguais a zero. Pressione F8 novamente. Uma linha aparecerá na janela Immediate: A = 10 Agora podemos alterar o valor da variável A imediatamente na janela Immediate (por exemplo, altere-o para 8). Para fazer isso, em uma nova linha da janela Immediate, escreva: A = 8 e pressione Enter. Agora passe o mouse sobre a variável A e veja se seu valor é 8. para ver o valor sem passar o mouse, você pode fazer com que ele apareça na janela Immediate. É feito assim, digite na linha vazia da janela Immediate: ?A e pressione Enter. Sinal? na janela Immediate significa o mesmo que Debug.Print no código. É apenas mais fácil e mais curto escrever dessa maneira. Você verá imediatamente o número - o resultado da sua solicitação.

Coloque o cursor na última linha do código (C = Round (C / D)) e pressione F9. Um ponto de interrupção aparecerá. Você pode removê-lo com o mesmo botão, mas não iremos removê-lo ainda. Pressione F5, o programa executará todas as linhas e parará na última. Na janela Immediate aparecerão mensagens sobre a atribuição de valores às variáveis. Chegamos à última linha do código. Deve gerar um erro porque contém divisão por zero. Pressione F8 e veja por si mesmo. Na janela que aparece, clique em Debug. Se você pressionar End, a execução do programa será interrompida e queremos finalizá-lo.

Você pode corrigir a situação alterando o valor da variável D. Agora é igual a zero. Na janela Immediate, insira o texto: D = 2 em uma linha vazia e pressione Enter. Agora, com a última linha do código, dividimos não por zero, mas por 2, evitando assim um erro. Pressione F5 e o programa completará seu trabalho sem erros.

Tente alterar o código e pratique usando o depurador. Acredite, isso tornará sua vida muito mais fácil.