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
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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
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
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.
Grazie per i tuoi commenti!