La funzione Dim nelle macro Excel
Per dichiarare una variabile in una macro Excel uso la funzione Dim del linguaggio VBA
Dim nome As tipo
Dove nome è il nome della variabile mentre tipo è il tipo di dati della variabile (intera, stringa, booleana, ecc.).
Esempio
Dichiaro una variabile numerica voto di tipo intero
Dim voto As Integer
Dopo la dichiarazione posso assegnare alla variabile qualsiasi valore intero.
La dichiarazione è facoltativa. Non è necessario dichiarare le variabili in una macro Excel. Se utilizzo un nome di variabile senza dichiararla, la macro la dichiara automaticamente. Purché non sia presente option explicit all'inizio del modulo.
Come assegnare valori a una variabile
L'assegnazione di un valore alla variabile posso farla in qualunque altra riga di codice successiva alla dichiarazione.
Scrivo il nome della variabile sul lato a sinistra dell'operatore uguale (=) e il valore che gli voglio a assegnare a destra.
nomevariabile = valore
Dopo aver assegnato un valore alla variabile, posso cambiarlo con un'altra assegnazione o posso usarla come operando in qualsiasi espressione.
Esempio
Ecco un esempio pratico di assegnazione
Dim voto As Integer
voto = 30
Esempio 2
Poiché la dichiarazione della variabile è facoltativa, potrei anche scrivere direttamente
voto = 30
In questo caso è il compilatore a dichiarare automaticamente la variabile nel tipo di dato del valore ossia intero.
Un esempio pratico
In questa macro excel dichiaro una variabile di tipo stringa tramite la funzione Dim. La chiamo "messaggio".
Poi gli assegno un valore alfanumerico "Hello world"
- Sub Macro()
- Dim messaggio As String
- messaggio = "Hello World"
- MsgBox (messaggio)
- End Sub
Infine, visualizzo il contenuto della variabile messaggio tramite la funzione MsgBox().
Il risultato in output quando eseguo la macro è il seguente:
Esempio 2
In questo esempio dichiaro una variabile anno e gli assegno il valore 2000.
Poi incremento di 1 il valore della variabile anno.
- Sub Macro()
- Dim anno As Integer
- anno=2000
- anno=anno+1
- MsgBox (anno)
- End Sub
Il risultato in output della macro è
La macro stampa il contenuto della variabile anno che dopo l'operazione di incremento (riga 4) è diventato 2001
Option explicit
Per evitare che la macro dichiari automaticamente le variabili, basta aggiungere option explicit all'inizio del modulo
- Option Explicit
- Sub Macro
- Dim anno As Integer
- End Sub
In questo modo la macro va in errore se incontra una variabile non dichiarata.
E così via.