Come utilizzare l'istruzione select case in vba?

Punti chiave

  • Con SELECT CASE puoi testare più condizioni, soprattutto quando lavori su più di due.
  • Il codice che scrivi con SELECT CASE è molto più strutturato del codice condizionale standard.
  • È più semplice modificarlo quando è necessario modificare uno o più valori nel codice.

Cos’è VBA Select Case

VBA SELECT CASE è un’istruzione per testare più condizioni. In questa istruzione è possibile specificare una condizione, quindi specificare del codice da eseguire se tale condizione è vera, quindi specificare una seconda condizione e del codice da eseguire se tale condizione è vera. In questo modo è possibile specificare più condizioni e più istruzioni.

La sintassi per selezionare il caso

Di seguito è riportata la sintassi che è necessario seguire per scrivere un’istruzione select case.

 Select Case Test Expression Case (Condition to Test) Statement1 [Line of Code to Run if CASE 1 is TRUE] Case (Condition to Test) Statement1 [Line of Code to Run if CASE 2 is TRUE] Case Else Statement [Line of Code to Run if no CASE is TRUE] End Select

In SELECT CASE, la sintassi inizia con la parola chiave “Select” e termina con “End Select”. Per comprenderne la sintassi dobbiamo dividerlo in quattro parti:

sintassi select-case
  • Nella PRIMA parte, è necessario specificare l'”espressione di test” su cui vengono testate tutte le condizioni.
  • Successivamente, nella SECONDA parte, occorre specificare il caso da testare (ovvero la condizione da testare).
  • Ora nella TERZA parte devi scrivere un altro caso in cui devi testare se la condizione nella seconda parte non è VERA.
  • Alla fine, nella Parte QUATTRO , devi specificare un risultato che dovrebbe verificarsi quando entrambi i casi precedenti non sono VERI.

Un semplice esempio per comprendere un’istruzione select case

La sintassi di SELECT CASE è autoesplicativa e abbastanza facile da seguire durante la scrittura del codice. Ma facciamo un esempio e lo comprendiamo appieno. Di seguito hai un semplice codice per testare il valore della cella A1.

 Sub SelectCaseExample1() Select Case Range("A1").Value Case "Yes" MsgBox "It's a Yes." Case "No" MsgBox "It's a No" Case Else MsgBox "Can't Say" End Select End Sub

Ora comprendiamo questo codice con ogni riga:

select-case-istruzione-esempio
  • PRIMA hai la parola chiave SELECT CASE e la cella A1 da utilizzare come espressione per testare la condizione.
  • SECONDO , hai la parola chiave CASE e la condizione (“SI”) da verificare dalla cella A1 e il codice per visualizzare una finestra di messaggio con il messaggio “È un sì” se la condizione menzionata in case1 è vera.
  • TERZO, hai ancora la parola chiave case e la condizione (“No”) da controllare dalla cella A1 e il codice per visualizzare una finestra di messaggio con il messaggio “È un no” se la condizione menzionata nel caso due è vera.
  • QUARTO , hai la parola chiave CASE ELSE e una riga di codice per visualizzare una finestra di messaggio con il messaggio “Non posso dire” se nessuno dei due casi è vero.
  • FIFTH , hai la parola chiave END SELECT per terminare l’istruzione SELECT CASE.

Correlato: CASELLA MESSAGGIO VBA

Punti importanti

  • Può testare più condizioni ed eseguire una riga di codice in base al risultato.
  • È possibile utilizzare gli operatori di confronto (=, >, <, <>, >=, <=) quando si verifica una condizione utilizzando la parola chiave Is.
  • Puoi utilizzare una virgola per testare più condizioni nello stesso caso.
  • Puoi anche utilizzare un intervallo di numeri quando testi una condizione in un singolo caso.
  • Quando una condizione viene soddisfatta, VBA si ferma per testare il resto dei casi dell’istruzione.
  • Puoi anche aggiungere una sezione case else alla fine per eseguire una riga di codice quando nessuna delle condizioni è soddisfatta.
  • Puoi saltare l’utilizzo dell’istruzione CASE END.

Altri esempi da utilizzare Seleziona caso

È giunto il momento di utilizzare SELECT CASE in diversi modi ed ecco alcuni degli esempi utili ed essenziali che puoi imparare.

100 esempi di macro di Excel

1. Seleziona il caso con i numeri

Quando si scrive codice VBA per l’istruzione SELECT CASE, è possibile utilizzare gli operatori per confrontare i valori. Ora nel codice seguente hai gli operatori >, < e = per testare le condizioni.

select-case-with-numbers
 Sub SelectCaseExample1() Select Case Range("A1").Value Case Is >= 45 MsgBox "Pass" Case Is < 45 MsgBox "Fail" End Select End Sub
  • Il primo caso di questa istruzione controlla se il valore della cella A1 è maggiore o uguale a 45 oppure no e restituisce una finestra di messaggio con il messaggio “Passato”.
  • E il secondo caso dell’istruzione controlla se il valore della cella A1 è inferiore a 45 e restituisce una finestra di messaggio con il messaggio “Failed”.

2. Selezionare il caso con un intervallo di numeri

Puoi anche utilizzare una serie di numeri per testare la condizione. Nel codice seguente hai una condizione con un intervallo di numeri in ogni caso da testare.

 Sub SelectCaseExample2() Select Case Range(“A1”).Value Case 45 To 100 MsgBox “Pass” Case 0 To 44 MsgBox “Fail” Case Else MsgBox “Out of Range” End Select End Sub
  • Il primo caso dell’istruzione controlla il numero nella cella A1 utilizzando l’intervallo di numeri compreso tra 45 e 100 e restituisce “Passato” se il valore scende al di sotto di questo intervallo.
  • La seconda istruzione ha un intervallo compreso tra 0 e 44 per verificare il valore nella cella A1 e restituisce “Fail” se il valore scende al di sotto di questo intervallo.
  • La terza istruzione è case else visualizza una finestra di messaggio con il messaggio “Fuori intervallo” se i casi uno e due sono falsi.

3. Utilizzando l’operatore Due punti

Quando si scrive il codice per SELECT CASE, è possibile utilizzare gli operatori due punti per scrivere l’intero caso su un’unica riga.

Nel codice seguente, la riga inizia con il caso, poi la condizione da testare, poi i due punti, quindi l’istruzione da eseguire in questo caso è vera.

utilizzando l'operatore dei due punti
 Sub SelectCaseExample3() Select Case Range(“A1”).Value Case 45 To 100: MsgBox “Pass” Case 0 To 44: MsgBox “Fail” Case Else: MsgBox “Out of Range” End Select End Sub

4. Utilizzare Seleziona caso con più condizioni

Proprio come impostare un intervallo per un caso, puoi anche specificare più valori per testare la condizione. Nel codice seguente, ogni caso ha tre numeri da testare.

selezionare-caso-con-valori-multipli
 Sub SelectCaseExample() Select Case Range("A1").Value Case 1, 3, 5 MsgBox "Yes" Case 2, 4, 6 MsgBox "No" Case Else MsgBox "Out of range" End Select End Sub
  • Il primo caso di questo codice testerà il valore della cella se è 1, 3 o 5 e restituirà “Sì” in una finestra di messaggio.
  • E il secondo caso di questo codice testerà il valore della cella A1 se è 2, 4 o 6.

5. Utilizzo di Seleziona caso in una funzione personalizzata

È inoltre possibile utilizzare SELECT CASE durante la scrittura del codice per una funzione VBA .

seleziona-case-in-funzione-personalizzata
 Function udfGrade(student_marks As Integer) Dim myGrade As String Select Case student_marks Case Is < 40: myGrade = “Bad” Case 41 To 50: myGrade = “Average” Case 51 To 60: myGrade = “Good” Case 61 To 80: myGrade = “Very Good” Case 81 To 100: myGrade = “Excellent” End Select udfGrade = myGrade End Function

Nella funzione sopra ci sono cinque caselle per controllare il punteggio degli studenti in una cella. Tutti e 5 i casi utilizzano un intervallo di numeri e restituiscono il valore definito nell’istruzione.

6. Utilizzo di Seleziona caso da condizioni nidificate

È inoltre possibile creare un’istruzione di condizione nidificata. Quello che sto cercando di dire è che puoi scrivere codice per testare più condizioni con il caso selezionato.

Immagina di voler scrivere un codice in grado di testare le condizioni in base ai valori di due celle diverse.

 Sub SelectCaseStatement() Select Case Range("A2") Case "Boy" Select Case Range("B2") Case "Commerce": MsgBox "Boy (Commerce)" Case "Science": MsgBox "Boy (Science)" End Select Case "Girl" Select Case Range("B2") Case "Commerce": MsgBox "Girl (Commerce)" Case "Science": MsgBox "Girl (Science)" End Select End Select End Sub
selezionare-caso-da-condizioni-nidificate

Nel codice sopra hai tre istruzioni case select. C’è un’istruzione principale che controlla il valore della cella A2 se è “Ragazzo” o “Ragazza”.

Quindi, in base al risultato, vengono eseguite altre due istruzioni e controlla il valore della cella B2 se è Commercio o Scienza.

Istruzione SCEGLI CASO e IF THEN ELSE

  • Quando desideri testare più condizioni, è semplice scrivere codice utilizzando SELECT CASE anziché IF-THEN.
  • Anche è facile modificare e apportare modifiche in un’istruzione SELECT CASE rispetto a IF-THEN.

Aggiungi un commento

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