Como usar a instrução Select Case no VBA?

A instrução `Select Case` no VBA (Visual Basic for Applications) é usada para executar diferentes blocos de código com base no valor de uma expressão específica. É uma alternativa ao uso de múltiplas instruções `If…ElseIf…Else`. A sintaxe básica do `Select Case` é a seguinte:

Select Case expressão
    Case condição1
        ' Bloco de código para a condição1
    Case condição2
        ' Bloco de código para a condição2
    Case Else
        ' Bloco de código se nenhuma das condições anteriores for verdadeira
End Select

Aqui está um exemplo mais detalhado:

Sub ExemploSelectCase()
    Dim diaSemana As Integer
    diaSemana = 3  ' Vamos supor que 1 = Domingo, 2 = Segunda-feira, etc.

    Select Case diaSemana
        Case 1
            MsgBox "Hoje é Domingo."
        Case 2
            MsgBox "Hoje é Segunda-feira."
        Case 3
            MsgBox "Hoje é Terça-feira."
        Case 4
            MsgBox "Hoje é Quarta-feira."
        Case 5
            MsgBox "Hoje é Quinta-feira."
        Case 6
            MsgBox "Hoje é Sexta-feira."
        Case 7
            MsgBox "Hoje é Sábado."
        Case Else
            MsgBox "Número do dia da semana inválido."
    End Select
End Sub

Neste exemplo, o VBA verifica o valor da variável `diaSemana`. Dependendo do número, ele exibe uma mensagem correspondente ao dia da semana. Se `diaSemana` não estiver entre 1 e 7, a instrução `Case Else` é usada para mostrar uma mensagem de erro.

Dicas:

  • Faixas de valores: Você pode usar faixas de valores com `To`. Exemplo: `Case 2 To 4`.
  • Múltiplos valores: Vários valores podem ser separados por vírgulas. Exemplo: `Case 1, 3, 5`.
  • Expressões: O `Case` pode usar expressões. Exemplo: `Case Is > 5`.

Essas funcionalidades tornam o `Select Case` uma ferramenta poderosa para lidar com múltiplos caminhos de execução baseados em uma única condição.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project