Tutto quello che devi sapere sulle variabili vba
VBA variabile
In VBA una variabile è come una scatola di immagazzinamento che a sua volta è memorizzata nel tuo sistema, ma può memorizzare lì un valore per te e puoi utilizzare quel valore nel tuo codice e modificare quel valore se lo desideri (come suggerisce il nome, “VARIABILE ” è qualcosa il cui valore non è fisso).
Per dichiarare una variabile è necessario seguire una semplice procedura:
- Utilizza la parola chiave “Dim” all’inizio.
- Specificare un nome per la variabile.
- Utilizzare la parola chiave “As” dopo il nome.
- Specifica il “Tipo di dati” della variabile in base al valore che desideri assegnarle.
Qui abbiamo utilizzato il nome “startDate” e specificato il tipo di dati “Date”. Dopo aver dichiarato una variabile, è possibile assegnarle un valore.
Dim startDate As Date startDate = “11/10/2018”
Ora, ogni volta che utilizzi la data di inizio nel tuo codice, Excel utilizza la data che gli hai fornito.
Tipi di dati
In VBA, i tipi di dati sono fondamentalmente i tipi di dati che è necessario specificare quando si memorizza un valore in una variabile o costante. Ad esempio, se desideri memorizzare una data in una variabile, devi prima dichiarare tale variabile come tipo di dati.
Tipi di dati spiegati
Ecco l’elenco completo dei tipi di dati che puoi utilizzare in VBA.
Tipo di dati | Byte utilizzati | Intervallo di valori |
---|---|---|
Byte | 1 byte | da 0 a 255 |
booleano | 2 byte | Vero o falso |
Totale | 2 byte | Da -32.768 a 32.767 |
Lungo (intero lungo) | 4 byte | Da -2.147.483.648 a 2.147.483.647 |
Solo | 4 byte | Da -3,402823E38 a -1,401298E-45 per valori negativi; Da 1.401298E-45 a 3.402823E38 per valori positivi |
Doppio | 8 byte | Da -1,79769313486231E308 a -4,94065645841247E-324 per valori negativi; Da 4,94065645841247E-324 a 1,79769313486232E308 per valori positivi |
Contanti | 8 byte | Da -922.337.203.685.477,5808 a 922.337.203.685.477,5807 |
Decimale | 14 byte | +/-79 228 162 514 264 337 593 543 950 335 senza punto decimale; +/-7,9228162514264337593543950335 con 28 cifre decimali a destra della virgola decimale |
Data | 8 byte | Dal 1 gennaio 100 al 31 dicembre 9999 |
Oggetto | 4 byte | Qualsiasi riferimento a un oggetto |
Catena (lunghezza variabile) | 10 byte + lunghezza della stringa | 0 a circa 2 miliardi |
Catena (lunghezza fissa) | Lunghezza della catena | 1 a circa 65.400 |
Variante (con numeri) | 16 byte | Qualsiasi valore numerico fino all’intervallo di Double |
Variante (con personaggi) | 22 byte + lunghezza della stringa | Stesso intervallo della stringa a lunghezza variabile |
Definito dall’utente | Vari | L’intervallo di ciascun elemento è uguale all’intervallo del relativo tipo di dati |
Questo è altamente raccomandato per dichiarare il tipo di dati per variabili e costanti .
Quando specifichi il tipo di dati per una variabile o costante, ciò garantisce la validità dei tuoi dati e ti impedisce di inserire un tipo di dati non valido. Se ometti il tipo di dati, VBA applica il tipo di dati Variant alla variabile: questo è il più flessibile e VBA non indovinerà quale dovrebbe essere il tipo di dati.
Suggerimento: il modo migliore per non saltare la specifica dei tipi di dati è utilizzare l’ opzione esplicita nella parte superiore del modulo prima di avviare qualsiasi codice.
Esplicitamente o implicitamente
È possibile dichiarare una variabile in modo esplicito o implicito. Dichiarazione esplicita significa che prima di assegnare un valore a una variabile, la dichiari e ne imposti il valore. Il VANTAGGIO di questo è quando lo definisci e il suo tipo di dati VBA memorizza sempre i dati in quel formato.
Ecco un esempio:
Dim myDate As Date
Pertanto, quando memorizzi il valore in questo VBA, verrà sempre applicato il formato della data. Ma con la dichiarazione implicita, non ti preoccupi di questa dichiarazione esplicita. Invece, imposti il valore della variabile e lo usi nell’istruzione del codice. Nella dichiarazione implicita, VBA memorizza i dati in un tipo di variabile Variant perché non hai specificato il tipo.
In altre parole, se usi semplicemente una variabile nel tuo codice senza dichiararla, è implicita. Di seguito è riportato un esempio di dichiarazione implicita:
myDate = “11/10/1990”
In questo modo assegni semplicemente il valore a una variabile e lo utilizzi nelle istruzioni del codice. Secondo me è sempre, intendo dire sempre, meglio dichiarare una variabile prima di usarla. Questa non è solo una buona pratica, ma rende anche l’esecuzione del codice più veloce e più facile da comprendere.
Variabile statica
Bene, ti ho detto che la variabile è dove puoi modificare il valore, ma questo è qualcosa di diverso. Con una variabile normale al termine di una procedura, il valore memorizzato nella variabile verrebbe cancellato dalla memoria di VBA, ma, se non vuoi perdere questo valore, puoi rendere statica questa variabile.
Per rendere statica una variabile in modo che mantenga il valore, utilizzare semplicemente la parola chiave “Static” invece di utilizzare “Dim”.
Assegna un nome a una variabile
Puoi nominare una variabile (queste regole si applicano anche alla costante e al nome della procedura) come preferisci, ma devi seguire alcune regole:
- Puoi utilizzare alfabeti, numeri e alcuni caratteri di punteggiatura, ma il primo carattere del nome deve essere un alfabeto.
- Spazi o punti non sono caratteri validi da utilizzare nel nome, ma puoi utilizzare un carattere di sottolineatura per rendere leggibile il nome.
- Non è possibile utilizzare caratteri speciali in un nome.
- La lunghezza di un nome può essere di 254 caratteri ma utilizzare un nome non ha senso.
- Esistono molte parole riservate, ovvero parole che non è possibile utilizzare per il nome. Se provi a utilizzare una di queste parole, riceverai un messaggio di errore.
- VBA non fa distinzione tra i casi.
Scopo
A questo punto conosci le procedure e quale procedura è utile in quale situazione, impari anche le variabili e come definire i loro tipi di dati.
La prossima cosa importante è capire l’ambito, il che significa disponibilità. Questo è dove può essere utilizzato. Quando definisci una variabile, l’ambito definisce se puoi utilizzarla al di fuori della procedura host o meno. Esistono tre modi per definire gli ambiti variabili (costanti e uniformi con l’intera procedura).
- Livello procedura: puoi utilizzare una variabile solo nella stessa procedura in cui la dichiari.
- Livello modulo (privato): rende una variabile accessibile da tutte le procedure in un modulo.
- Livello modulo (pubblico): rende una variabile accessibile da tutte le procedure in tutti i moduli.
L’ambito predefinito di una variabile è la procedura (livello di procedura) in cui questa variabile è dichiarata.
Ma lasciami condividere con te qualcosa del mondo reale.
Lavoro in uno spazio di coworking e il posto in cui mi siedo è al primo piano di un edificio di tre piani. Mi siedo quasi ogni giorno allo stesso posto. Pertanto, se dichiari una variabile con ambito a livello di procedura, puoi utilizzarla solo all’interno della stessa procedura. Proprio come mi siedo ogni giorno sullo stesso posto sullo stesso pavimento. Ma ti dico di più: anche se mi siedo al primo piano, posso utilizzare anche qualsiasi posto degli altri piani. E nell’istantanea qui sotto, abbiamo dichiarato la variabile “myName” nella parte superiore del modulo utilizzando la parola chiave Private prima di iniziare qualsiasi procedura e l’ho utilizzata in tutti e tre i codici. Pensa a questo modulo come a un edificio in cui hai diversi piani (Procedure) e poiché hai già dichiarato la variabile all’inizio del modulo, puoi utilizzare qualsiasi procedura in questo modulo. Questo è chiamato ambito a livello di modulo privato. Ora ecco l’ultima cosa: il mio ufficio ha filiali in diverse città del paese e se vado lì, posso andare in quegli uffici e utilizzare qualsiasi posto se voglio. Pertanto, se nella cartella di lavoro sono presenti moduli diversi, è possibile utilizzare una variabile in tutti questi moduli dichiarandola pubblica.