Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Introducción a Debug.Print y MsgBox | Introducción a VBA y el Modelo de Objetos de Excel
Excel VBA para Automatización Empresarial

Introducción a Debug.Print y MsgBox

Desliza para mostrar el menú

Ambos permiten visualizar un valor mientras se ejecuta el código, pero están diseñados para dos públicos diferentes, y confundirlos es un hábito común al principio que conviene corregir de forma deliberada.

Debug.Print

Debug.Print [outputlist]
  • outputlist — una o más expresiones para imprimir, opcionalmente unidas con ; o &;
  • Sin paréntesis, sin valor de retorno — es una instrucción, no una función;
  • Siempre escribe en la Ventana Inmediata.
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

Los paréntesis alrededor de los argumentos de MsgBox solo se usan cuando se captura un valor de retorno. Si se utiliza como una instrucción simple (sin asignación), los paréntesis en realidad son un error — MsgBox("Done.") aún se ejecuta, pero en el momento en que agregas un segundo argumento sin asignación, MsgBox ("Continue?", vbYesNo) genera un error de sintaxis. Omite los paréntesis en la forma de instrucción, agréguelos solo al escribir result = MsgBox(...).

Para qué sirve cada uno realmente

Una prueba sencilla: pregúntate para quién es realmente el mensaje. Si la respuesta es "para mí, mientras escribo y pruebo este código", utiliza Debug.Print — no cuesta nada dejarlo temporalmente ni eliminarlo después, ya que nunca aparece para nadie que use el libro terminado. Si la respuesta es "para la persona que ejecuta esta macro, ahora mismo, que necesita ver esto", utiliza MsgBox — una solicitud de confirmación o un mensaje de "finalizado" entran en esta categoría, porque forman parte de la experiencia final y no solo de la depuración.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 1. Capítulo 5
some-alt