Instrucción Select Case

Ejecuta uno de los diferentes grupos de instrucciones, según el valor de una expresión.

Sintaxis

Selección de laexpresión de prueba de casos
[ Caseexpressionlist-n [ statements-n ]]
[ Case Else [ elsestatements ]]
End Select

La sintaxis de la instrucción Select Case consta de estas partes:

Parte Descripción
testexpression Obligatorio. Cualquier expresión numérica o expresión de cadena.
expressionlist-n Necesario si aparece un Case.

Lista delimitada de una o varias de las siguientes formas: expresión, expresiónAexpresión, Esexpresión de comparaciónperator.

La palabra claveTo especifica un intervalo de valores. Si usa la palabra clave To, el valor inferior debe aparecer antes de To.

Use la palabra clave Is con operadores de comparación (excepto Is y Like) para especificar un intervalo de valores. Si no se proporciona, la palabra clave Is se insertará automáticamente.
statements-n Opcional. Una o más instrucciones que se ejecuta si testexpression coincide con cualquier parte de expressionlist-n.
elsestatements Opcional. Una o más instrucciones que se ejecuta si testexpression no coincide con ninguna de las de la cláusula Case.

Comentarios

Si testexpression coincide con cualquier expresión caseexpressionlist , las instrucciones siguientes a esa cláusula Case se ejecutan hasta la siguiente cláusula Case o, para la última cláusula, hasta End Select. Luego, el control pasa a la instrucción que sigue a End Select. Si testexpression coincide con una expresión expressionlist en más de una cláusula Case, se ejecutan solo las instrucciones que siguen a la primera coincidencia.

La cláusula Case Else se usa para indicar elsestatements que se ejecutarán si no se encuentra ninguna coincidencia entre el testexpression y una expressionlist en cualquiera de las demás selecciones Case. Aunque no es necesario, es buena idea tener una instrucción Case Else en el bloque Select Case para controlar valores testexpression imprevistos. Si no hay ninguna lista de expresionescase que coincida con testexpression y no hay ninguna instrucción Case Else, la ejecución continúa en la instrucción que sigue a End Select.

Use varias expresiones o intervalos en cada cláusula Case . Por ejemplo, la línea siguiente es válida:

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber 

Nota:

El operador de comparación Is no es lo mismo que la palabra clave Is que se usa en la instrucción Select Case.

También se pueden especificar intervalos y varias expresiones para cadenas de caracteres. En el ejemplo siguiente, Case coincide con cadenas que son exactamente iguales a everything, cadenas comprendidas entre nuts y soup en orden alfabético y el valor actual de TestItem:

Case "everything", "nuts" To "soup", TestItem 

Las instrucciones Select Case se pueden anidar. Cada instrucción anidada Select Case debe tener una instrucción End Select correspondiente.

Ejemplo

En este ejemplo se usa la instrucción Select Case para evaluar el valor de una variable. La segunda cláusula Case contiene el valor de la variable que se evalúa y, por tanto, se ejecuta solo la instrucción asociada.

Dim Number 
Number = 8    ' Initialize variable. 
Select Case Number    ' Evaluate Number. 
Case 1 To 5    ' Number between 1 and 5, inclusive. 
    Debug.Print "Between 1 and 5" 
' The following is the only Case clause that evaluates to True. 
Case 6, 7, 8    ' Number between 6 and 8. 
    Debug.Print "Between 6 and 8" 
Case 9 To 10    ' Number is 9 or 10. 
    Debug.Print "Greater than 8" 
Case Else    ' Other values. 
    Debug.Print "Not between 1 and 10" 
End Select

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.