Como usar a instrução select case em vba?

Pontos chave

  • Com SELECT CASE, você pode testar diversas condições, especialmente ao trabalhar em mais de duas.
  • O código que você escreve com SELECT CASE é muito mais estruturado que o código condicional padrão.
  • É mais fácil alterá-lo quando você precisa ajustar um ou mais valores no código.

O que é o caso selecionado do VBA

VBA SELECT CASE é uma instrução para testar múltiplas condições. Nesta instrução, você pode especificar uma condição e, em seguida, especificar algum código para executar se essa condição for verdadeira e, em seguida, especificar uma segunda condição e algum código para executar se essa condição for verdadeira. Dessa forma, você pode especificar diversas condições e diversas instruções.

A sintaxe para selecionar o caso

Abaixo está a sintaxe que você precisa seguir para escrever uma instrução select case.

 Select Case Test Expression Case (Condition to Test) Statement1 [Line of Code to Run if CASE 1 is TRUE] Case (Condition to Test) Statement1 [Line of Code to Run if CASE 2 is TRUE] Case Else Statement [Line of Code to Run if no CASE is TRUE] End Select

Em SELECT CASE, a sintaxe começa com a palavra-chave “Select” e termina com “End Select”. Para entender sua sintaxe, precisamos dividi-la em quatro partes:

sintaxe de seleção de caso
  • Na PRIMEIRA parte, você precisa especificar a “expressão de teste” na qual todas as condições serão testadas.
  • Depois disso, na SEGUNDA parte, você precisa especificar o caso a ser testado (ou seja, a condição a ser testada).
  • Agora na TERCEIRA parte você deve escrever outro caso onde deverá testar se a condição da segunda parte não é VERDADEIRA.
  • No final, na Parte QUATRO , você deve especificar um resultado que deverá ocorrer quando ambos os casos acima não forem VERDADEIROS.

Um exemplo simples para entender uma instrução select case

A sintaxe de SELECT CASE é autoexplicativa e bastante fácil de seguir ao escrever código. Mas vamos dar um exemplo e entendê-lo completamente. Abaixo você tem um código simples para testar o valor da célula A1.

 Sub SelectCaseExample1() Select Case Range("A1").Value Case "Yes" MsgBox "It's a Yes." Case "No" MsgBox "It's a No" Case Else MsgBox "Can't Say" End Select End Sub

Agora vamos entender esse código com cada linha:

exemplo de instrução de caso selecionado
  • PRIMEIRO você tem a palavra-chave SELECT CASE e a célula A1 para usar como uma expressão para testar a condição.
  • SEGUNDO , você tem a palavra-chave CASE e a condição (“YES”) para verificar na célula A1 e o código para exibir uma caixa de mensagem com a mensagem “É sim” se a condição mencionada no case1 for verdadeira.
  • TERCEIRO, você tem novamente a palavra-chave case e a condição (“Não”) para verificar na célula A1 e o código para exibir uma caixa de mensagem com a mensagem “É um não” se a condição mencionada no caso dois for verdadeira.
  • QUARTO , você tem a palavra-chave CASE ELSE e uma linha de código para exibir uma caixa de mensagem com a mensagem “Não posso dizer” se nenhum dos casos for verdadeiro.
  • QUINTO , você tem a palavra-chave END SELECT para finalizar a instrução SELECT CASE.

Relacionado: CAIXA DE MENSAGEM VBA

Pontos importantes

  • Ele pode testar múltiplas condições e executar uma linha de código com base no resultado.
  • Você pode usar operadores de comparação (=, >, <, <>, >=, <=) ao testar uma condição usando a palavra-chave Is.
  • Você pode usar uma vírgula para testar várias condições no mesmo caso.
  • Você também pode usar um intervalo de números ao testar uma condição em um único caso.
  • Quando uma condição é atendida, o VBA para para testar o restante dos casos da instrução.
  • Você também pode adicionar uma seção case else no final para executar uma linha de código quando nenhuma das condições for atendida.
  • Você pode pular usando a instrução CASE END.

Mais exemplos para usar Select case

É hora de usar SELECT CASE de maneiras diferentes, e aqui estão alguns exemplos úteis e essenciais que você pode aprender.

100 exemplos de macros do Excel

1. Selecione o caso com números

Ao escrever código VBA para a instrução SELECT CASE, você pode usar operadores para comparar valores. Agora no código abaixo você tem os operadores >, < e = para testar as condições.

selecione-caso-com-números
 Sub SelectCaseExample1() Select Case Range("A1").Value Case Is >= 45 MsgBox "Pass" Case Is < 45 MsgBox "Fail" End Select End Sub
  • O primeiro caso desta instrução verifica se o valor da célula A1 é maior ou igual a 45 ou não e retorna uma caixa de mensagem com a mensagem “Pass”.
  • E o segundo caso da instrução verifica se o valor da célula A1 é menor que 45 e retorna uma caixa de mensagem com a mensagem “Falha”.

2. Selecione o caso com um intervalo de números

Você também pode usar uma série de números para testar as condições. No código abaixo você tem uma condição com um intervalo de números em cada caso para testar.

 Sub SelectCaseExample2() Select Case Range(“A1”).Value Case 45 To 100 MsgBox “Pass” Case 0 To 44 MsgBox “Fail” Case Else MsgBox “Out of Range” End Select End Sub
  • O primeiro caso da instrução verifica o número na célula A1 usando o intervalo de números de 45 a 100 e retorna “Aprovado” se o valor estiver abaixo desse intervalo.
  • A segunda instrução tem um intervalo de 0 a 44 para testar com o valor na célula A1 e retorna “Fail” se o valor ficar abaixo desse intervalo.
  • A terceira instrução é case else exibe uma caixa de mensagem com a mensagem “Out of Range” se os casos um e dois forem falsos.

3. Usando o operador dois pontos

Ao escrever código para SELECT CASE, você pode usar os operadores de dois pontos para escrever o caso inteiro em uma única linha.

No código abaixo, a linha começa com case, depois a condição a ser testada, depois dois pontos e a instrução a ser executada neste caso é verdadeira.

usando-operador-dois-pontos
 Sub SelectCaseExample3() Select Case Range(“A1”).Value Case 45 To 100: MsgBox “Pass” Case 0 To 44: MsgBox “Fail” Case Else: MsgBox “Out of Range” End Select End Sub

4. Use Selecionar Caso com Múltiplas Condições

Assim como definir um intervalo para um caso, você também pode especificar vários valores para testar a condição. No código abaixo, cada caso possui três números para testar.

selecione-caso-com-valores-múltiplos
 Sub SelectCaseExample() Select Case Range("A1").Value Case 1, 3, 5 MsgBox "Yes" Case 2, 4, 6 MsgBox "No" Case Else MsgBox "Out of range" End Select End Sub
  • O primeiro caso deste código testará o valor da célula se for 1, 3 ou 5 e retornará “Sim” em uma caixa de mensagem.
  • E o segundo caso deste código irá testar o valor da célula A1 se for 2, 4 ou 6.

5. Usando Select Case em uma função personalizada

Você também pode usar SELECT CASE ao escrever código para uma função VBA .

select-case-in-função personalizada
 Function udfGrade(student_marks As Integer) Dim myGrade As String Select Case student_marks Case Is < 40: myGrade = “Bad” Case 41 To 50: myGrade = “Average” Case 51 To 60: myGrade = “Good” Case 61 To 80: myGrade = “Very Good” Case 81 To 100: myGrade = “Excellent” End Select udfGrade = myGrade End Function

Na função acima, existem cinco caixas para verificar a pontuação dos alunos em uma célula. Todos os 5 casos usam um intervalo de números e retornam o valor definido na instrução.

6. Usando Selecionar Caso em condições aninhadas

Você também pode criar uma instrução de condição aninhada. O que estou tentando dizer é que você pode escrever código para testar múltiplas condições com o caso selecionado.

Imagine se você quiser escrever um código que possa testar condições com base nos valores de duas células diferentes.

 Sub SelectCaseStatement() Select Case Range("A2") Case "Boy" Select Case Range("B2") Case "Commerce": MsgBox "Boy (Commerce)" Case "Science": MsgBox "Boy (Science)" End Select Case "Girl" Select Case Range("B2") Case "Commerce": MsgBox "Girl (Commerce)" Case "Science": MsgBox "Girl (Science)" End Select End Select End Sub
selecionar caso de condições aninhadas

No código acima você tem três instruções case select. Existe uma instrução principal que verifica o valor da célula A2 se é “Menino” ou “Menina”.

E então, com base no resultado, mais duas instruções são executadas e verificam o valor da célula B2 se é Comércio ou Ciência.

Declaração CHOOSE CASE vs. IF THEN ELSE

  • Quando você deseja testar diversas condições, é fácil escrever código usando SELECT CASE em vez de IF-THEN.
  • Ainda é fácil editar e fazer alterações em uma instrução SELECT CASE em comparação com IF-THEN.

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *