Introduction à Debug.Print et MsgBox
Glissez pour afficher le menu
Les deux permettent d'afficher une valeur pendant l'exécution du code, mais ils sont conçus pour deux publics différents. Les confondre est une habitude courante au début, qu'il convient de corriger délibérément.
Debug.Print
Debug.Print [outputlist]
outputlist— une ou plusieurs expressions à afficher, éventuellement reliées par;ou&;- Pas de parenthèses, pas de valeur de retour — il s'agit d'une instruction, pas d'une fonction ;
- Écrit toujours dans la fenêtre Exécution.
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
Les parenthèses autour des arguments de MsgBox ne sont utilisées que lorsque vous capturez une valeur de retour. Utilisé comme simple instruction (sans affectation), les parenthèses sont en fait une erreur — MsgBox("Done.") fonctionne toujours, mais dès que vous ajoutez un second argument sans affectation, MsgBox ("Continue?", vbYesNo) génère une erreur de syntaxe. Omettez les parenthèses pour la forme d'instruction, ajoutez-les uniquement lors de l'écriture de result = MsgBox(...).
À quoi sert réellement chacun
Un test simple : demandez-vous à qui s'adresse réellement le message. Si la réponse est « à moi, pendant que j'écris et teste ce code », utilisez Debug.Print — il n'y a aucun inconvénient à le laisser temporairement ou à le supprimer plus tard, puisqu'il n'apparaît jamais pour l'utilisateur du classeur final. Si la réponse est « à la personne qui exécute cette macro, maintenant, et qui doit voir ce message », utilisez MsgBox — une demande de confirmation ou un message de fin entrent dans cette catégorie, car ils font partie de l'expérience finale et non d'une aide au débogage.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Introduction à Debug.Print et MsgBox
Les deux permettent d'afficher une valeur pendant l'exécution du code, mais ils sont conçus pour deux publics différents. Les confondre est une habitude courante au début, qu'il convient de corriger délibérément.
Debug.Print
Debug.Print [outputlist]
outputlist— une ou plusieurs expressions à afficher, éventuellement reliées par;ou&;- Pas de parenthèses, pas de valeur de retour — il s'agit d'une instruction, pas d'une fonction ;
- Écrit toujours dans la fenêtre Exécution.
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
Les parenthèses autour des arguments de MsgBox ne sont utilisées que lorsque vous capturez une valeur de retour. Utilisé comme simple instruction (sans affectation), les parenthèses sont en fait une erreur — MsgBox("Done.") fonctionne toujours, mais dès que vous ajoutez un second argument sans affectation, MsgBox ("Continue?", vbYesNo) génère une erreur de syntaxe. Omettez les parenthèses pour la forme d'instruction, ajoutez-les uniquement lors de l'écriture de result = MsgBox(...).
À quoi sert réellement chacun
Un test simple : demandez-vous à qui s'adresse réellement le message. Si la réponse est « à moi, pendant que j'écris et teste ce code », utilisez Debug.Print — il n'y a aucun inconvénient à le laisser temporairement ou à le supprimer plus tard, puisqu'il n'apparaît jamais pour l'utilisateur du classeur final. Si la réponse est « à la personne qui exécute cette macro, maintenant, et qui doit voir ce message », utilisez MsgBox — une demande de confirmation ou un message de fin entrent dans cette catégorie, car ils font partie de l'expérience finale et non d'une aide au débogage.
Merci pour vos commentaires !