Instrução Select Case

Executa um dos diversos grupos de instruções, dependendo do valor de uma expressão.

Sintaxe

SelecionarTestexpression de caso
[ Caseexpressionlist-n [ statements-n ]]
[ Case Else [ instruçõeselse ]]
End Select

A sintaxe da instrução Select Case tem estas partes:

Parte Descrição
expressãodeteste Obrigatório. Qualquer expressão numérica ou expressão de cadeia de caracteres.
listadeexpressões-n Obrigatório se a cláusula Case for exibida.

Lista delimitada de um ou mais dos seguintes formulários: expressão, expressãoParaexpressão, éexpressão comparativa.

A palavra-chavePara especifica um intervalo de valores. Se você usar palavra-chave To, o valor menor deverá ser exibido antes de To.

Use a palavra-chave Is com operadores de comparação (exceto Is e Like) para especificar um intervalo de valores. Se não for fornecida, a palavra-chave Is será automaticamente inserida.
instruções-n Opcional. Uma ou mais instruções executadas se expressãodeteste corresponder a qualquer parte de listadeexpressões-n.
instruçõeselse Opcional. Uma ou mais instruções executadas se expressãodeteste não corresponder a uma cláusula Case.

Comentários

Se testexpression corresponder a qualquer expressão expressionlistcase, as instruções a seguir que a cláusula Case serão executadas até a próxima cláusula Case ou, para a última cláusula, até End Select. Em seguida, o controle passará para a instrução após End Select. Se expressãodeteste corresponder a uma expressão listadeexpressões em mais de uma cláusula Case, apenas as instruções após a primeira correspondência serão executadas.

A cláusula Case Else é usada para indicar que as instruçõeselse serão executadas se nenhuma correspondência for encontrada entre expressãodeteste e listadeexpressões em qualquer das outras seleções Case. Embora não seja obrigatório, é útil ter uma instrução Case Else em seu bloco Select Case para manipular valores imprevistos de expressãodeteste. Se nenhuma expressionlistcase corresponder à testexpression e não houver nenhuma instrução Case Else, a execução continuará na instrução após End Select.

Use várias expressões ou intervalos em cada cláusula Case . Por exemplo, a linha a seguir é válida:

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

Observação

O operador de comparação Is não é o mesmo que a palavra-chave Is usada na instrução Select Case.

Você também pode especificar várias expressões para cadeias de caracteres. No exemplo a seguir, Case corresponde a cadeias de caracteres que são exatamente iguais a everything, cadeias de caracteres que estão entre nuts e soup em ordem alfabética e o valor atual de TestItem:

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

As instruções Select Case podem ser aninhadas. Cada instrução Select Case aninhada deve ter uma instrução End Select correspondente.

Exemplo

Este exemplo usa a instrução Select Case para avaliar o valor de uma variável. A segunda cláusula Case contém o valor das variáveis que estão sendo avaliadas, portanto, apenas a instrução associada a ela é executada.

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

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.