La depuració és una part essencial del desenvolupament de programari, i VBA no és una excepció. Depurar el codi significa identificar i corregir errors o problemes en el codi. En aquest tema, aprendrem diverses tècniques de depuració que ens ajudaran a trobar i solucionar errors en els nostres programes VBA.

  1. Utilitzar punts de ruptura (Breakpoints)

Els punts de ruptura són una eina poderosa per a la depuració. Permeten aturar l'execució del codi en un punt específic per examinar l'estat del programa.

Com establir un punt de ruptura:

  1. Obre l'Editor de VBA.
  2. Selecciona la línia de codi on vols establir el punt de ruptura.
  3. Fes clic dret i selecciona "Toggle Breakpoint" o prem F9.

Exemple:

Sub ExemplePuntDeRuptura()
    Dim i As Integer
    For i = 1 To 10
        Debug.Print i  ' Estableix un punt de ruptura aquí
    Next i
End Sub

Quan el codi s'executa, s'aturarà a la línia Debug.Print i, permetent-te examinar el valor de i.

  1. Utilitzar la finestra de variables locals (Locals Window)

La finestra de variables locals mostra totes les variables locals i els seus valors actuals quan el codi està en pausa.

Com utilitzar la finestra de variables locals:

  1. Obre l'Editor de VBA.
  2. Ves a "View" > "Locals Window".

Exemple:

Sub ExempleVariablesLocals()
    Dim a As Integer
    Dim b As Integer
    a = 5
    b = 10
    Debug.Print a + b  ' Pausa aquí per veure les variables locals
End Sub

Quan el codi s'atura, la finestra de variables locals mostrarà els valors de a i b.

  1. Utilitzar la finestra d'immediates (Immediate Window)

La finestra d'immediates permet executar línies de codi individuals i veure els resultats immediatament. També es pot utilitzar per imprimir valors de variables durant l'execució del codi.

Com utilitzar la finestra d'immediates:

  1. Obre l'Editor de VBA.
  2. Ves a "View" > "Immediate Window" o prem Ctrl+G.

Exemple:

Sub ExempleFinestraImmediates()
    Dim x As Integer
    x = 42
    Debug.Print x  ' El valor de x es mostrarà a la finestra d'immediates
End Sub

També pots escriure codi directament a la finestra d'immediates:

? x  ' Això mostrarà el valor de x

  1. Utilitzar la finestra de rellotge (Watch Window)

La finestra de rellotge permet supervisar variables específiques i expressions durant l'execució del codi.

Com afegir una variable a la finestra de rellotge:

  1. Obre l'Editor de VBA.
  2. Selecciona la variable que vols supervisar.
  3. Fes clic dret i selecciona "Add Watch".

Exemple:

Sub ExempleFinestraRellotge()
    Dim y As Integer
    y = 7
    Debug.Print y  ' Afegeix y a la finestra de rellotge per supervisar el seu valor
End Sub

  1. Utilitzar el mode pas a pas (Step Into, Step Over, Step Out)

El mode pas a pas permet executar el codi línia per línia per veure exactament què està passant.

Com utilitzar el mode pas a pas:

  1. Obre l'Editor de VBA.
  2. Utilitza les següents tecles:
    • F8: Step Into (Executa la línia actual i entra a les subrutines)
    • Shift+F8: Step Over (Executa la línia actual sense entrar a les subrutines)
    • Ctrl+Shift+F8: Step Out (Executa fins que surt de la subrutina actual)

Exemple:

Sub ExemplePasAPas()
    Dim z As Integer
    z = 3
    z = z * 2  ' Utilitza F8 per executar línia per línia
    Debug.Print z
End Sub

Exercici pràctic

Exercici:

Crea una subrutina que calculi la suma dels primers 10 nombres enters i imprimeixi el resultat. Utilitza punts de ruptura, la finestra de variables locals i la finestra d'immediates per depurar el codi.

Solució:

Sub SumaPrimers10Nombres()
    Dim suma As Integer
    Dim i As Integer
    suma = 0
    For i = 1 To 10
        suma = suma + i
        Debug.Print "i: " & i & ", suma: " & suma  ' Estableix un punt de ruptura aquí
    Next i
    Debug.Print "La suma dels primers 10 nombres és: " & suma
End Sub

Conclusió

Les tècniques de depuració són essencials per identificar i corregir errors en el codi VBA. Utilitzant punts de ruptura, la finestra de variables locals, la finestra d'immediates, la finestra de rellotge i el mode pas a pas, pots supervisar l'execució del teu codi i assegurar-te que funcioni correctament. Practica aquestes tècniques per millorar les teves habilitats de depuració i escriure codi més robust i fiable.

© Copyright 2024. Tots els drets reservats