Come utilizzare la dichiarazione di opzione esplicita in vba?

Punti chiave

  • L’opzione Explicit richiede di dichiarare tutte le variabili .
  • Questa è una dichiarazione che puoi utilizzare all’inizio di un modulo .
  • Puoi inserirlo manualmente o abilitarlo dalle opzioni.
  • È necessario utilizzare Option Explicit solo una volta.
  • Ti aiuta anche a identificare gli errori di battitura quando usi le variabili.

Cos’è l’opzione VBA esplicita

Option Explicit è un’istruzione che puoi utilizzare all’inizio di un modulo per forzarti a dichiarare tutte le variabili. Quando aggiungi questa istruzione, VBA ti mostra un errore di compilazione quando esegui il codice ed evidenzia anche la variabile nel codice che devi dichiarare.

vba-opzione-esplicito

Quando aggiungi un’opzione esplicita all’inizio di un modulo, VBA aggiunge una linea di separazione sotto di essa e quindi puoi iniziare a scrivere una procedura. E quando hai l’opzione di dichiarazione esplicita ed esegui una procedura, VBA controlla se c’è una variabile non dichiarata e ti mostra un messaggio di errore.

 Option Explicit Sub myMacro() a = 50 MsgBox a End Sub
vba-aggiungi la linea di separazione

Sopra è riportato il messaggio che ricevi quando una variabile non viene dichiarata.

Abilita l’opzione esplicita in VBA

Per abilitare l’istruzione di opzioni esplicite in un modulo, attenersi alla seguente procedura.

  1. Innanzitutto aprire Visual Basic Editor e nel menu Strumenti fare clic su Opzioni.
    activate-option-explicit-in-vba
  2. Successivamente, nelle opzioni, vai alla scheda dell’editor e seleziona la casella “Richiedi dichiarazione di variabile”.
    editor-tab-and-tick-mark
  3. Alla fine, fare clic su OK.
  4. Una volta fatto ciò, VBA aggiungerà un’opzione esplicita ogni volta che aggiungi un nuovo modulo.

Ma non aggiunge questa dichiarazione al modulo esistente, quindi devi aggiungerli manualmente a ciascuno dei moduli esistenti uno per uno.

Come aggiungerlo manualmente?

Come ho già detto, l’istruzione Option Explicit deve precedere la procedura del primo modulo (Sub o Function). Quindi devi aggiungere questa dichiarazione sopra la prima procedura (area dichiarazioni generali) e assicurarti di aggiungerla solo una volta.

area-dichiarazioni-generali

Se lo aggiungi all’interno di una procedura o tra due procedure, VBA ti mostrerà un errore quando tenti di eseguire uno qualsiasi dei codici del modulo.

vba-ti-mostrerà-un-errore

Esempi (perché utilizzare l’istruzione Option Explicit è una buona abitudine)

Lascia che ti mostri un esempio per farti capire perché l’istruzione Option Explicit è altamente raccomandata. Guarda il seguente codice.

 Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

In questo codice ho dichiarato una variabile “myText” come stringa e quindi ho impostato il valore di questa variabile. E alla fine, ho usato una finestra di messaggio che mostra il valore della variabile, ma se guardi attentamente, ho scritto male questa variabile come “MyTxt” invece di “myText”.

variabile dichiarata

Ora quando eseguo questo codice mi mostra una finestra di messaggio vuota.

casella di messaggio vuota

Ho bisogno dei tuoi 2 minuti per aiutarti a capire il vero problema qui. Quando ho digitato in modo errato il nome della variabile, VBA lo considera una variabile separata e, poiché non utilizzo l’istruzione esplicita dell’opzione, non mi mostra un errore.

errore di battitura nel nome della variabile

Questo è il motivo per cui la finestra di messaggio utilizza la seconda variabile (erroneamente digitata) a cui non è assegnato alcun valore. Ora pensaci per un secondo; Se scrivi un codice lungo e non usi istruzioni esplicite di opzioni, sarà difficile rintracciare questo errore finché non rileggerai tutto il codice.

Ma con l’opzione di dichiarazione esplicita attivata, quando eseguo questo codice ottengo un errore.

utilizzare l'opzione esplicita
 Option Explicit Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *