VBA Select Case

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
Você pode baixar este modelo VBA Select Case Excel aqui - VBA Select Case Excel Template

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.