Excel VBA Select Case Statement
Select Case é um substituto de escrever várias instruções if no VBA, quando temos muitas condições em um código, podemos ter que usar várias instruções If e que pode ser tedioso, pois se torna mais complexo à medida que mais instruções If são fornecidas, em selecionar declaração de caso, definimos os critérios como diferentes casos e resultados de acordo com eles.
SELECT CASE auxilia na tomada de decisão. Nesse caso, apenas uma expressão é usada para avaliar os diferentes casos possíveis. Múltiplas condições são analisadas facilmente para executar o código desenvolvido. Esta instrução case é usada como uma instrução substituta para ELSE IF para avaliar expressões. É classificado como uma função lógica embutida no Excel. Para usar esta função, o código é inserido por meio do editor visual básico apresentado na guia do desenvolvedor.
Explicação
Vários grupos de instruções são usados no Select Case. A sintaxe a seguir deve ser seguida para usar isso com eficácia. É semelhante à instrução switch apresentada em outras linguagens de programação, como Java, C # e PHP.
Selecione [Caso] Expressão para teste [Caso] Lista de Declarações de Expressão (Caso 1, Caso 2, Caso 3 e assim por diante ...) Caso Else (Instruções Else) Fim Selecione
A explicação dos termos associados ao caso selecionado é fornecida como segue
Uma expressão para teste: é necessária para avaliar os diferentes tipos de dados, como inteiro, string, booleano, objeto e caractere.
Lista de expressões: as expressões são criadas com o caso para encontrar a correspondência exata da entrada inserida. Se houver mais de duas expressões, elas serão separadas pelo operador vírgula. 'Is' é uma palavra-chave utilizada na comparação das duas expressões usando os operadores lógicos no Excel, como =,, =.
- End Select: fecha a definição de caso de seleção do construtor
- Declarações: as declarações são desenvolvidas usando o caso para executar as expressões que são avaliadas para analisar se há alguma declaração correspondente
- Declarações Else: É para testar a declaração else quando a expressão de teste não corresponde a nenhuma declaração case.
Como usar a declaração Select Case do VBA?
O recurso de seleção de caso fornecido pelo VBA não é executado nas planilhas normais. Precisamos usar a opção Visual Basic na guia Desenvolvedor. Funções definidas pelo usuário e codificação criada no modo de desenvolvedor para executar vários pequenos aplicativos no campo de negócios.
É usado em situações em que há instruções if aninhadas no Excel. É a melhor opção para lidar com uma variedade de afirmações de caso. Para usar esta opção de forma eficaz, as seguintes tarefas devem ser realizadas
- Em primeiro lugar, é necessário criar uma macro colocando o controle do botão de comando na planilha do Excel.
- Depois disso, clique com o botão direito do mouse no botão de comando e selecione a opção Exibir código
- Coloque o código entre a função do botão de comando e finalizar o sub
- Depure o código para identificar quaisquer erros de sintaxe.
- Compile o código para encontrar erros de compilação para executar o programa com sucesso
- Altere os valores de entrada para observar resultados diferentes com base nos critérios de correspondência
Exemplo # 1 - Declaração Simples Select Case
Este exemplo é para entender o caso de seleção simples para encontrar o valor correspondente.
Código:
Private Sub Selcaseexmample () Dim A As Integer A = 20 Select Case A Case 10 MsgBox "First Case is match!" Caso 20 MsgBox "O segundo caso é compatível!" Caso 30 MsgBox "O terceiro caso é correspondido em Select Case!" Caso 40 MsgBox "O quarto caso é correspondido em Select Case!" Case Else MsgBox "Nenhum dos casos corresponde!" End Select End Sub
Resultado:
Quatro declarações de caso e outra declaração de caso são usadas para comparar a expressão de teste com diferentes casos. No presente exemplo, o segundo caso é correspondido porque a variável A corresponde a 20.
Exemplo # 2 - palavra-chave 'Para' para testar as notas
Este exemplo explica o uso da palavra-chave 'Para' com o caso selecionado.
Código:
Sub particular Selcasetoexample () Dim studentmarks As Integer studentmarks = InputBox ("Inserir marcas entre 1 a 100?") Selecionar Case studentmarks Caso 1 a 36 MsgBox "Fail!" Caso 37 a 55 MsgBox "C Grade" Caso 56 a 80 MsgBox "B Grade" Caso 81 a 100 MsgBox "A Grade" Case Else MsgBox "Fora do intervalo" End Select End Sub
Resultado:
A palavra-chave 'To' é útil para definir o conjunto de expressões de teste em um intervalo. É útil para encontrar a nota obtida por um aluno, comparando os diferentes casos. Depois de executar o programa, temos que inserir o valor para obter o resultado.
A saída é exibida com uma caixa de mensagem conforme mostrado na captura de tela acima.
Exemplo # 3 - Usando a palavra-chave 'É' com caixa selecionada
Este exemplo demonstra o uso da palavra-chave 'É' com o caso de seleção.
Código:
Sub CheckNumber () Dim NumInput As Integer NumInput = InputBox ("Digite um número") Selecione Case NumInput Case Is = 200 MsgBox "Você digitou um número maior ou igual a 200" End Select End Sub
A palavra-chave 'Is' ajuda a encontrar os valores correspondentes apenas com instruções case. Ele compara a expressão de teste com a entrada fornecida para produzir a saída.
A saída é obtida conforme mostrado na figura se o valor inserido for superior a 200
Exemplo # 4 - Com o botão de comando para alterar os valores
O caso de seleção também é usado com o botão de comando criando uma macro.
Código:
Sub cor () Cor esmaecida As String color = Range ("A1"). Value Select Case color Case "Red", "Green", "Yellow" Range ("B1"). Value = 1 Case "White", "Black Faixa "," Brown "(" B1 "). Valor = 2 Case" Blue "," Sky Blue "Range (" B1 "). Value = 3 Case Else Range (" B1 "). Value = 4 End Select End Sub
Conforme mostrado no programa, a entrada é obtida das células da planilha. O programa é executado após clicar no botão de comando usado nos controles ActiveX. Nesse caso, um separador de vírgula é usado para combinar as expressões de teste.
Quando o valor na Célula A1 muda, isso resulta em uma mudança na célula B1 também executando a macro do Excel por meio do botão de comando. Você pode consultar a imagem fornecida abaixo: -
Exemplo # 5 - Verifique um número ímpar ou par
Este exemplo para ajudar a verificar se um número é par ou ímpar.
Código:
Sub CheckOddEven () CheckValue = InputBox ("Insira o número") Selecione Case (CheckValue Mod 2) = 0 Case True MsgBox "O número é par" Case False MsgBox "O número é ímpar" End Select End Sub
A codificação é desenvolvida conforme mostrado na captura de tela e a saída é exibida como segue quando o número par é inserido.
Exemplo # 6 - Instruções de caso de seleção aninhada
O aninhamento é um recurso útil do caso selecionado e mostra a maneira como isso é feito.
Código:
Sub TestWeekday () Select Case Weekday (Now) Case 1, 7 Select Case Weekday (Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub
Here the select case is defined inside another select case to test a day, weekday, or weekend. Except case 1 and 7 remaining all are weekdays (Note: case 1 is Sunday and case 7 is Saturday)
Things to Remember
- The ‘Is’ keyword using in the statement of [case] and [case else] are not equal.
- ActiveX control should be used in executing program through a command button taking input and displaying output in the excel sheet range of cells.
- It is hard to run the programs in VBA if macros are disabled and always enable Macros to get best results.
- VBA is a case sensitive and input should be entered accurately to get better results.