
La dichiarazione delle variabili in una macro Excel
In questa lezione del corso Excel ti spiego come dichiarare una variabile in una macro.
Dim nome As tipo
La funzione Dim ha due parametri
- Il parametro "nome" è il nome della variabile. E' obbligatorio.
- Il parametro "tipo" è il tipo di dati che ospiterà la variabile. E' facoltativo.
Quali sono i tipi di dati? Esistono diversi formati o tipi di dati in una macro Excel. I principali sono i seguenti.
- String per le stringhe (testi)
- Integer per i numeri interi
- Double per i numeri con doppia precisione
Ti faccio un esempio pratico.
Digita questa macro.
- Sub Macro()
- Dim messaggio As String
- messaggio = "Hello World"
- Range("B3").Select
- ActiveCell.FormulaR1C1 = messaggio
- End Sub
Questa macro dichiara una variabile con nome "messaggio" e tipo dati String (testo) tramite l'istruzione Dim messaggio As String.
Poi assegna alla variabile la stringa "Hello World" tramite l'assegnazione messaggio = "Hello World".
Nella riga successiva seleziona la cella B3 come cella attiva tramite l'istruzione Range("B3").Select.
Infine, scrive il contenuto della variabile messaggio nella cella attiva (B3) tramite l'istruzione ActiveCell.FormulaR1C1 = messaggio.
La dichiarazione del tipo di dati è facoltativa e non è nemmeno vincolante
Ad esempio, puoi dichiarare una variabile come stringa e assegnargli un numero.
La macro funziona lo stesso ed Excel non va in errore
- Sub Macro()
- Dim messaggio As String
- messaggio = 2020
- Range("B3").Select
- ActiveCell.FormulaR1C1 = messaggio
- End Sub
Puoi anche dichiarare una variabile senza indicare il tipo di dati.
Il risultato sempre lo stesso.
- Sub Macro()
- Dim messaggio
- messaggio = "Hello World"
- Range("B3").Select
- ActiveCell.FormulaR1C1 = messaggio
- End Sub
In generale la dichiarazione delle variabili è facoltativa in una macro.
Potresti anche non dichiarare affatto le variabili
- Sub Macro()
- messaggio = "Hello World"
- Range("B3").Select
- ActiveCell.FormulaR1C1 = messaggio
- End Sub
In questi casi si occupa Excel della dichiarazione della variabile nel momento in cui gli assegni un valore.
Tuttavia, è una buona consuetudine della programmazione dichiarare sempre le variabili.
Se vuoi imporre a Excel di usare solo le variabili dichiarate, puoi aggiungere la clausola Option Explicit all'inizio del modulo
- Option Explicit
- Sub Macro()
- Dim messaggio As String
- messaggio = "Hello World"
- Range("B3").Select
- ActiveCell.FormulaR1C1 = messaggio
- End Sub
Questa clausola obbliga Excel a lavorare esclusivamente con le variabili dichiarate in modo esplicito (option explicit) nella macro.
In questo caso, se tenti di assegnare un valore a una variabile non dichiarata, Excel restituisce un errore.