Cómo depurar código VBA en el editor de Word
🔍 WiseChecker

Cómo depurar código VBA en el editor de Word

Si escribe macros en Word, es probable que haya encontrado código que no se ejecuta correctamente. El editor de VBA en Word incluye herramientas para recorrer el código paso a paso, inspeccionar variables y encontrar errores de lógica. Este artículo explica cómo usar el depurador integrado en el Editor de Visual Basic. Aprenderá a establecer puntos de interrupción, observar valores y manejar errores en tiempo de ejecución.

Puntos clave: Depurar macros VBA en Word

  • Alt+F11: Abre el Editor de Visual Basic desde Word
  • F9 en una línea de código: Activa o desactiva un punto de interrupción para pausar la ejecución en esa línea
  • F8 (Paso a paso por instrucciones): Ejecuta una línea de código a la vez para una inspección detallada
  • Ctrl+G (Ventana Inmediato): Ejecuta comandos VBA rápidos y comprueba los valores de las variables durante la depuración
  • Depurar > Compilar VBAProject: Detecta errores de sintaxis y de compilación antes de ejecutar la macro

ADVERTISEMENT

Cómo funciona el depurador de VBA en Word

El Editor de Visual Basic en Word es el mismo entorno que utilizan otras aplicaciones de Microsoft Office. Contiene un depurador integrado que puede pausar la ejecución de una macro, mostrar el contenido de las variables y permitirle ejecutar el código línea por línea. Para usar el depurador, primero debe abrir el editor de VBA presionando Alt+F11 mientras Word está activo. El editor tiene su propia barra de menús, barra de herramientas y varias ventanas: el Explorador de proyectos, la ventana Código, la ventana Inmediato y la ventana Locals.

Antes de depurar, asegúrese de que la configuración de seguridad de macros permita ejecutar código VBA. Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros y seleccione Habilitar todas las macros. Esta configuración es solo para pruebas; desactívela después de depurar para evitar que se ejecute código malintencionado.

El depurador no corrige los errores automáticamente. Le muestra dónde se produce el error y qué valores tienen las variables en ese momento. Usted debe interpretar esa información para corregir el código.

Puntos de interrupción: pausar el código en una línea específica

Un punto de interrupción le indica al depurador que detenga la ejecución en una línea determinada. Para establecer un punto de interrupción, abra la macro en la ventana Código, haga clic en el margen gris a la izquierda de la línea donde desea pausar, o presione F9. Aparece un círculo rojo en el margen y la línea se resalta en rojo. Cuando ejecute la macro, la ejecución se detiene en el punto de interrupción antes de que se ejecute esa línea. Puede establecer varios puntos de interrupción en una misma macro.

La ventana Locals: observar variables

Cuando la ejecución está en pausa, la ventana Locals (Ver > Ventana Locals) muestra todas las variables del procedimiento actual. Enumera el nombre de la variable, su valor actual y su tipo. A medida que recorre el código paso a paso, los valores se actualizan automáticamente. Esta ventana es la forma más rápida de ver si una variable contiene los datos que espera.

La ventana Inmediato: ejecutar comandos al vuelo

La ventana Inmediato (Ctrl+G o Ver > Ventana Inmediato) es una línea de comandos dentro del editor de VBA. Mientras está en pausa, puede escribir una instrucción de VBA y presionar Entrar para ejecutarla. Por ejemplo, escriba ?Selection.Text para imprimir el texto seleccionado en Word. Use esta ventana para cambiar el valor de una variable o probar una función sin reiniciar la macro.

Pasos para depurar una macro VBA en Word

Siga estos pasos para depurar una macro que no produce el resultado esperado.

  1. Abra el Editor de Visual Basic
    En Word, presione Alt+F11. Se abre el editor de VBA. Si su macro está en un módulo, haga doble clic en el nombre del módulo en el Explorador de proyectos para mostrar su código.
  2. Establezca un punto de interrupción en la primera línea sospechosa
    Desplácese hasta la línea donde sospecha que comienza el problema. Haga clic en el margen izquierdo o presione F9. Aparece un punto rojo.
  3. Ejecute la macro
    Presione F5 o haga clic en el botón Ejecutar de la barra de herramientas. La macro se ejecuta hasta que alcanza el punto de interrupción. En ese momento, la ventana del editor se activa y la línea del punto de interrupción se resalta en amarillo.
  4. Recorra el código línea por línea
    Presione F8 para ejecutar la línea resaltada actual. Cada pulsación ejecuta una línea y mueve el resaltado a la línea siguiente. Observe la ventana Locals para ver cómo cambian los valores de las variables después de cada paso.
  5. Inspeccione los valores de las variables
    Pase el mouse sobre el nombre de una variable en el código. Una información sobre herramientas muestra su valor actual. Como alternativa, escriba ?variableName en la ventana Inmediato y presione Entrar.
  6. Cambie el valor de una variable si es necesario
    En la ventana Inmediato, escriba variableName = newValue y presione Entrar. Esto sobrescribe el valor de la variable durante el resto de la sesión de depuración.
  7. Continúe o detenga la depuración
    Para reanudar la ejecución normal, presione F5. Para detener la depuración por completo, haga clic en el botón Restablecer de la barra de herramientas o presione Ctrl+Shift+F8.

ADVERTISEMENT

Errores comunes y limitaciones en la depuración de VBA

El punto de interrupción no se vuelve rojo cuando presiono F9

Esto ocurre cuando la ventana de código no tiene el foco o cuando la línea es un comentario o una línea en blanco. Haga clic dentro de la ventana de código primero y luego presione F9. Los puntos de interrupción solo se pueden establecer en líneas ejecutables.

La macro se detiene pero la ventana Locals está vacía

La ventana Locals solo muestra las variables declaradas en el procedimiento actual. Si declaró variables a nivel de módulo, solo aparecen cuando la macro está en pausa dentro de un procedimiento que las usa. Abra la ventana Locals presionando Ctrl+Alt+V, L si no está visible.

Aparece un mensaje de error pero no puedo ver el número de línea

De forma predeterminada, VBA muestra un cuadro de diálogo con la descripción del error pero no el número de línea. Para ver la línea exacta, haga clic en Depurar en el cuadro de diálogo de error. El editor resalta la línea problemática en amarillo. Luego puede inspeccionar las variables y avanzar paso a paso.

Word se congela cuando ejecuto la macro con puntos de interrupción

Esto generalmente significa que la macro entró en un bucle infinito. Presione Ctrl+Interrumpir (o Ctrl+Pausa en algunos teclados) para interrumpir la ejecución. El editor se detendrá en la línea actual. Compruebe las condiciones del bucle y los contadores en la ventana Locals.

Un error de compilación impide que se ejecute la macro

Antes de depurar, compile siempre su código. Vaya a Depurar > Compilar VBAProject. Si existen errores, el editor resalta la primera línea problemática. Corrija la sintaxis, las referencias faltantes o las variables no declaradas, y luego compile de nuevo hasta que no aparezcan errores.

Herramientas de depuración de VBA en Word: puntos de interrupción vs instrucciones Stop vs Debug.Print

Elemento Punto de interrupción (F9) Instrucción Stop Debug.Print
Cómo establecerlo Haga clic en el margen o presione F9 Escriba Stop en el código Escriba Debug.Print variable en el código
Pausa la ejecución Sí, en esa línea Sí, en la línea Stop No, la ejecución continúa
Muestra salida Sin salida Sin salida Imprime en la ventana Inmediato
Se elimina automáticamente No, debe eliminarse manualmente No, debe eliminarse la línea No, debe eliminarse la línea
Mejor uso Pausar en una ubicación específica Pausas condicionales dentro de bucles Registrar valores sin detenerse

Use puntos de interrupción para la mayoría de las sesiones de depuración. Use Stop cuando desee un punto de interrupción que se guarde con el archivo de código. Use Debug.Print para monitorear valores a lo largo de muchas iteraciones sin interrumpir el flujo de la macro.

Ahora puede abrir cualquier macro en Word, establecer puntos de interrupción, recorrer el código paso a paso e inspeccionar variables usando las ventanas Inmediato y Locals. Comience compilando su proyecto para detectar errores de sintaxis, luego coloque un punto de interrupción en la primera línea que podría causar problemas. Presione F8 para recorrer cada línea y observe cómo cambian sus variables. Para macros complejas, agregue instrucciones Debug.Print para registrar valores intermedios en la ventana Inmediato sin detener la ejecución.

ADVERTISEMENT