Introdução ao Debug.Print e MsgBox
Deslize para mostrar o menu
Ambos permitem visualizar um valor enquanto o código é executado, mas são destinados a públicos diferentes, e confundi-los é um hábito comum no início que vale a pena corrigir conscientemente.
Debug.Print
Debug.Print [outputlist]
outputlist— uma ou mais expressões para exibir, opcionalmente unidas por;ou&;- Sem parênteses, sem valor de retorno — é uma instrução, não uma função;
- Sempre escreve na Janela Imediata.
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
Parênteses nos argumentos do MsgBox só são usados quando você está capturando um valor de retorno. Quando usado como uma instrução simples (sem atribuição), os parênteses são, na verdade, um erro — MsgBox("Done.") ainda executa, mas se você adicionar um segundo argumento sem atribuição, MsgBox ("Continue?", vbYesNo) gera um erro de sintaxe. Remova os parênteses na forma de instrução e adicione-os apenas ao escrever result = MsgBox(...).
Para que serve cada um deles
Um teste simples: pergunte para quem a mensagem realmente se destina. Se a resposta for "para mim, enquanto estou escrevendo e testando este código", utilize Debug.Print — não custa nada deixar temporariamente e nada para remover depois, já que nunca aparece para quem usa a planilha finalizada. Se a resposta for "para a pessoa que está executando esta macro, agora, que precisa ver isso", utilize MsgBox — um prompt de confirmação ou uma mensagem de "concluído" se enquadram nessa categoria, pois fazem parte da experiência final e não apenas de uma ferramenta de depuração.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Introdução ao Debug.Print e MsgBox
Ambos permitem visualizar um valor enquanto o código é executado, mas são destinados a públicos diferentes, e confundi-los é um hábito comum no início que vale a pena corrigir conscientemente.
Debug.Print
Debug.Print [outputlist]
outputlist— uma ou mais expressões para exibir, opcionalmente unidas por;ou&;- Sem parênteses, sem valor de retorno — é uma instrução, não uma função;
- Sempre escreve na Janela Imediata.
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
Parênteses nos argumentos do MsgBox só são usados quando você está capturando um valor de retorno. Quando usado como uma instrução simples (sem atribuição), os parênteses são, na verdade, um erro — MsgBox("Done.") ainda executa, mas se você adicionar um segundo argumento sem atribuição, MsgBox ("Continue?", vbYesNo) gera um erro de sintaxe. Remova os parênteses na forma de instrução e adicione-os apenas ao escrever result = MsgBox(...).
Para que serve cada um deles
Um teste simples: pergunte para quem a mensagem realmente se destina. Se a resposta for "para mim, enquanto estou escrevendo e testando este código", utilize Debug.Print — não custa nada deixar temporariamente e nada para remover depois, já que nunca aparece para quem usa a planilha finalizada. Se a resposta for "para a pessoa que está executando esta macro, agora, que precisa ver isso", utilize MsgBox — um prompt de confirmação ou uma mensagem de "concluído" se enquadram nessa categoria, pois fazem parte da experiência final e não apenas de uma ferramenta de depuração.
Obrigado pelo seu feedback!