Oltre a controllare le condizioni If...Then...Else e Select Case, possiamo anche utilizzare i seguenti controlli:
IsNumeric (la funzione che abbiamo utilizzato nella lezione precedente) restituisce TRUE (TRUE) se il valore è un numero e FALSE (FALSE) se - non è un numero:
If IsNumeric(Range("A1")) = True Then 'SE IL VALORE È UN NUMERO...
Il codice seguente produce lo stesso effetto del precedente (non è necessario includere = True perché il costrutto stesso è un controllo delle condizioni):
If IsNumeric(Range("A1")) = True Then 'SE IL VALORE È UN NUMERO...
Se vogliamo verificare se un valore non è un numero, possiamo farlo in due modi:
If IsNumeric(Range("A1")) = False Then 'SE IL VALORE NON È UN NUMERO...
If Not IsNumeric(Range("A1")) Then 'SE IL VALORE NON È UN NUMERO...
Diamo un'occhiata ad alcune altre funzioni simili a IsNumeric:
If IsDate(Range("A1")) Then 'SE IL VALORE È LA DATA...
If IsEmpty(Range("A1")) Then 'SE VUOTO...
If var_object Is Nothing Then 'SE L'OGGETTO NON È DEFINITO...
Per eseguire comandi in base al tipo di una variabile, dovremo utilizzare la funzione VarType.
L'elenco dei tipi di variabili apparirà non appena inseriremo il segno "=":
If VarType(my_variable) = vbInteger Then 'SE my_variable è il tipo di variabile Integer ...
Valori delle costanti:
Costante | Valore |
---|---|
vbEmpty | 0 |
vbNull | 1 |
vbInteger | 2 |
vbLong | 3 |
vbSingle | 4 |
vbDouble | 5 |
vbCurrency | 6 |
vbDate | 7 |
vbString | 8 |
vbObject | 9 |
vbError | 10 |
If VarType(my_variable) = vbInteger Then 'SE my_variable è il tipo di variabile Integer ... 'È identico a: If VarType(my_variable) = 2 Then 'SE my_variable è il tipo di variabile Integer ...
Poco prima abbiamo utilizzato il seguente frammento di codice:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> VERO (TRUE)
In questo caso i due nastri sono uguali, ma se vogliamo verificare se la variabile contiene il valore "12345"; senza considerare gli altri caratteri, allora dovremmo usare il comando Like e l'operatore * (asterisco) prima e dopo il valore che stiamo cercando.
L'operatore * (asterisco) viene decifrato come: qualsiasi carattere o insieme di caratteri:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> VERO (TRUE)
L'operatore # (hash) viene decodificato come: qualsiasi singolo carattere numerico da 0 a 9:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> VERO (TRUE)
Operatore? (punto interrogativo) viene decifrato come: qualsiasi singolo carattere:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> VERO (TRUE)
Possiamo anche utilizzare caratteri specifici o un insieme di caratteri allo stesso modo:
my_variable = "Example 12345" If my_variable Like "[DEF]xample 1234[4-7]" Then '=> VERO (TRUE)
Operatore! (punto esclamativo) aggiunto dopo [ significherà: qualsiasi carattere non racchiuso tra parentesi quadre:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> VERO (TRUE)