Variabili, costanti e tipi di dati
Bentornati al nostro appuntamento con gli articoli dedicati al VBA. Nell’articolo precedente abbiamo visto le differenze tra Sub e Function, ma prima di iniziare a scrivere del codice che abbia una qualche funzionalità è bene imparare cosa sono le variabili e le costanti e capire quali tipi di dati possono contenere.
In ogni linguaggio di programmazione ci troviamo di fronte alla gestione delle variabili e delle costanti, queste ci permettono di assegnare un nome ad un valore per poterlo facilmente recuperare per effettuare delle operazioni e/o modificare durante l’esecuzione di un programma.
Cos’è una variabile
Wikipedia definisce una variabile così:
Una variabile, in informatica, è un insieme di dati modificabili situati in una porzione di memoria (una o più locazioni di memoria) destinata a contenere dei dati, suscettibili di modifica nel corso dell’esecuzione di un programma. Una variabile è caratterizzata da un nome (inteso solitamente come una sequenza di caratteri e cifre).
Molto più semplicemente possiamo immaginare una variabile come un contenitore nel quale andremo a conservare un valore che potrà successivamente essere cambiato. Ognuno di questi contenitori può contenere un tipo di dato differente in base al tipo assegnato (vedi paragrafo dedicato più sotto).
Le tre parti che compongono una variabile sono il suo nome, il tipo di dato e il valore contenuto in essa. Attenzione al nome, ci sono delle parole riservate che non potete usare per i nomi, come i tipi delle variabili o le istruzioni tipo if, then, else, eccetera ma non preoccupatevi, il compilatore vi avviserà quando il nome assegnato non può essere usato, anche se l’errore è alquanto arcano da comprendere, il messaggio recita “Errore di compilazione: Previsto: identificatore”
Cos’è una costante
Una costante non è altro che un contenitore, esattamente come un variabile, il cui valore, però, viene assegnato immediatamente e non muta nel tempo, una volta assegnato quindi non può più essere cambiato. Solitamente si definisce una costante all’inizio di un programma per memorizzare delle preferenze.
I tipi di dati in VBA
Ogni linguaggio di programmazione ha i suoi tipi di dati benché alcuni siano comuni a tutti. In VBA i tipi di dati sono pochi e li trovate qui di seguito
[ultimatetables 1 /]
Selezionare il corretto tipo di dati quando si dichiara una variabile o una costante è importante per 2 motivi:
- Il tipo di dati sbagliato (ad esempio un tipo String per contenere un numero) vi impedisce poi di effettuare le operazioni in modo corretto
- Un tipo di dati troppo grande (es. Double per memorizzare numeri da 1 a 10) vi fa sprecare memoria allocata nella RAM e rallenta le operazioni, viceversa un tipo troppo piccolo (es. Integer per memorizzare valori con virgola) vi genera un errore non riuscendo ad inserire il valore nella variabile
Quindi quando scrivete una macro o una funzione pensate bene al tipo di dato da assegnare alla variabile.
Dichiarare una variabile
Per dichiarare una variabile esistono tre metodi, Dim, Public e Private. Per ora analizziamo il primo di questi tre tipi ovvero Dim, gli altri due li scopriremo quando parleremo di visibilità.
La sintassi per creare una variabile con Dim è semplice
DIM nome_della_variabile AS tipo_della_variabile
Se il tipo di variabile non viene dichiarato verrà creata automaticamente una variabile di tipo Variant.
Quindi apriamo il VBE ed inseriamo un nuovo modulo, quindi creiamo una Sub di esempio con all’interno una dichiarazione di creazione di una variabile e l’assegnazione di un valore.
Sub Test() 'Dichiariamo una variabile di tipo String Dim miaVariabile As String 'Assegnamo un valore alla variabile miaVariabile = "Ciao Mondo" End Sub
Come potete vedere creare una variabile ed assegnarle un valore è un operazione veramente semplice. Anche leggere il valore di una variabile è un’operazione altrettanto semplice, modifichiamo la nostra sub perché mostri a video il valore assegnato.
Sub Test() 'Dichiariamo una variabile di tipo String Dim miaVariabile As String 'Assegnamo un valore alla variabile miaVariabile = "Ciao Mondo" 'Mostra a video il valore della variabile MsgBox miaVariabile End Sub
Clicchiamo quindi sul pulsante per l’esecuzione della Macro
Se tutto è andato bene il risultato sarà il seguente
Il passo successivo è cambiare il valore contenuto in una variabile, anche questa è un operazione semplice.
Sub Test() 'Dichiariamo una variabile di tipo String Dim miaVariabile As String 'Assegnamo un valore alla variabile miaVariabile = "Ciao Mondo" 'Cambiamo il valore miaVariabile = "Ciao lettore di TuttoExcel" 'Mostra a video il valore della variabile MsgBox miaVariabile End Sub
Una piccola nota personale: quando create una variabile datele un nome che abbia un significato e rappresenti il suo contenuto, chiamare una variabile Pippo o abc non è mai una bella idea, se in un codice di poche righe è facile da intuire cosa contenga immaginate quando esso arriva ad essere lungo centinaia di righe, il rischio è che un giorno rileggendolo potreste non capire più cosa rappresenti.
Dichiarare una costante
Abbiamo visto come si dichiara una variabile e come le si assegna un valore, il discorso per le costanti è simile, la principale variazione è l’assegnazione del valore che va fatta nel momento in cui si effettua la dichiarazione, la sintassi è la seguente:
CONST nome_della_costante AS tipo_di_dati = valore
Come prima apriamo il VBE e creiamo la nostra Sub con dichiarazione della costante, assegnazione di un valore e messaggio che lo mostra a video
Sub TestCostante() 'Dichiario una costante Const MIA_COSTANTE As String = "Valore Costante" 'Mostra a video il valore MsgBox MIA_COSTANTE End Sub
Come potete notare il nome della costante è stato scritto tutto in maiuscolo, questo non è un passaggio obbligatorio ma è una prassi, in questo modo diventa più facile distinguere le costanti dalle variabili.
Conclusione
Mentre scrivevo l’articolo mi è venuto in mente che molti potrebbero chiedersi “perché usare una variabile e non direttamente il valore?“, la risposta è abbastanza semplice, prima di tutto in una serie di istruzioni il valore può cambiare in seguito ad alcune operazioni, in secondo luogo se, successivamente alla stesura del codice, si ha la necessità di cambiare un valore, che si pensava immutabile, lo si fa solo una volta ed automaticamente il valore è aggiornato in tutto il codice, un esempio? La costante dell’IVA, negli ultimi anni ha subito diverse variazioni e se nei calcoli avessimo usato direttamente il valore, invece che una costante, avremmo dovuto effettuare diverse correzioni rischiando di incorrere in errori.
Come sempre sono a disposizione nei commenti per ulteriori chiarimenti.
A presto
Ultimi commenti