Declaração de caso VBA - Exemplos de declaração VBA Select Case

Declaração de caso do Excel VBA

A declaração de caso do VBA é uma das funções lógicas. A declaração de caso testa vários testes lógicos e chega ao resultado de duas maneiras, isto é, se o resultado ou teste lógico for VERDADEIRO, um conjunto de resultados e se o resultado ou teste lógico for FALSO, então o segundo conjunto de resultados.

Os testes lógicos são normalmente conduzidos usando fórmulas IF, seja uma fórmula de planilha ou em codificação VBA; em ambas as plataformas, essa função nos ajuda a realizar muitos tipos de cálculos complicados. Muitos de nós não percebem que temos uma alternativa para a declaração IF no VBA, ou seja, “Declaração de Caso”. Este artigo fornece detalhes completos sobre essa declaração lógica.

Sintaxe

Abaixo está a sintaxe da instrução “Select Case”.

Selecione o caso “Valor a ser testado” Caso é o resultado do “Teste lógico” se o Caso 1 for VERDADEIRO Caso é o resultado do “Teste lógico” se o Caso 2 for VERDADEIRO Caso é o resultado do “Teste lógico” se o Caso 3 for VERDADEIRO Caso outro Se nenhum dos os resultados são TRUE End Select

Isso é quase semelhante à sintaxe da instrução IF, mas em vez de usar ELSEIF, usamos Caso 1, Caso 2, Caso 3 e assim por diante.

Exemplos de declaração de caso VBA

Exemplo 1

Na célula A1, digitei o número 240.

Agora iremos testar este número se ele é maior que 200 ou não usando a instrução SELECT CASE .

Etapa 1: Abra a declaração Select Case agora.

Código:

Sub Select_Case_Example1 () Selecione Case End Sub

Etapa 2: Assim que o “Select Case” for aberto, precisamos fornecer qual é o valor que estamos testando. Nesse caso, estamos testando os valores da célula A1.

Código:

Sub Select_Case_Example1 () Selecione Case Range ("A1"). Value End Sub

Etapa 3: Uma vez que o valor a ser testado é fornecido agora, precisamos aplicar testes lógicos no Excel usando a palavra “ Case Is ”.

Código:

Sub Select_Case_Example1 () Selecione Case Range ("A1"). Value Case Is> 200 End Sub

Passo 4: Agora, na próxima linha, precisamos fornecer o valor “resultado” se o teste lógico aplicado for TRUE. Na caixa de mensagem, precisamos do resultado como “Número é> 200”.

Código:

Sub Select_Case_Example1 () Selecione Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" End Sub

Etapa 5: neste exemplo, precisamos apenas de dois resultados, portanto, não usarei mais instruções “Case Is”. Em seguida, usarei a palavra “Case Else” para fechar a instrução “Select Case” do VBA.

Código:

Sub Select_Case_Example1 () Selecione Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Sub

Etapa 6: Uma vez que todos os casos são fornecidos, precisamos fechar a instrução select case usando a palavra “End Select”.

Código:

Sub Select_Case_Example1 () Selecione Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Select End Sub

Etapa 7: Agora execute o código e veja qual é o resultado que obtemos na caixa de mensagem do VBA.

O resultado obtido é “Número é> 200” porque na célula A1 o valor é 240, que é> 200.

Exemplo # 2

Agora veremos alguns exemplos práticos em tempo real de pontuações de teste. Observe o código VBA abaixo.

Código:

Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("A pontuação deve ser b / w 0 a 100", "Qual é a pontuação que você deseja testar") Selecione Caso ScoreCard Caso É> = 85 MsgBox Caso "Distinção" Is> = 60 MsgBox "Primeira Classe" Case Is> = 50 MsgBox "Second Class" Case Is> = 35 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

Deixe-me explicar o código linha por linha para entender melhor.

Primeiro, declarei a variável como Inteiro e, para essa variável, atribuí InputBox no VBA, onde um usuário deve inserir a pontuação entre 0 e 100.

Ao executar o código, você verá a caixa de entrada como a abaixo e, nesta caixa de entrada, você precisa inserir a pontuação.

Agora, tudo o que inserirmos na caixa de entrada será armazenado na variável “ScoreCard”.

In the next line, I have applied a select case statement to test this score.

First, it will test the ScoreCard>=85 or not. If this is TRUE, then we will get the value in the message box as “Distinction.”

Select Case ScoreCard Case Is>= 85 MsgBox "Distinction"

Similarly, in the following lines, I have applied the second test as ScoreCard>=60. If this is TRUE, then it will show the result as “First.”

Case Is>= 60 MsgBox "First Class"

Like this, I have applied other tests as well, and in the end, I have used the “Case Else” statement. If all the applied logical tests are FALSE, then we will get the result as “Fail.”

Case Else MsgBox "Fail"

Now I have supplied 68 as the score, and we should get the result as “First Class” in the message box.

Example #3 - Using the “To” keyword

In the above example, we have used student scores to arrive at the result. The same test can be conducted by using the “To” word to determine the lower limit and upper limit of the logical test.

Code:

Sub Select_Case_Example3() Dim ScoreCard As Integer ScoreCard = Application.InputBox("Score should be b/w 0 to 100", "What is the score you want to test") Select Case ScoreCard Case 85 To 100 MsgBox "Distinction" Case 60 To 84 MsgBox "First Class" Case 50 To 59 MsgBox "Second Class" Case 35 To 49 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

I have used the same code as above, but the only yellow-colored area I have changed here. Based on the number we type in the input box accordingly, we will get the result.

Things to Remember

  • Select Case é uma alternativa à instrução IF.
  • Select Case está disponível apenas com VBA.
  • Na primeira linha de “Select Case”, só precisamos fornecer o valor que precisa ser testado. Então, na linha “Caso”, precisamos aplicar o teste lógico. Isso é diferente de nossa condição IF.

Artigos interessantes...