Controllo logico VERO/FALSO in una routine di Excel VBA

Controllo logico If/Then/Else in una macro VBA di Excel
Controllo logico If/Then/Else in una macro VBA di Excel

Il controllo logico in una subroutine VBA di Excel consente di subordinare un’istruzione al verificarsi di una o più condizioni correlate tra di loro. Esattamente come la funzione SE e il costrutto IF presente in ogni linguaggio di programmazione (pur se declinato in modi diversi).

Il Visual Basic di Microsoft non è diverso da tutti gli altri: quindi permette di attribuire (o meno) una serie di operazioni (routines) al risultato TRUE oppure FALSE di una condizione logica.

Riprendo l’esempio utilizzato nell’articolo sulle variabili VBA. Qui ci eravamo lasciati con un punto di domanda… ora proviamo a dare una risposta. Quindi sarà la nostra macro a valutare quella corretta.

L’algoritmo di un controllo logico

Considerando che nel primo esempio avevamo già raccolto in due variabili (txt e n) i dati da controllare, sarà sufficiente valutare due possibili combinazioni.

Così il nostro algoritmo valuta queste due espressioni (disgiunte) composte a loro volta di due risultati logici (congiunti):
1) se la variabile di testo contiene il valore PARI E la variabile numerica è divisibile per due
O
2) se la variabile di testo contiene il valore DISPARI E la variabile numerica NON è divisibile per due.

Queste espressioni si traducono in VBA con il controllo logico IF, THEN, ELSE. Inoltre le condizioni possono essere multiple e unite tra di loro in modo congiunto (And) o disgiunto (Or), come nelle funzioni E/O sul foglio di calcolo.

Ecco l’esempio di istruzione VBA:

Controllo logico VBA con più condizioni in And / Or
Controllo logico VBA con più condizioni in And / Or

Nelle condizioni sul numero sono state applicate le funzioni PARI e DISPARI, così come si utilizzano nelle formule. Si possono agganciare all’oggetto WorksheetFunction tutte le funzioni del foglio di calcolo di excel per cui è prevista una definizione: nel nostro caso le funzioni corrispondenti (in inglese) sono IsEven e IsOdd.

Se una delle due combinazioni è verificata allora (THEN) si può restituire un messaggio positivo, altrimenti (ELSE) uno negativo. Notare anche che il controllo If termina sempre con l’istruzione End If.

Risultato in finestra di messaggio
Risultato in finestra di messaggio

Ai due risultati possiamo accodare tutte quelle modifiche di contorno utili per visualizzare in modo diverso la cella. Ad esempio riempimento verde oppure rosso.
Per fare questo utilizzeremo la proprietà Interior dell’oggetto Range (che identifica le caratteristiche interne di un intervallo o di una sola cella) e la specifica Color. Il colore si può definire in diversi modi, quello più immediato è attraverso la sua composizione di Rosso/Verde/Blu (RGB).

Utilizzo della proprietà Interior (Color) dell’oggetto Range

Adesso puoi sperimentare tutte le combinazioni di condizioni logiche che vuoi e utilizzarle per modificare, in modo automatico, l’aspetto del foglio.

Qui puoi scaricare l’esempio di controllo logico spiegato in questo articolo.

Buon lavoro!

152 views


Autore: Marco Angelucci ©2020

Docente e consulente su applicativi web e di office automation.

Più di 20 anni di esperienza nella realizzazione di siti web e di applicativi per la gestione dei dati (Web-based e VBA).
Specialista in ambito UX (User Experience), SEO (Search Engine Optimization) e nella produzione di contenuti digitali per diversi ambiti commerciali e industriali.



Lascia un commento

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