En más de una ocasión, podríamos requerir en nuestro código de VBA explorar en mayor profundidad el valor de una variable, para comprobar que el código que hemos pensado se ejecuta de acuerdo a nuestras expectativas, o intentar entender dónde y por qué se están produciendo problemas. Este proceso se conoce como "debuggear" (en español: depuración), y no es otra cosa que el proceso de identificar y corregir errores de programación ("bugs").
En general, debido a malas costumbres, muchos programadores de VBA mal-utilizan las ventanas con mensajes o MsgBox para mostrar el contenido de variables durante la ejecución del código. También tenemos los puntos de interrupción que, cuando un cierto código repite varias veces una misma línea que nos interesa explorar en mayor profundidad, se vuelven tediosos rápidamente. Ambos métodos si bien en alguna medida pueden cumplir con su objetivo, en general no son óptimos, debido a que ralentizan bastante la ejecución, produciendo un exceso de interacciones innecesarias, y no dejan un buen "registro" de lo que ha ido ocurriendo con el código.
A este fin, se introduce (de manera bastante literal) una instrucción denominada Debug.Print. Esta función permite la depuración de una programación de forma más cómoda, mostrando (o "imprimiendo", del inglés "print") información en la ventana Inmediato de VBA. Simplemente debemos asegurarnos que la ventana Inmediato se encuentre visible, y al anteponer esta sentencia antes de la variable que se desea comprobar, conseguiremos ver todos los valores que toma la variable cada vez que el programa pasa por este comando.
Estas instrucciones se pueden posicionar en forma de "marcadores" en distintos puntos a lo largo del código cuando queremos depurarlo (en general, cada vez que se modifique o acceda al valor de una variable que sea de nuestro interés), y su principal ventaja es que no interactuarán con el resto del código, no modificarán nuestro libro, ni producirán interacciones visibles con el exterior. Simplemente dejarán un discreto registro de la ejecución de nuestro programa en la ventana Inmediato, que luego podremos releer para analizarlo y ver dónde está el error.
Para añadir un marcador al programa es preciso añadir la instrucción Debug.Print seguida del nombre de la variable que se quiere analizar, y asegurarnos que la ventana Inmediato se encuentre visible desde Ver > Ventana Inmediato, o el atajo Ctrl+G directamente desde nuestro editor de VBA:
En los puntos de nuestro código que nos interese realizar una evaluación de lo que está ocurriendo con el valor de nuestras variables, simplemente agregamos la línea Debug.Print
Sub DepurarCodigo()
Dim Num_Fila As Long
For Num_Fila = 10 To 0 Step -1
Debug.Print "Valor de la fila : " & Num_Fila
Debug.Print "Resultado del calculo : " & 10/Num_Fila
Cells(Num_Fila, 2) = 10/Num_Fila
Next
End Sub
Una vez hayamos terminado, si bien esta línea no ocasionará problemas con el resto del programa, puede ser eliminada para mayor limpieza en nuestro código, y no entorpecer la visibilidad en la ventana Inmediato si la necesitamos para otros usos más tarde.