TOP

VBA-Lección 2. Depurador (Debugger)

Una herramienta en el entorno VBA para depurar el código del programa. Ser capaz de trabajar con un depurador es vital para cualquiera que escriba en VBA. Es necesario para verificar cómo funciona su código y para encontrar y corregir errores en él.


Abra Visual Basic Editor (Alt+F11). Cree un módulo en él y escriba el siguiente código:

 Sub LearningDebug()
    Dim A As Long, B As Long, C As Long, D As Long

    D = 0
    A = 10
    Debug.Print "A = " + Trim(Str(A))
    B = 15
    Debug.Print "B = " + Trim(Str(B))
    C = A + B
    Debug.Print "C = " + Trim(Str(C))
    C = Round(C / 5)
    Debug.Print "C se divide por 5: C =" + Trim(Str(C))
    C = Round(C / D) 'habrá un error aquí, ya que es imposible dividir por cero (y D = 0)
End Sub

Presione Ctrl+G y la ventana Immediate aparecerá en la parte inferior. En esta ventana, durante el funcionamiento de la macro, puede cambiar los valores de las variables, ejecutar código diferente en VBA, no escrito en el módulo anterior.

Si coloca el cursor dentro del código del módulo y presiona F5, se ejecutará por completo. Si presiona F8, solo se ejecutará una línea de código. La siguiente pulsación de F8 ejecutará la siguiente línea de código, y así sucesivamente. puede recorrer todo el código. Puede crear un punto de interrupción con el botón F9. Si luego ejecuta el código con F5, el código se ejecutará en la línea especificada y luego se detendrá. Luego se puede continuar usando los botones F5 o F8 descritos anteriormente.

Si observa detenidamente el código, verá que a las variables A, B, C, D se les asignan números. Las líneas Debug.Print "text" imprimen el texto que especificamos en la ventana Immediate previamente abierta para ver qué está pasando con la variable. Str (A) convierte un número en un valor de texto. Y Trim () elimina los espacios a la derecha y a la izquierda. El operador Round (C) redondea el valor según las reglas de la aritmética a un número entero (por lo tanto, asignamos el resultado de los cálculos a una variable de tipo entero Long, lo que significa que debe ser un número entero). Al final del código, creamos específicamente una situación falsa para practicar el uso del depurador.

Párese dentro del código y presione F8 cuatro veces. La línea que se ejecutará a continuación estará marcada en amarillo. Pase el cursor sobre las diferentes variables. Al mismo tiempo, aparecerá una ventana emergente en la que verá su valor. Las variables a las que aún no se les han asignado valores son iguales a cero. Presione F8 nuevamente. Aparecerá una línea en la ventana Immediate: A = 10 Ahora podemos cambiar el valor de la variable A inmediatamente en la ventana Immediate (por ejemplo, cambiarlo a 8). Para ello, en una nueva línea de la ventana Immediate, escriba: A = 8 y presione Enter. Ahora pase el cursor sobre la variable A y vea que su valor es 8. Para ver el valor sin pasar el cursor, puede hacer que aparezca en la ventana Immediate. Esto se hace así, ingresa en la línea vacía de la ventana Immediate: ?A y presiona Enter. ¿Firmar? en la ventana Immediate significa lo mismo que Debug.Print en el código. Es más fácil y más corto escribir de esa manera. Inmediatamente verá el número, el resultado de su solicitud.

Mueve el cursor a la última línea de código (C = Round (C/D)) y presiona F9. Aparecerá un punto de interrupción. Puede eliminarlo con el mismo botón, pero no lo eliminaremos todavía. Presione F5, el programa ejecutará todas las líneas y se detendrá en la última. En la ventana Immediate, aparecerán mensajes sobre la asignación de valores a las variables. Hemos llegado a la última línea de código. Debería arrojar un error porque contiene división por cero. Presione F8 y compruébelo usted mismo. En la ventana que aparece, haga clic en Debug. Si presiona End, la ejecución del programa se detendrá y queremos llevarlo hasta el final.

Puedes corregir la situación cambiando el valor de la variable D. Ahora es igual a cero. En la ventana Immediate, ingrese el texto: D = 2 en una línea vacía y presione Enter. Ahora, con la última línea de código, dividimos no por cero, sino por 2, evitando así un error. Presione F5 y el programa completará su trabajo sin errores.

Intente cambiar el código y practique con el depurador. Créeme, te hará la vida mucho más fácil.