TOP

VBA-Lezione 2. Debugger (Debugger)

Uno strumento nell'ambiente VBA per il debug del codice del programma. Essere in grado di lavorare con un debugger è vitale per chiunque scriva su VBA. È necessario per verificare come funziona il codice e per trovare e correggere gli errori in esso contenuti.


Apri Visual Basic Editor (Alt+F11). Crea un modulo al suo interno e scrivi il seguente codice:

 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 "Divide С by 5: C = " + Trim(Str(C))  'C è diviso per 5: C =
    C = Round(C / D) 'ci sarà un errore qui, poiché è impossibile dividere per zero (e D = 0)
End Sub

Premi Ctrl+G e la finestra Immediate apparirà in basso. In questa finestra, durante il funzionamento della macro, è possibile modificare i valori delle variabili, eseguire codice diverso su VBA, non scritto prima nel modulo.

Se posizioni il cursore all'interno del codice del modulo e premi F5, verrà eseguito completamente. Se premi F8, verrà eseguita solo una riga di codice. La successiva pressione di F8 eseguirà la riga di codice successiva e così via. puoi scorrere l'intero codice. È possibile creare un punto di interruzione utilizzando il pulsante F9. Se quindi esegui il codice con F5, il codice verrà eseguito fino alla riga specificata e quindi verrà messo in pausa. Si può poi continuare utilizzando i pulsanti F5 o F8 descritti in precedenza.

Se osservi attentamente il codice, vedrai che alle variabili A, B, C, D sono assegnati numeri. Le righe "testo" Debug.Print stampano il testo che abbiamo specificato nella finestra Immediate aperta in precedenza per vedere cosa sta succedendo con la variabile. Str(A) converte un numero in un valore di testo. E Trim() rimuove gli spazi a destra e a sinistra da esso. L'operatore Round(С) arrotonda il valore secondo le regole dell'aritmetica a un numero intero (quindi assegniamo il risultato del calcolo a una variabile intera Long, il che significa che deve essere un numero intero). Alla fine del codice abbiamo creato appositamente una situazione falsa per esercitarci nell'uso del debugger.

Posizionati all'interno del codice e premi F8 quattro volte. La riga che verrà eseguita successivamente sarà contrassegnata in giallo. Passa il mouse sulle diverse variabili. Allo stesso tempo, apparirà una finestra pop-up in cui vedrai il loro valore. Le variabili a cui non sono stati ancora assegnati valori sono uguali a zero. Premi nuovamente F8. Nella finestra Immediate apparirà una riga: A = 10 Ora possiamo cambiare immediatamente il valore della variabile A nella finestra Immediate (ad esempio, cambiarlo in 8). Per fare ciò, in una nuova riga della finestra Immediate, scrivi: A = 8 e premi Enter. Ora passa il mouse sulla variabile A e vedi che il suo valore è 8. per vedere il valore senza passare il mouse, puoi farlo apparire nella finestra Immediate. Si fa così, digitate nella riga vuota della finestra Immediate: ?A e premete Enter. Cartello? nella finestra Immediate ha lo stesso significato di Debug.Print nel codice. È semplicemente più semplice e più breve scrivere in questo modo. Vedrai immediatamente il numero: il risultato della tua richiesta.

Posiziona il cursore sull'ultima riga di codice (C = Round (C / D)) e premi F9. Apparirà un punto di interruzione. Puoi rimuoverlo con lo stesso pulsante, ma non lo rimuoveremo ancora. Premere F5, il programma eseguirà tutte le righe e si fermerà all'ultima. Nella finestra Immediate verranno visualizzati i messaggi sull'assegnazione di valori alle variabili. Siamo arrivati all'ultima riga di codice. Dovrebbe generare un errore perché contiene una divisione per zero. Premi F8 e verifica tu stesso. Nella finestra visualizzata, fai clic su Debug. Se premi End, l'esecuzione del programma si fermerà e noi vogliamo finirlo.

Puoi correggere la situazione modificando il valore della variabile D. Ora è uguale a zero. Nella finestra Immediate inserisci il testo: D = 2 in una riga vuota e premi Enter. Ora, con l'ultima riga di codice, dividiamo non per zero, ma per 2, evitando così un errore. Premi F5 e il programma completerà il suo lavoro senza errori.

Prova a modificare il codice ed esercitati utilizzando il debugger. Credimi, ti renderà la vita molto più semplice.