Macro di Excel: debug di un codice
Hai appreso che la macro è archiviata come codice VBA in Excel. Hai anche imparato che puoi scrivere direttamente codice per creare una macro nell'editor VBA. Tuttavia, come nel caso di qualsiasi codice, anche il codice della macro può presentare difetti e la macro potrebbe non essere eseguita come previsto.
Ciò richiede l'esame del codice per trovare i difetti e correggerli. Il termine utilizzato per questa attività nello sviluppo del software è il debug.
Debug VBA
L'editor VBA consente di sospendere l'esecuzione del codice ed eseguire qualsiasi attività di debug richiesta. Di seguito sono riportate alcune delle attività di debug che puoi eseguire.
- Passaggio attraverso il codice
- Utilizzo dei punti di interruzione
- Backup o avanzamento nel codice
- Non superare ogni riga di codice
- Interrogare qualsiasi cosa durante la lettura del codice
- Interruzione dell'esecuzione
Queste sono solo alcune delle attività che potresti eseguire nell'ambiente di debug di VBA.
Passaggio attraverso il codice
La prima cosa che devi fare per il debug è scorrere il codice durante l'esecuzione. Se hai un'idea di quale parte del codice sta probabilmente producendo il difetto, puoi saltare a quella riga del codice. Altrimenti, è possibile eseguire il codice riga per riga, eseguire il backup o spostarsi in avanti nel codice.
È possibile accedere al codice dalla finestra di dialogo Macro nella cartella di lavoro o dall'editor VBA stesso.
Stepping into the code from the workbook
Per accedere al codice dalla cartella di lavoro, eseguire le operazioni seguenti:
- Fare clic sulla scheda VISTA sulla barra multifunzione.
- Fare clic su Macro.
- Seleziona Visualizza macro dall'elenco a discesa.
Viene visualizzata la finestra di dialogo Macro.
- Fare clic sul nome della macro.
- Fare clic sul pulsante Entra.
L'editor VBA si apre e il codice della macro viene visualizzato nella finestra del codice. La prima riga nel codice macro verrà evidenziata in giallo.
Stepping into the code from the VBA editor
Per accedere al codice dall'editor VBA, procedi come segue:
- Fare clic sulla scheda SVILUPPATORE sulla barra multifunzione.
- Fare clic su Visual Basic. Si apre l'editor VBA.
- Fare clic sul modulo che contiene il codice macro.
Il codice della macro viene visualizzato nella finestra del codice.
Fare clic sulla scheda Debug sulla barra multifunzione.
Selezionare Step into dall'elenco a discesa.
La prima riga nel codice della macro verrà evidenziata. Il codice è in modalità di debug e le opzioni nell'elenco a discesa Debug diventeranno attive.
Backup o avanzamento nel codice
È possibile andare avanti o indietro nel codice selezionando Step Over o Step Out.
Non superare ogni riga di codice
È possibile evitare di passare attraverso ogni codice di riga, se si identifica una parte potenziale del codice che deve essere discussa, selezionando Run to Cursor.
Utilizzo dei punti di interruzione
In alternativa, è possibile impostare punti di interruzione in specifiche righe di codice ed eseguire il codice, osservando i risultati in ogni punto di interruzione. È possibile attivare o disattivare un punto di interruzione e cancellare tutti i punti di interruzione se e quando necessario.
Utilizzando Watch
È possibile aggiungere un orologio durante il debug, per valutare un'espressione e interrompere l'esecuzione quando una variabile raggiunge un valore specifico. Ciò significa che configuri un'espressione di controllo, che verrà monitorata fino a quando non è vera e quindi la macro si fermerà e ti lascerà in modalità di interruzione. VBA ti offre diversi tipi di orologi tra cui scegliere, al fine di realizzare ciò che stai cercando.
Interruzione dell'esecuzione
Durante il debug, in qualsiasi momento, se hai trovato un indizio su cosa sta andando storto, puoi interrompere l'esecuzione per decifrare ulteriormente.
Se sei uno sviluppatore esperto, la terminologia di debug ti è familiare e le opzioni di debug dell'editor VBA ti semplificano la vita. Anche altrimenti, non ci vorrà molto tempo per padroneggiare questa abilità se hai imparato VBA e compreso il codice.