vba variables option explicit vba
Questo tutorial spiega come dichiarare e utilizzare le variabili VBA. Ulteriori informazioni sulle opzioni esplicite, ambito variabile, variabili statiche e costanti:
In un computer, tutti i valori dei dati vengono archiviati in una memoria o in un computer. Per accedere a questi valori, è necessario specificare un nome associato a quel valore, chiamato Variabile nei linguaggi di programmazione.
In questo tutorial impareremo come dichiarare e definire una variabile insieme ai vari tipi di ambiti di variabile ed esploreremo anche le variabili statiche e costanti in dettaglio.
=> Controlla qui per vedere i tutorial di formazione VBA dalla A alla Z.
Cosa imparerai:
- Variabili VBA
- Conclusione
Variabili VBA
Variabili sono come segnaposto per i valori nella memoria del computer. Le variabili possono contenere diverse varietà di valori e tali valori possono cambiare durante l'esecuzione del codice.
Ogni variabile avrà un nome che viene utilizzato per accedere al valore. VBA ha determinati vincoli rispetto alla selezione del nome.
Di seguito è elencato l'elenco dei vincoli:
- Il nome della variabile non può contenere più di 255 caratteri.
- Un nome di variabile non può iniziare con un numero.
- Non è possibile iniziare con caratteri speciali come!, @, &,., # O non possono contenere spazi.
- Le parole chiave non sono considerate come un nome di variabile.
Il compilatore genererà un errore se violate questi vincoli
Esempio:
Nomi di variabili validi: varName, Result12, First_Number
Nomi variabili non validi: 123abc, #number, Sub, abc.123
Primo numero (lo spazio non è consentito tra le parole)
Dichiarazione di una variabile VBA
Dobbiamo usare il file Nessuna parola chiave per dichiarare una variabile. Ci sono 2 sezioni durante la dichiarazione di una variabile. 1stè il nome della variabile e 2ndè il tipo di valore da memorizzare nella variabile chiamata Tipo di dati.
Sintassi: Dim VariableName As DataType
Esempio:
- Dim MyAge As Integer
- Dim My_Percentage As Double
- Dim Full_Name As String
Qui stai esplicitamente dicendo al compilatore che la mia variabile dovrebbe memorizzare solo questi tipi di dati e VBA si assicurerà di generare un errore di mancata corrispondenza del tipo del compilatore quando un valore definito per la variabile non corrisponde al tipo di dati.
Esempio:
Sub example1() Dim Total_Marks As Integer Total_Marks = “” MsgBox Total_Marks End Sub
Ma se non sei sicuro del tipo di dati della variabile, VBA ti consente di saltare il tipo di dati. Anche la sintassi indicata di seguito è valida.
Dim VariableName
Quando non si dichiara il tipo di dati della variabile, VBA lo tratta come un tipo di dati Variant ed è vincolato ad accettare qualsiasi tipo di numero intero come un numero intero, una stringa, una cartella di lavoro, ecc. Nello stesso programma, il le variabili variant possono accettare valori stringa, valori interi e qualsiasi altro tipo.
Sub VarientVariable() Dim Total_Marks Total_Marks = '' MsgBox Total_Marks Total_Marks = 544.33 MsgBox Total_Marks Total_Marks = 522 MsgBox Total_Marks End Sub
Poiché Total_Marks è una variabile variant, a differenza del codice precedente, il compilatore non genererà alcun errore come mostrato di seguito.
Nota: Ricorda che VBA ti consente di utilizzare una variabile senza dichiararla effettivamente.
Anche il codice di esempio riportato di seguito fornisce un risultato corretto. In questo caso, VBA considera automaticamente la variabile come un tipo di dati Variant. Questa è chiamata dichiarazione implicita.
Sub VariantVariable() Total_Marks = 444 MsgBox Total_Marks End Sub
Vantaggi della dichiarazione di una variabile
- Facile da eseguire il debug: È buona norma dichiarare una variabile prima di utilizzarla. Ci fornisce una prima comprensione degli errori come la mancata corrispondenza del tipo e gli errori di battitura, riducendo così il rischio di deviare dalla logica del programma.
- Migliore leggibilità: Come squadra, ci saranno molte persone che guarderanno il codice e la dichiarazione di una variabile aiuterà tutti con il tipo di valori che la variabile dovrebbe assumere e aiuterà anche gli utenti a inserire valori di input appropriati durante l'esecuzione del programma.
- Spazio di archiviazione: Se non dichiari una variabile, VBA la tratta come un tipo di dati Variant che occupa lo spazio più grande in memoria (da 16 byte a 22 byte) rispetto ad altri tipi di dati. Per esempio, se stai usando una variabile di tipo Byte che richiede solo 1 byte e se non la dichiari, VBA finirà per riservare uno spazio di 16 byte, sprecando così la memoria.
Opzione esplicita
Per garantire che tutte le variabili siano dichiarate esplicitamente, dobbiamo usare l'istruzione Option Explicit prima di usarle. Dovrebbe essere usato all'inizio di qualsiasi procedura in quel modulo.
Vediamo un esempio che non utilizza l'istruzione Option Explicit.
Sub example3() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Esegui il codice (premi F5 o il pulsante Esegui nella barra degli strumenti) e finirai per ottenere una casella msg vuota.
Anche se hai dichiarato la variabile, sei finito in una casella dei risultati vuota a causa dell'errore di battitura nel Msgbox Firt_Name. L'opzione Explicit ci aiuterà a eliminare tali errori.
Ripetiamo lo stesso codice utilizzando Option Explicit. Immettere Option Explicit prima dell'inizio della procedura.
Option Explicit Sub VarientVariable() Dim First_name As String First_name = ' abs' MsgBox Firt_Name End Sub
Ora se esegui il codice (premi F5 o Esegui pulsante nella barra degli strumenti) e finirai per ricevere un errore del compilatore.
Puoi aggiungere VBA Opzione esplicita automaticamente.
Nell'editor VB, Vai su Strumenti -> Opzioni -> Seleziona 'Richiedi dichiarazione di variabili'.
Adesso Opzione esplicita verrà aggiunto automaticamente ogni volta che si inserisce un nuovo modulo o si registra una nuova macro.
Nota: L'opzione Explicit non verrà aggiunta al codice VBA esistente. È necessario aggiungerlo manualmente se necessario.
Assegnazione di un valore alla variabile
I valori possono essere assegnati alle variabili utilizzando uguale al simbolo (=). Se ti riferisci a una cella in Excel, devi utilizzare le funzioni Intervallo.
Fare riferimento al codice sottostante.
Sub varValue() Dim var1 As Integer var1 = 10 Range('C1:C14').Value = var1 MsgBox var1 End Sub
Nell'esempio sopra, var1 è una variabile che memorizza il valore 10 direttamente utilizzando (=) e la funzione Range aiuterà a inserire il valore var1 che è 10 nella cella di Excel da C1 a C14.
Ambito di una variabile
Ogni variabile in un programma avrà un ambito definito. Questo ambito indica al programma le aree in cui la variabile è visibile, ovvero il modulo o la funzione che può o non può utilizzare la variabile.
VBA ha 3 tipi di ambito definiti per la variabile.
- Ambito a livello di procedura
- Ambito privato a livello di modulo
- Ambito pubblico a livello di modulo
Ambito a livello di procedura
Le variabili definite in una procedura, ad esempio in Sub o Function, potranno solo usarle. Questi non sono visibili a nessun'altra procedura.
Esempio:
Option Explicit Sub ProcScope() Dim msg As String vartext = 'Varible is visible only inside this Sub' MsgBox vartext End Sub Sub VarNotVisible() MsgBox vartext End Sub
Quando esegui il codice sopra, per il primo Sub il msgbox restituirà un risultato corretto, ma per il secondo Sub, verrà generato un errore del compilatore. Perché la variabile vertice è visibile solo per 1stsub e non per il 2nd. Poiché abbiamo utilizzato Option Explicit, otterremo un errore del compilatore per non aver definito le variabili nel file 2ndsub.


Ambito a livello di modulo privato
Queste variabili sono disponibili per tutte le procedure nel modulo definito. Per impostazione predefinita, le variabili dichiarate con l'estensione Nessuna sono considerati privati. Ma si consiglia di aggiungere privato per una migliore leggibilità.
Consideriamo lo stesso esempio ma dichiareremo la variabile al di fuori della procedura.
Option Explicit Private vartext As String ‘ Dim vartext As String can also be used Sub PrivateScope() vartext = 'Varible is visible to all procedures' MsgBox vartext, ,”Result from Sub1” End Sub Sub VarIsVisible() MsgBox vartext, ,”Result from Sub2” End Sub
Dopo l'esecuzione, vedrai che entrambe le procedure restituiranno i risultati corretti senza alcun errore. Per una chiara comprensione, abbiamo aggiunto il titolo giusto nella msgbox.
Ambito pubblico a livello di modulo
Questi tipi di variabili sono visibili a tutte le procedure e in tutti i moduli di un progetto. Inserisci 2 moduli. (Fare clic con il tasto destro su un foglio e inserire -> moduli).
Inserisci il codice sottostante in un modulo.
Option Explicit Public vartext As String Sub PrivateScope() vartext = 'Varible is visible to all modules' MsgBoxvartext, , 'Result from Sub1' End Sub
Inserisci il codice sottostante nel 2 ° modulo.
Option Explicit Sub VarIsVisible() MsgBoxvartext, , 'Result from Sub2' End Sub
I risultati sono mostrati di seguito
Consideriamo un esempio pratico e comprendiamo meglio tutto l'ambito.
In allegato è il file di riferimento per il codice sopra.
Variabile statica
Di solito, il valore della variabile viene conservato solo dalla chiamata alla procedura alla fine. Non conserva il valore una volta terminata l'esecuzione della procedura.
Per esempio , nel codice sopra, il valore di firstNo e secondNo viene rimosso non appena la procedura termina, la prossima volta se si esegue il codice, firstNo e secondNo ottengono lo stesso valore definito nel codice.
Ma le variabili statiche sono quelle che manterranno il valore della variabile anche dopo l'esecuzione. Una variabile statica è consentita solo all'interno di un sub o di una funzione.
Considera il codice seguente con una variabile non statica.
Option Explicit Sub staticVariable() Dim count As Integer count = count + 1 Debug.Print count End Sub
Ogni volta che premi F5, otterrai solo 1 come risultato.
Ora dichiariamo la variabile come statica.
Option Explicit Sub staticVariable() Static count As Integer count = count + 1 Debug.Print count End Sub
Ogni volta che esegui il codice (F5) Il risultato avrà un valore aumentato per count come 1,2,3 ecc. Poiché la variabile Static ha mantenuto il suo valore.
Nota: La variabile statica manterrà il valore finché non si preme il pulsante Ripristina sulla barra degli strumenti o si chiude la cartella di lavoro.
Variabile costante
Come indica il nome, il valore di queste variabili non può essere modificato durante l'esecuzione del programma. Una volta dichiarata una costante, non è possibile modificarla o assegnargli un nuovo valore.
La dichiarazione di una costante può essere fatta all'interno di una procedura oa livello di modulo (soprattutto procedure).
Option Explicit Sub constantVariable() Const SpeedLimitOfcar As String = '90kmph' Dim myCarSpeed As String myCarSpeed = '70kmph' If myCarSpeed > SpeedLimitOfcar Then MsgBox 'overspeed: Reduce the speed' Else MsgBox 'Within the limit: Always drive below : ' & SpeedLimitOfcar End If End Sub
Se si tenta di modificare il valore della costante, verrà generato un errore di compilazione.
Option Explicit Sub ChangeConstantVariable() Const SpeedLimitOfcar As Integer = 90 SpeedLimitOfcar = SpeedLimitOfcar + 10 MsgBox SpeedLimitOfcar End Sub
Domande frequenti
Q # 1) Come impostare una variabile pubblica in VBA?
Risposta: Le variabili pubbliche vengono dichiarate prima dell'inizio di una procedura. La parola chiave public deve essere utilizzata durante la dichiarazione di una variabile.
Public Total_Marks As Integer
D # 2) Che tipo di variabili non possono essere dichiarate al di fuori della procedura?
Risposta: Le variabili statiche non possono essere dichiarate al di fuori della procedura in VBA e verrà visualizzato un errore di compilazione.
Q # 3) Come dichiarare una variabile in VBA?
Risposta: La parola chiave Dim viene utilizzata per dichiarare una variabile. Dim sta per Dimension.
Dim nome variabile come tipo di dati
Q # 4) Come assegnare un valore variabile a una cella in VBA?
Risposta: È possibile utilizzare la funzione Range.
var1 = 10
Intervallo ('C1: C14'). Valore = var1
Q # 5) Cosa sono le variabili in VBA?
Risposta: Le variabili sono come segnaposto per i valori nella memoria del computer. Le variabili possono contenere diverse varietà di valori e tali valori possono cambiare durante l'esecuzione del codice. Ogni variabile dovrebbe avere un nome, utilizzando il nome della variabile, il computer recupererà il valore assegnato per quella variabile.
Q # 6) Devi dichiarare una variabile in VBA?
Risposta: La dichiarazione è facoltativa in VBA. Se non dichiari una variabile e la utilizzi direttamente nella procedura, viene chiamata dichiarazione implicita. Per evitare errori nel codice e per una migliore leggibilità, si consiglia di dichiarare esplicitamente una variabile.
D # 7) Come si dichiarano più variabili in VBA?
Risposta: È possibile dichiarare più variabili in una dichiarazione di dichiarazione. Devi solo specificare il nome della variabile separato da virgole in una clausola As.
domande di intervista sul dominio assicurativo degli analisti aziendali
Dim FirstNo, SecondNo As Integer
È inoltre possibile specificare diverse variabili in una dichiarazione di dichiarazione. Ogni variabile prenderà il tipo di dati specificato nella clausola As dopo la sua parte del nome della variabile.
Dim a, b As Single, c, d As Double, e As Integer, f As String
D # 8) Quando non ci sarebbe differenza tra dim e privato in VBA?
Risposta: Se si dichiara un ambito privato a livello di modulo, non c'è differenza tra dichiarare una variabile come dim o private. Per impostazione predefinita, le variabili dichiarate con l'estensione Nessuna sono considerati privati. Ma si consiglia di aggiungere privato per una migliore leggibilità.
D # 9) Che cos'è una variabile a livello di modulo?
Risposta: Le variabili a livello di modulo possono essere private o pubbliche. Le variabili private sono disponibili per tutte le procedure in quel modulo e non sono visibili a nessun altro modulo. Le variabili pubbliche sono visibili a tutte le procedure in tutti i moduli di un progetto.
Conclusione
Una variabile è fondamentale in qualsiasi linguaggio di programmazione. In questo tutorial abbiamo visto cosa sono le variabili, come dichiararle e usarle nel programma. Abbiamo anche esplorato il metodo Option Explicit, che forza l'implementazione della dichiarazione esplicita.
Sono stati discussi diversi tipi di ambito della variabile che aiutano gli utenti a determinare quali parti del codice la variabile può essere utilizzata. Abbiamo appreso l'uso delle variabili statiche che aiutano a mantenere il valore della variabile e delle variabili costanti che aiutano a mantenere invariato il valore della variabile.
=> Visita qui per imparare VBA da zero
Lettura consigliata
- Esercitazione su VBA di Excel - Introduzione a VBA in Excel
- Metodi di array e array VBA di Excel con esempi
- Tipi di dati VBA: tipi di dati numerici e non numerici in VBA
- Variabili Python
- Variabili in C ++
- Variabili Java e loro tipi con esempi
- Tipi di dati e variabili C # con esempi
- Variabili VBScript: come dichiarare e utilizzare le variabili - VBScript Dim