Stampa di debug VBA

Excel VBA Debug.Print

Debug Print è uno degli strumenti utili presentati nell'editor VBA per capire come funziona un programma e aiuta ad analizzare i cambiamenti nei valori delle variabili create nel programma VBA. Mostra l'output della finestra immediata quando eseguiamo il programma senza bug.

Debug.print offre i due principali vantaggi rispetto all'uso di Msgbox per visualizzare l'output del codice. Elimina la necessità di fare clic ogni volta sul pulsante OK e visualizza il registro dei valori di output restituiti nelle finestre immediate. Risparmia molto tempo agli utenti. Il presente articolo spiega l'uso di Excel VBA Debug Print con molti esempi e spiega come usarlo coprendo le seguenti cose.

Che cos'è VBA Debug Print?

Debug è un oggetto in VBA e utilizzato con i due metodi denominati Assert e Print. La stampa è utile nel messaggio di visualizzazione e si afferma in utile nella valutazione delle condizioni. In VBA, l'istruzione debug.print viene utilizzata in qualsiasi punto del programma di codifica per mostrare i valori di una variabile o dei messaggi nella finestra immediata. Questi non necessitano di alcun riconoscimento o conferma e non mostrano alcun effetto sul codice sviluppato. È sicuro e migliore da usare nel codice nella situazione per facilitare l'accesso a molti utenti. Questi sono solo utili per testare o valutare il codice per confermare che funzioni correttamente o meno. Stampa di variabili, stringhe, numeri, array, valori in fogli Excel e fogli vuoti e attivi.

Come utilizzare Excel VBA Debug Print?

VBA debug.print è l'istruzione utile per visualizzare più variabili alla volta nella finestra immediata. È l'approccio migliore e alternativo per mostrare l'output.

Per esempio,

Debug. Conteggio stampe, somma, media, deviazione standard

Come mostrato nell'esempio, tutte le variabili sono separate da virgole. Questa istruzione è in grado di trasferire l'output alla finestra immediata anche nel caso in cui una finestra non sia aperta. Non interrompe l'esecuzione del codice come in Msgbox. Questa flessibilità supporta il monitoraggio continuo delle modifiche nell'output rispetto alle modifiche nel codice.

Le variabili count, sum, average e standard deviation vengono visualizzate nella stessa riga con lo stesso spazio tra di loro. Se la finestra immediata non è aperta, attenersi alla seguente procedura per visualizzare l'output.

Passaggi per aprire la finestra immediata e vedere l'output

  • Premi Ctrl + G o fai clic sul menu "Visualizza" nell'editor VBA.
  • Scegli l'opzione "Finestra immediata".
  • Posiziona il cursore nella finestra ed esegui nuovamente il codice.
  • Osserva l'output nella finestra.

Esempi di Excel VBA Debug.Print

Di seguito sono riportati gli esempi per dimostrare l'uso della stampa di debug in Excel VBA.

È possibile scaricare questo modello Excel di stampa di debug VBA qui: modello Excel di stampa di debug VBA

Esempio # 1 - Visualizzazione dei valori delle variabili

Per prima cosa, vai alla scheda Sviluppatore, fai clic su Macro e crea una macro per scrivere il codice nel VBA e aggiungere un nome ad esso.

Dopo aver aggiunto il nome, fare clic su Crea. Questo apre l'editor VBA.

Sviluppa un piccolo programma come mostrato nella figura.

Codice:

 Variabili secondarie () 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 

Come mostrato nello screenshot, tre dimensioni o variabili vengono ridotte come X, Y e Z rispettivamente come numero intero, stringa e Double. Per stampare questi valori viene utilizzato Debug.print e l'output verrà visualizzato nella finestra immediata. Premi CTRL + G per vedere l'output come mostrato nello screenshot.

Eseguire questo codice utilizzando il tasto F5 e premere  CTRL + G per visualizzare l'output nella finestra immediata.

Questo programma può essere semplificato separando le istruzioni debug.print con una virgola.

Codice:

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

Questa istruzione di debug stampa l'output nella stessa riga mostrata nello screenshot.

Esempio # 2 - Debug print to File

Questo esempio illustra l'uso della stampa di debug VBA per visualizzare l'output in un file quando la lunghezza del testo è troppo alta.

Il programma per stampare l'output su file è sviluppato come mostrato in figura.

Codice:

Sub DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Apri "D: \ Articles \ Excel \ test.txt" per l'output come #num s = "Hello, world!" Debug.Print s 'scrive nella finestra immediata Print #num, s' scrive l'output nel file Close #num End Sub

In questo programma, due variabili chiamate S e Num sono considerate rispettivamente come una stringa e un numero intero. L'istruzione open viene utilizzata per creare un file di testo con il nome test. Una stringa chiamata "Hello World" viene dichiarata nella variabile S.

Quando si esegue il codice VBA manualmente o utilizzando il tasto F5, l'output viene scritto nella finestra immediata e il file alla volta viene visualizzato nella cartella.

L'output su file è mostrato nella figura sotto indicata.

La stampa dell'output su file è utile quando viene presentato testo lungo.

Esempio n. 3: visualizzazione del fattoriale di un numero nella finestra immediata

Questo esempio illustra l'uso dell'istruzione debug.print per mostrare il fattoriale di un numero.

Codice:

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

Per determinare il fattoriale, vengono considerate tre variabili tra cui il conteggio, il numero e il fatto. Il ciclo For viene utilizzato per ripetere la moltiplicazione del valore del fatto con count per determinare il fattoriale del numero.

Qui, l'istruzione debug.print viene utilizzata all'esterno del ciclo "for" per visualizzare il valore dopo il completamento del ciclo. L'output è determinato come.

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.