Impressão de depuração VBA

Excel VBA Debug.Print

Debug Print é uma das ferramentas úteis apresentadas no editor VBA para descobrir como um programa está funcionando e ajuda a analisar as mudanças nos valores das variáveis ​​criadas no programa VBA. Ele mostra a saída da janela imediata quando executamos o programa sem nenhum bug.

Debug.print oferece os dois principais benefícios sobre o uso de Msgbox para exibir a saída do código. Ele elimina a necessidade de clicar no botão OK todas as vezes e exibe o registro dos valores de saída retornados nas janelas imediatas. Isso economiza muito tempo dos usuários. O presente artigo explica o uso do Excel VBA Debug Print com muitos exemplos e explicando como usá-lo, abrangendo os seguintes itens.

O que é impressão de depuração do VBA?

Debug é um objeto no VBA e usado com os dois métodos chamados Assert e Print. A impressão é útil na exibição de mensagens e afirma ser útil na avaliação das condições. No VBA, a instrução debug.print é usada em qualquer lugar do programa de codificação para mostrar os valores de uma variável ou mensagens na janela imediata. Estes não precisam de nenhum reconhecimento ou confirmação e não apresentam qualquer efeito no código desenvolvido. É seguro e melhor usar o código na situação de facilitar o acesso a muitos usuários. Eles são úteis apenas no teste ou avaliação do código para confirmar se ele está funcionando corretamente ou não. Impressão das variáveis, strings, números, array, valores em planilhas do Excel e planilhas vazias e ativas.

Como usar a impressão de depuração do Excel VBA?

O debug.print do VBA é a instrução útil para exibir um maior número de variáveis ​​por vez na janela imediata. É a melhor abordagem alternativa para mostrar o resultado.

Por exemplo,

Debug.print count, sum, média, desvio padrão

Conforme mostrado no exemplo, todas as variáveis ​​são separadas por vírgulas. Esta instrução é capaz de transferir a saída para a janela imediata, mesmo no caso de uma janela não ser aberta. Ele não para de executar o código como no Msgbox. Essa flexibilidade oferece suporte ao monitoramento contínuo das mudanças na saída em relação às mudanças no código.

As variáveis ​​contagem, soma, média e desvio padrão são exibidas na mesma linha com espaço igual entre elas. Se a janela imediata não for aberta, siga as etapas a seguir para ver a saída.

Etapas para abrir a janela imediata e ver o resultado

  • Pressione Ctrl + G ou clique no menu 'Exibir' no editor VBA.
  • Escolha a opção 'Janela Imediata'.
  • Coloque o cursor na janela e execute o código novamente.
  • Observe a saída na janela.

Exemplos de Excel VBA Debug.Print

A seguir estão os exemplos para demonstrar o uso de impressão de depuração no Excel VBA.

Você pode baixar este modelo do Excel de impressão de depuração do VBA aqui - modelo do Excel de impressão de depuração do VBA

Exemplo # 1 - Exibindo os valores das variáveis

Primeiro, vá para a guia Desenvolvedor, clique em Macros e crie uma macro para escrever o código no VBA e adicionar um nome a ele.

Após adicionar o nome, clique em criar. Isso abre o editor VBA.

Desenvolva um pequeno programa conforme mostrado na figura.

Código:

 Sub Variables () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X Debug.Print Y Debug.Print Z End Sub 

Conforme mostrado na captura de tela, três dimensões ou variáveis ​​são diminuídas como X, Y e Z como um inteiro, string e Double respectivamente. Para imprimir esses valores, Debug.print é usado e a saída será exibida na janela imediata. Pressione CTRL + G para ver a saída conforme mostrado na captura de tela.

Execute este código usando a tecla F5 e pressione  CTRL + G para ver a saída na janela imediata.

Este programa pode ser simplificado separando as instruções debug.print por uma vírgula.

Código:

 Sub Variáveis ​​() Dim X As Inteiro Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X, Y, Z End Sub 

Esta instrução debugs imprime a saída na mesma linha mostrada na captura de tela.

Exemplo 2 - Depurar impressão para arquivo

Este exemplo ilustra o uso da impressão de depuração do VBA para exibir a saída para um arquivo quando o comprimento do texto é muito alto.

O programa para imprimir a saída em um arquivo é desenvolvido conforme mostrado na figura.

Código:

Sub DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Abrir "D: \ Articles \ Excel \ test.txt" Para saída como #num s = "Olá, mundo!" Debug.Print s 'grava na janela imediata Imprimir #num, s' escreve a saída no arquivo Close #num End Sub

Neste programa, duas variáveis ​​chamadas S e Num são consideradas uma string e um inteiro respectivamente. A instrução open é usada para criar um arquivo de texto com o nome test. Uma string chamada “Hello World” é declarada na variável S.

Quando você executa o código VBA manualmente ou usando a tecla F5, a saída é gravada na janela imediata e o arquivo por vez é mostrado na pasta.

A saída para o arquivo é mostrada na figura abaixo mencionada.

A impressão da saída em arquivo é benéfica quando um texto longo é apresentado.

Exemplo # 3 - Exibindo o fatorial de um número na janela imediata

Este exemplo ilustra o uso da instrução debug.print para mostrar o fatorial de um número.

Código:

 Public Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Next Count Debug.Print Fact End Sub 

Para determinar o fatorial, três variáveis ​​são consideradas, incluindo a contagem, o número e o fato. O loop For é usado para repetir a multiplicação do valor do fato com a contagem para determinar o fatorial do número.

Aqui, a instrução debug.print é usada fora do loop “for” para exibir o valor após a conclusão do loop. A saída é determinada como.

If we use debug.print statement in inside “for” loop, the fact-value is displayed for every recurring time as shown in the figure.

Code:

 Public Sub Fact() Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Debug.Print Fact Next Count End Sub 

Run the code by pressing F5 key and see the output in the immediate window. In this situation, we should consider the last value as the factorial of the given number.

Example #4 – Printing the Full name of the Active Workbook

This example explains how to print the current workbook name into the immediate window

The program is developed as shown in the figure.

Code:

 Sub Activework() Dim count As Long For count = 1 To Workbooks.count Debug.Print Workbooks(count).FullName Next count Debug.Print count End Sub 

Here ‘count’ is the variable taken to count the number of active workbooks and to display the full name of the active workbook. The full name and number of active workbooks are displayed as shown in the figure.

The path of the workbook in the drives is accurately displayed by using the VBA debug.print statement.

Things to Remember

  • The main issue with the debug .print is no text wrapping option for long strings in the immediate window
  • The immediate window should be brought to top see the output in the user interface
  • It is impossible to wrap the long text displayed in the Immediate Window. In this situation, the output needs to be displayed to a file stored in the drive.