EUCOOKIELAW_BANNER_TITLE

Variabili, costanti e tipi di dati

contenitore_costanti_variabiliBentornati 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

Tipo Descrizione
Boolean Tipo di dati booleano, ovvero accetta solo valori True (vero) e False (falso), occupa
Byte Tipo di dati numerico che accetta valori compresi tra 0 e 255
Integer Tipo di dati numerico che accetta valori compresi tra -32768 e 32767
Long Tipo di dati numerico che accetta valori compresi tra -2147483648 e 2147483647
Single Tipo di dati numerico che accetta valori negativi da -3,402823E38 a -1,401298E-45 e valori positivi da 1,401298E-45 a 3,402823E38
Double Tipo di dati numerico che accetta numeri negativi da -1,79769313486232E308 a -4,94065645841247E-324 e numeri positivi da 4,94065645841247E-324 a 1,79769313486232E308
String Tipo di dati alfanumerico, accetta valori da 0 a 65000 caratteri
Date Tipo da dati utilizzato per contenere date comprese tra il 01/01/100 al 31/12/9999
Variant Questo è il tipo predefinito di dati, varia in base al valore assegnato. In caso il valore sia numerico viene trattato come se fosse un Double, negli altri casi come se fosse un tipo String o Object
Object Questo tipo di dati può contenere un "oggetto", vedremo in seguito cosa sono e come usarli.

Selezionare il corretto tipo di dati quando si dichiara una variabile o una costante è importante per 2 motivi:

  1. Il tipo di dati sbagliato (ad esempio un tipo String per contenere un numero) vi impedisce poi di effettuare le operazioni in modo corretto
  2. 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.

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.

Clicchiamo quindi sul pulsante per l’esecuzione della Macro

variabili_vba_1

Se tutto è andato bene il risultato sarà il seguente

ciao_mondo

Il passo successivo è cambiare il valore contenuto in una variabile, anche questa è un operazione semplice.

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

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


MESSAGGIO DALL'AUTORE
Aiutami a far conoscere questo blog ad altre persone perché possa aiutare anche loro, condividi questo articolo su Facebook, Twitter, Google+ o Linkedin, non ti costa nulla e mi aiuterà a diffonderlo dandomi l'ispirazione per scrivere altri articoli.

gianfranco

Appassionato di informatica, fotografia e di tecnologia in generale. Esperto nell'uso di Excel e con tanta voglia di condividere le sue conoscenza con il mondo, sempre pronto a dare una mano (ma non più di due volte, altrimenti rimango senza).

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: