Instrução Select Case
Executa um dos diversos grupos de instruções, dependendo do valor de uma expressão.
Sintaxe
SelecionarTestexpressão de casos
[ 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 dooperador de comparação. O palavra-chaveEspecifica 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 a testexpressão corresponder a qualquer expressão case expressionlist, as instruções que se seguem a essa cláusula Case são executadas até à cláusula Case seguinte 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 lista de expressões case corresponder à testexpressão e não existir nenhuma instrução Case Else, a execução continuará na instrução seguinte End Select.
Utilize 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.