Tratteremo le variabili globali, in questo tutorial. Una variabile in VBA può avere un ambito diverso. L'ambito di una variabile si basa sulla sua posizione nel codice e sul modo in cui è dichiarata. L'ambito di una variabile indica la sua visibilità e dove può essere utilizzata.
Variabile a livello di procedura
Queste variabili possono essere utilizzate solo all'interno della procedura secondaria o della funzione in cui sono dichiarate. È necessario dichiarare una variabile a livello di procedura utilizzando la parola chiave Dim. Inoltre, è necessario inserirlo all'interno della procedura secondaria o della funzione di interesse. Il modo in cui dichiareresti una variabile a livello di procedura è mostrato nel codice seguente:
1234567 | Sub DichiaranteAProcedureLevelVariable()Dim someNumber As Integerqualche numero = 5MsgBox someNumberFine sottotitolo |
Il risultato è:
È possibile utilizzare questa variabile solo all'interno della procedura Sub denominata DeclaringAProcedureLevelVariable(). Dal momento che è in questa procedura secondaria e abbiamo usato la parola chiave Dim. Se lo chiami da un'altra procedura secondaria, otterresti il seguente errore:
Variabile livello modulo
È possibile utilizzare una variabile a livello di modulo in qualsiasi procedura secondaria o funzione all'interno dello stesso modulo. È necessario posizionare la dichiarazione della variabile nella parte superiore del modulo nella sezione Dichiarazioni, sotto l'istruzione Options Explicit, e utilizzare la parola chiave Dim:
Quando eseguiamo la seconda procedura secondaria invece di un messaggio di errore, otteniamo il seguente risultato nella cella A1 della cartella di lavoro:
Variabile di livello globale
Puoi utilizzare una variabile globale nei tuoi moduli, funzioni, procedure secondarie e classi. Dichiari una variabile Global, nella sezione Dichiarazioni, sotto l'istruzione Options Explicit e usando la parola chiave Global. Il modo in cui si dichiara una variabile di livello globale è mostrato di seguito. Entrambe le procedure Sub in Module1 possono utilizzare questa variabile.
Poiché questa variabile è una variabile di livello globale, puoi utilizzarla anche nel Modulo2:
Quando esegui questo codice da Module2, ottieni il seguente risultato: