Tipo variabile booleana
Il tipo di dati VBA Boolean viene utilizzato per memorizzare i valori True o False. True può anche essere rappresentato da 1 e False da 0.
Per dichiarare una variabile booleana, usi l'istruzione Dim (abbreviazione di Dimension):
1 | Dim blnA come booleano |
Quindi, per assegnare un valore a una variabile, è sufficiente utilizzare il segno di uguale:
1 | blnA = Vero |
Quando lo inserisci in una procedura, potrebbe assomigliare a questo:
123456789101112 | Sub blnEsempio()'dichiarare la variabile booleanaDim blnA come booleano'esegui il codice per popolare la variabile - di solito il codice è un'istruzione if o caseSe Range("A1") > 0 allorablnA = veroAltroblnA = FalsoFinisci se'mostra la finestra del messaggioMsgBox "Il test per vedere se la cella ha un valore maggiore di 0 è " & blnAFine sottotitolo |
Se esegui il codice sopra, verrà mostrata la seguente finestra di messaggio.
Dichiara variabile booleana a livello di modulo o globale
Nell'esempio precedente, abbiamo dichiarato il booleano variabile all'interno di una procedura. Le variabili dichiarate con una procedura possono essere utilizzate solo all'interno di tale procedura.
Invece, puoi dichiarare variabili booleane a livello di modulo o globale.
Livello modulo
tu dichiari Livello modulo variabili nella parte superiore dei moduli di codice con il fioco dichiarazione.
Queste variabili possono essere utilizzate con qualsiasi procedura in quel modulo di codice.
Livello globale
Dichiari anche tu Livello globale variabili nella parte superiore dei moduli di codice. Tuttavia, invece di usare il fioco affermazione, useresti il Pubblico dichiarazione per indicare che il booleano variabile è disponibile per essere utilizzata in tutto il progetto VBA.
1 | blnA pubblico come booleano |
Se dovessi dichiarare il booleano variabile a livello di modulo e quindi provare a utilizzarlo in un modulo diverso, si otterrebbe un errore.
Tuttavia, se avessi usato la parola chiave Public per dichiarare il booleano variabile, l'errore non si verificherebbe e la procedura verrebbe eseguita perfettamente.
Utilizzo di una variabile booleana
Utilizzi la variabile booleana nel confronto logico. Questi sono spesso usati con le istruzioni If per verificare se una condizione è True o False come nell'esempio sopra, o in una riga di codice per applicare un test logico, magari per vedere se un valore è maggiore di un altro.
12345678 | Sub blnEsempio()'dichiarare la variabile booleanaDim blnA As Boolean'prova per vedere se un numero è maggiore del numero successivoblnA = 45 > 68'mostra la finestra del messaggioMsgBox blnAFine sottotitolo |
Se esegui il codice sopra, otterrai la seguente finestra di messaggio.
perché ovviamente 45 non è maggiore di 68!
Utilizzo di operatori booleani
Poiché le variabili booleane vengono utilizzate nel confronto logico, possiamo utilizzare gli operatori logici AND e OR per verificare se più di una condizione è vera o falsa.
Utilizzo dell'operatore AND
Possiamo usare la funzione AND per vedere se ENTRAMBE le condizioni sono soddisfatte.
12345678 | Sub blnEsempio()'dichiarare la variabile booleanaDim blnA As Boolean'usa l'operatore AND per verificare se entrambe le condizioni sono vereblnA = 10 > 13 e 15 > 12'mostra la finestra del messaggioMsgBox blnAFine sottotitolo |
oppure potremmo eseguire lo stesso test utilizzando un'istruzione If:
123456789101112 | Sub blnEsempio()'dichiarare la variabile booleanaDim blnA As Boolean'usa l'operatore AND per verificare se entrambe le condizioni sono vereSe 10 > 13 E 15 > 12 AllorablnA = VeroAltroblnA = FalsoFinisci se'mostra la finestra del messaggioMsgBox blnAFine sottotitolo |
Entrambi gli esempi sopra torneranno FALSO a causa del fatto che 10 è NON maggiore di 13 - e ENTRAMBI le condizioni devono essere vere perché il booleano sia vero.
Utilizzo dell'operatore OR
Possiamo usare la funzione OR per vedere se UNA DELLE condizioni è soddisfatta.
12345678 | Sub blnEsempio()'dichiarare la variabile booleanaDim blnA As Boolean'usa l'operatore AND per verificare se entrambe le condizioni sono vereblnA = 10 > 13 oppure 15 > 12'mostra la finestra del messaggioMsgBox blnAFine sottotitolo |
oppure potremmo eseguire lo stesso test utilizzando un'istruzione If:
123456789101112 | Sub blnEsempio()'dichiarare la variabile booleanaDim blnA As Boolean'usa l'operatore AND per verificare se entrambe le condizioni sono vereSe 10 > 13 O 15 > 12 AllorablnA = VeroAltroblnA = FalsoFinisci se'mostra la finestra del messaggioMsgBox blnAFine sottotitolo |
Questi esempi ritornerebbero VERO a causa del fatto che 10 NON è maggiore di 13 MA 15 È maggiore di 12 - eSOLO UNO la condizione deve essere True perché il booleano sia True.
L'uso delle istruzioni If ci consente di utilizzare più operatori logici
Utilizzo dell'operatore NOT
Possiamo anche usare l'operatore NOT con la variabile booleana. L'operatore NOT nega il valore della condizione, quindi se una condizione è vera, l'operatore NOT restituirà false.
12345678910111213141516 | Sotto Trova differenze()'dichiarare variabili di intervallo'Dim rng1 come intervalloDim rng2 come intervallo"attiva il foglio uno"Fogli di lavoro("Foglio1").Attiva'popola gli intervalliImposta rng1 = Intervallo ("A3")Imposta rng2 = Intervallo ("B3")'usa l'operatore NOT per vedere se i valori sono uguali o meno.If Not rng1.Value = rng2.Value ThenMsgBox "I valori nelle celle non sono uguali"AltroMsgBox "I valori nelle celle sono uguali"Finisci seFine sottotitolo |
Utilizzo dell'operatore logico Xor
IlXor operatore logico viene utilizzato per confrontare due o più condizioni. Se una delle condizioni è vera, restituirà TRUE. Se ci sono 2 condizioni e NESSUNO è vero o ENTRAMBI sono vere, restituirà FALSE.
1234567891011121314151617 | Sub blnEsempio()'dichiarare gli interiDim intA As IntegerDim intB As Integer'dichiarare la variabile booleanaDim blnResult As Boolean'popola le variabiliintA = 5intB = 10'controlla per vedere se uno è veroSe intA = 5 Xor intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci seMsgBox blnResultFine sottotitolo |
Nell'esempio sopra, poiché UNA delle condizioni è TRUE, la finestra di messaggio tornerà VERO.
1234567891011121314151617 | Sub blnEsempio()'dichiarare gli interiDim intA As IntegerDim intB As Integer'dichiarare la variabile booleanaDim blnResult As Boolean'popola le variabiliintA = 5intB = 5'controlla per vedere se uno è veroSe intA = 5 Xor intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci seMsgBox blnRisultatoFine sottotitolo |
Tuttavia, nell'esempio sopra, poiché ENTRAMBE le condizioni sono vere, la finestra di messaggio tornerà FALSO.
1234567891011121314151617 | Sub blnEsempio()'dichiarare gli interiDim intA As IntegerDim intB As Integer'dichiarare la variabile booleanaDim blnResult As Boolean'popola le variabiliintA = 6intB = 8'controlla per vedere se uno è veroSe intA = 5 Xor intB = 5 AllorablnRisultato = VeroAltroblnResult = FalseFinisci seMsgBox blnRisultatoFine sottotitolo |
e infine, poiché entrambe le condizioni sono FALSE, anche la finestra di messaggio restituirà FALSE.