VBA - Estruturas condicionais (if e outros testes)

Fevereiro 2018


Veremos aqui as diferentes estruturas condicionais e a sintaxe utilizada para os testes If, Select Case, IIf.

If Then Else

Sub C_S_If()
Dim A$, B$

    A = "Hello"
    B = "World"
    'test
    If A = B Then Debug.Print A & " = " & B
    'Outra sintaxe
    If A = B Then
        Debug.Print A & " = " & B
    Else
        Debug.Print A & " and " & B & " are differents."
    End If
    'Outra sintaxe
    If A = B Then
        Debug.Print A & " = " & B
    Else: Debug.Print A & " and " & B & " are differents."
    End If
    'Outra Sintaxe
    If A = B Then Debug.Print A & " = " & B Else Debug.Print A & " and " & B & " are differents."
    If A = B Then Debug.Print A & " = " & B Else: Debug.Print A & " and " & B & " are differents."
End Sub

If Then ElseIf Else

Sub C_S_ElseIf()
Dim A$, B$

    A = "Hello"
    B = "World"
    If A = B Then
        Debug.Print A & " = " & B
    ElseIf A > B Then
        Debug.Print A & " > " & B
'você pode colocar mais condições ElseIf...
    Else
        Debug.Print A & " < " & B
    End If
End Sub

IIf

Sub C_S_Iif()
Dim A$, B$

    A = "Hello"
    'Si a = "Hello" então B = "World" sinon B = nada
    B = IIf(A = "Hello", "World", vbNullString)
End Sub

Select Case

Sub C_S_Select_Case()
'Com as variáveis String
Dim A$, C&

    A = "Hello"
    Select Case A
        Case "World"
            Debug.Print "A = World"
        Case "Hello"
            Debug.Print "A = Hello"
        Case Else
            Debug.Print "Erro"
    End Select
'Com números    C = 11
    Select Case C
        Case Is <= 10
            Debug.Print "C <= 10"
        Case Is < 20, Is > 10
            Debug.Print "10 < C < 20"
        Case Is >= 20
            Debug.Print "C >= 20"
    End Select
'Select Case Boolean
    'Com Strings
    Select Case False
        Case A <> "Hello"
            Debug.Print "A = Hello"
        Case A Like "*orl*"
            Debug.Print "Não faça Like *orl*"
        Case Else
            Debug.Print "Erro"
    End Select                  'reenvia : "A = Hello"
    'Outra ordem das condições
    Select Case False
        Case A Like "*orl*"
            Debug.Print "Não faça Like *orl*"
        Case A <> "Hello"
            Debug.Print "A = Hello"
        Case Else
            Debug.Print "Erro"
    End Select                  'reenvia : "A n'est pas Like *orl*"
    'Com números
    Select Case True
        Case C <= 10
            Debug.Print "C <= 10"
        Case C < 20, C > 10
            Debug.Print "10 < C < 20"
        Case C >= 20
            Debug.Print "C >= 20"
    End Select
End Sub

Switch

Sub C_S_Switch()
Dim Nome

    Nome = 2
    Debug.Print Switch(Nome = 1, "Bryan", Nome = 2, "Justin", Nom = 3, "John")
    'reenvia : Justin
End Sub


Foto: © VBA.
Artigo original publicado por pijaku. Tradução feita por ninha25. Última modificação: 13 de fevereiro de 2018 às 07:52 por ninha25.
Este documento, intitulado 'VBA - Estruturas condicionais (if e outros testes)', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (http://br.ccm.net/) ao utilizar este artigo.
VBA - Função reenviar o alfabeto
VBA VB6 - Um menu "flutuante" tipo PopUpMenu.