Estados do VBE

Existem quatro estados de processamento do VBE em relação ao código VBA: eles se chamam Tempo de Design, Tempo de Compilação, Tempo de Execução e Tempo de Depuração. É comum usarmos a palavra modo no lugar de tempo, e nesse caso, seus significados são equivalentes.

Se não tem familiaridade com o VBE, veja a seção Visual Basic Editor (VBE).

Tempo de Design

Tempo de Design (ou Tempo de Desenvolvimento) é o estado quando estamos desenvolvendo o código e formulários de um programa. É quando criamos módulos, escrevemos procedimentos, criamos e redimensionamos os controles de um formulário, alteramos as propriedades dos objetos visíveis no Project Explorer, e assim por diante. Quando estamos nesse estado, o VBE pode até verificar se a sintaxe das linhas de código digitadas estão corretas, mas não as executa.

Veja, por exemplo, um formulário em tempo de design:

Tempo de Compilação

Os aplicativos Office não interpretam um código tal qual como enxergamos no VBE. O processamento de um código é algo extremamente complexo, sendo que em seu mais baixo nível é uma comutação de sinais binários (0 e 1).

Durante o tempo de compilação o VBE verifica se o código atende aos requisitos para ser executado. Se esse não for o caso, o VBE notifica o usuário através de uma caixa de mensagem informando o erro de compilação detectado. É também durante esse momento em que o VBE traduz o código VBA para uma linguagem de máquina que o computador consiga entender e executar os comandos. Na maioria das vezes, projetos são compilados quase que instantaneamente.

Você pode compilar todo código de um projeto sem executá-lo através da guia Depurar >> controle Compilar <nome do projeto>:

Abaixo, veja um exemplo de um erro identificado pelo VBE durante o tempo de compilação:

A sintaxe da instrução MsgBox está incorreta, interrompendo a compilação do código e retornando o VBE ao modo de design. O VBE verifica muitos outros requisitos para suceder a fase de compilação além de verificar a sintaxe.

É crítico que seu código compile antes de você distribuir seu projeto. É considerada uma prática abominável distribuir um código ou projeto que não utilize Option Explicit ou que não compile devido a erros.

Tempo de Execução

O tempo de execução, como o próprio nome diz, é o estado em que o VBE está interpretando e executando o código VBA. Durante essa etapa, ocorre também parte da compilação do código. Essa compilação é demandada: são compilados os procedimentos e a sintaxe de código do módulo dos procedimentos que serão executados.

Existe uma sequência da ordem em que o código é compilado e executado: Suponha que temos um programa que executa os procedimentos A, B e depois C. O VBE compila A para depois executa-lo, em seguida compila B para depois executa-lo e depois compila C para depois executa-lo.

A consequência dessa sequência é que você pode ter um programa que durante sua execução seja interrompido por um erro de compilação. Portanto, quando finalizar um projeto, sugiro que o compile manualmente (mostrado na seção anterior) porque é a única forma de compilar todo seu projeto e verificar se a sintaxe do mesmo está correta.

É durante o tempo de execução que o programador descobre a maioria dos erros. Veja um exemplo desse tipo de erro:

O código acima compila sem problemas, mas durante a execução o VBA faz um cálculo que retorna um valor inválido ao VBE. A partir daí, o VBE interrompe a execução do código, mostra o número e a descrição do erro, e então o usuário escolhe o que fazer.

Você pode prever os erros que podem acontecer durante o tempo de execução de um programa e tratá-los para evitar que a execução do programa se interrompa através do tratamento de exceções.

Você pode pressionar a combinação Ctrl+Break no teclado para interromper a execução de uma macro.

Tempo de Depuração

O tempo de depuração é um estado intermediário entre o tempo de design e o tempo de execução. Ele não ocorre obrigatoriamente. É muito útil para fazer testes e estudos de um programa, e pode-se chegar nele quando:

  • A linha a ser executada pela rotina possui um ponto de interrupção (a tecla F9 habilita/desabilita uma linha como ponto de interrupção) ;
  • Depura-se um programa ao invés de executa-lo (exemplo: pressionar tecla F8 ao invés de F5);
  • Ocorre um erro de execução e na janela do erro o usuário clica em Depurar;
  • Encontra-se uma instrução do tipo Stop ou Debug.Assert.

Veja o exemplo de um programa que está sendo depurado:

O VBE indica ao usuário qual é a instrução que será executada colorindo-a de amarelo (cor padrão). Durante o tempo de depuração, você pode fazer algumas alterações iguais as que faz em tempo de design, mas nem tudo é permitido. No exemplo acima, você pode mudar o valor 5 para outro, mas se tentar alterar o nome do procedimento Categoria, por exemplo, obterá a caixa de diálogo abaixo:

Na janela acima, se clicar em OK, você retornará ao tempo de design.

Dominar a depuração no VBE é essencial para o programador conseguir corrigir rapidamente os problemas do programa e fazer testes com eficiência e eficácia.

Sobre Felipe Gualberto

Microsoft Most Valuable Professional (MVP) de Excel.
Esta entrada foi publicada em Tutoriais e marcada com a tag , , , , , . Adicione o link permanente aos seus favoritos.