Blog

Postado em em 10 de dezembro de 2022

VBA Select Case – Como Criar Comparações Eficientes no VBA

Hoje eu quero te mostrar a estrutura VBA Select Case para que você possa substituir o IF e Else na hora de fazer várias comparações!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso Canal do YouTube para mais vídeos!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, Impressionadores! Na aula de hoje você vai aprender sobre VBA Select Case!

A ideia aqui é que você aprenda a fazer comparações no VBA utilizando o método Select Case, que é uma alternativa em relação ao If Else.

Curioso sobre ele? Vem com a gente!

O que é Select Case no VBA?

A instrução Select Case é uma das formas de realizar comparações eficientes no VBA. É uma função/método que vai nos permitir escolher opções.

Com ela, você pode inserir uma condição a ser verificada, e preparar cenários de resposta.

Caso uma das condições em questão sejam verdadeiras, as instruções/ações de resposta para essa condição ser verdadeira serão executadas somente, e somente elas.

As demais comparações e respectivas respostas serão ignoradas pela estrutura, por definição.

Ela é interessante no caso de várias condições a serem testadas para um mesmo cenário de resposta, ou para números em intervalos.

Sua sintaxe padrão é algo parecido com o mostrado a seguir:

Select Case expressãodeteste
[ Case listadeexpressões-n [ instruções-n ]]
[ Case Else [ instruções Else ]]
End Select

Como usar o Select Case?

Para exemplificar como usar o Select Case no VBA preparamos um caso prático. A seguir temos uma tabela com DDD e o respectivo local (Estado), que corresponde ao seu DDD.

VBA Select Case
VBA Select Case

A ideia com esse caso prático é que, com o código abaixo, vamos colocar o DDD, e ele vai retornar qual o Estado correspondente. Acompanhe:

Sub selectCase()   

Select Case Range("B7").Value

    Case Range("A2").Value
        Range("B8").Value = Range("B2").Value

    Case Range("A3").Value
        Range("B8").Value = Range("B3").Value

    Case Range("A4").Value
        Range("B8").Value = Range("B4").Value

    Case Range("A5").Value
        Range("B8").Value = Range("B5").Value
    
    Case Else
        Range("B8").Value = "Essa opção não está listada"
End Select
 

End Sub

Comentários a respeito do código:

  • Analisar o valor da célula B7:
    • Caso seja o mesmo valor da célula A2 (igual ao número 11), a célula B8 (“resposta”) vai receber o valor da célula B2 (“São Paulo”)
    • Caso seja o mesmo valor da célula A3 (igual ao número 21), a célula B8 (“resposta”) vai receber o valor da célula B2 (“Rio de Janeiro”)
    • Caso seja o mesmo valor da célula A4 (igual ao número 31), a célula B8 (“resposta”) vai receber o valor da célula B2 (“Minas Gerais”)
    • Caso seja o mesmo valor da célula A5 (igual ao número 41), a célula B8 (“resposta”) vai receber o valor da célula B2 (“Paraná”)
    • Caso contrário (não seja igual a 11, 21, 31 ou 41), a célula B8 (“resposta”) vai receber o texto “Essa opção não está listada”

Seguem exemplos de Select Case no VBA com nosso código funcionando:

VBA Select Case

Select Case é melhor do que If Else?

Resumidamente: em planilhas e códigos simples, não há diferenças. Vai da sua preferência por uma estrutura ou por outra. Em termos de performance, a estrutura If é um ligeiramente mais rápido.

A estrutura de comparação Select Case é bastante útil quando você tem várias condições que deseja verificar, sem a necessidade de usar várias instruções If Then Else aninhadas (uma dentro da outra).

OBS: Caso queira aprender com mais detalhes sobre a estrutura If, recomendamos outro post aqui do blog sobre ela!

Conclusão – VBA Select Case

Nesse post você viu na prática o que são métodos no VBA, com a estrutura Select Case!

Com ela você vai poder escolher opções baseadas em condições, e personalizar respostas!

Viu também uma rápida comparação com uma outra famosa estrutura: a estrutura If Else.

Até mais, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer ter acesso a um Minicurso de Finanças no Excel de forma 100% gratuita? Preencha seu e-mail abaixo!