Como usar a função Switch no VBA?

A função `Switch` no VBA (Visual Basic for Applications) é usada para avaliar uma lista de expressões e retornar o valor correspondente à primeira expressão que for avaliada como verdadeira. É uma alternativa ao uso de múltiplas instruções `If…Then…Else` quando você tem várias condições a serem verificadas.

Aqui está a sintaxe básica da função `Switch`:

Switch(expr1, value1, expr2, value2, ..., exprN, valueN)
  • `expr1, expr2, …, exprN`: São as expressões a serem avaliadas.
  • `value1, value2, …, valueN`: São os valores retornados se a expressão correspondente for avaliada como verdadeira.

A função verifica cada expressão na ordem em que são especificadas e retorna o valor correspondente à primeira expressão verdadeira. Se nenhuma expressão for verdadeira, a função retorna `Null`.

Exemplo de uso:

Vamos supor que você deseja usar a função `Switch` para determinar uma faixa de notas:

Function DeterminarFaixaDeNota(nota As Integer) As String
    DeterminarFaixaDeNota = Switch( _
        nota >= 90, "A", _
        nota >= 80, "B", _
        nota >= 70, "C", _
        nota >= 60, "D", _
        nota < 60, "F" _
    )
End Function

Contexto de uso:

Você chamaria esta função em algum lugar do seu código para determinar a faixa da nota de um aluno, por exemplo:

Sub TestarDeterminarFaixaDeNota()
    Dim nota As Integer
    Dim faixa As String

    nota = 85
    faixa = DeterminarFaixaDeNota(nota)

    MsgBox "A faixa da nota " & nota & " é: " & faixa
End Sub

Neste exemplo, se você passar a nota 85 para a função `DeterminarFaixaDeNota`, a função retornará “B”, pois 85 é maior ou igual a 80, mas menor que 90.

Notas importantes:

  • Tenha cuidado para garantir que todas as expressões sejam avaliadas independentemente, pois a função vai retornar com base na primeira condição verdadeira encontrada.
  • Se todas as condições forem falsas, a função `Switch` retornará `Null`, por isso é importante garantir que haja uma condição de captura (catch-all) no final, se necessário.
  • Não é recomendado quando as condições são demasiadamente complexas ou interdependentes, pois isso pode tornar o código difícil de ler e manter. Nesse caso, considere usar `Select Case` ou `If…Then…Else`.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project