Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Introduzione a Debug.Print e MsgBox | Introduzione a VBA e al Modello a Oggetti di Excel
Excel VBA per l'Automazione Aziendale

Introduzione a Debug.Print e MsgBox

Scorri per mostrare il menu

Entrambi permettono di visualizzare un valore durante l'esecuzione del codice, ma sono pensati per due pubblici diversi, e confonderli è un'abitudine comune nelle prime fasi che vale la pena correggere consapevolmente.

Debug.Print

Debug.Print [outputlist]
  • outputlist — una o più espressioni da stampare, eventualmente unite con ; o &;
  • Nessuna parentesi, nessun valore di ritorno — è un'istruzione, non una funzione;
  • Scrive sempre nella Finestra Immediata.
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
Nota

Le parentesi intorno agli argomenti di MsgBox vengono utilizzate solo quando si cattura un valore di ritorno. Se usato come semplice istruzione (senza assegnazione), le parentesi sono in realtà un errore — MsgBox("Done.") funziona comunque, ma nel momento in cui si aggiunge un secondo argomento senza assegnazione, MsgBox ("Continue?", vbYesNo) genera un errore di sintassi. Omettere le parentesi nella forma istruzione, aggiungerle solo quando si scrive result = MsgBox(...).

A cosa serve ciascuno

Un semplice test: chiedersi a chi è effettivamente destinato il messaggio. Se la risposta è "a me, mentre scrivo e testo questo codice", utilizzare Debug.Print — non costa nulla lasciarlo temporaneamente e nulla rimuoverlo in seguito, poiché non appare mai a chi utilizza il file finale. Se la risposta è "alla persona che sta eseguendo questa macro, ora, che deve vedere questo messaggio", utilizzare MsgBox — una richiesta di conferma o un messaggio di "operazione completata" rientrano in questa categoria, perché fanno parte dell'esperienza finale e non sono solo un aiuto per il debug.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Introduzione a Debug.Print e MsgBox

Entrambi permettono di visualizzare un valore durante l'esecuzione del codice, ma sono pensati per due pubblici diversi, e confonderli è un'abitudine comune nelle prime fasi che vale la pena correggere consapevolmente.

Debug.Print

Debug.Print [outputlist]
  • outputlist — una o più espressioni da stampare, eventualmente unite con ; o &;
  • Nessuna parentesi, nessun valore di ritorno — è un'istruzione, non una funzione;
  • Scrive sempre nella Finestra Immediata.
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
Nota

Le parentesi intorno agli argomenti di MsgBox vengono utilizzate solo quando si cattura un valore di ritorno. Se usato come semplice istruzione (senza assegnazione), le parentesi sono in realtà un errore — MsgBox("Done.") funziona comunque, ma nel momento in cui si aggiunge un secondo argomento senza assegnazione, MsgBox ("Continue?", vbYesNo) genera un errore di sintassi. Omettere le parentesi nella forma istruzione, aggiungerle solo quando si scrive result = MsgBox(...).

A cosa serve ciascuno

Un semplice test: chiedersi a chi è effettivamente destinato il messaggio. Se la risposta è "a me, mentre scrivo e testo questo codice", utilizzare Debug.Print — non costa nulla lasciarlo temporaneamente e nulla rimuoverlo in seguito, poiché non appare mai a chi utilizza il file finale. Se la risposta è "alla persona che sta eseguendo questa macro, ora, che deve vedere questo messaggio", utilizzare MsgBox — una richiesta di conferma o un messaggio di "operazione completata" rientrano in questa categoria, perché fanno parte dell'esperienza finale e non sono solo un aiuto per il debug.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 5
some-alt