Option Explicit nelle macro Excel

La presenza della clausola Option Explicit all'inizio di una macro Excel impone la dichiarazione delle variabili

Option Explicit

In presenza di questa clausola devo dichiarare le variabili per poterle utilizzare.

La macro genera un messaggio di errore quando incontra una variabile non dichiarata.

Nota. Di default la dichiarazione delle variabili non è obbligatoria in una macro Excel. Quando la macro incontra una variabile non dichiarata, la dichiara automaticamente. La presenza della clausola Option Explicit disabilita la dichiarazione automatica.

Faccio un esempio pratico.

In questa macro assegno un valore alla variabile Var1 senza dichiararla.

  1. Sub Macro2()
  2. var1 = "Hello"
  3. Range("B2").Select
  4. ActiveCell.FormulaR1C1 = var1
  5. End Sub

La macro funziona correttamente. Excel dichiara automaticamente la variabile, gli assegna il valore "Hello"

Poi lo visualizza nella cella B2.

nella cella B2 la macro scrive Hello

Ora modifico la macro inserendo Option Explicit all'inizio delle macro

  1. Option Explicit
  2. Sub Macro2()
  3. var1 = "Hello"
  4. Range("B2").Select
  5. ActiveCell.FormulaR1C1 = var1
  6. End Sub

Quando eseguo la macro Excel visualizza un messaggio di errore "Variabile non definita" all'istruzione var1="Hello".

Questo accade perché al momento dell'assegnazione la variabile var1 non è stata ancora dichiarata.

l'errore

In pratica, la presenza della clausola Option Explicit ha disabilitato la dichiarazione automatica delle variabili.

Nota. La clausola Option Explicit ha effetto su tutte le routine presenti nella macro. Non posso inserirla in una singola routine.

In presenza della clausola Option Explicit, devo necessariamente inserire la dichiarazione della variabile var1 prima dell'utilizzo.

  1. Option Explicit
  2. Sub Macro1()
  3. Dim var1 As String
  4. var1 = "Hello"
  5. Range("B2").Select
  6. ActiveCell.FormulaR1C1 = var1
  7. End Sub

In questo modo la macro funziona correttamente.

Excel dichiara la variabile var1, gli assegna il valore "Hello" e la visualizza nella cella B2.

nella cella B2 la macro scrive Hello

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le variabili nelle macro Excel

Le variabili in VBA