Compartilhar via


Usar Instruções If...Then...Else

Use a instrução If...Then...Else para executar uma instrução específica ou um bloco de instruções, dependendo do valor de uma condição. As instruções If...Then...Else podem ser aninhadas em todos os níveis necessários.

No entanto, para facilitar a leitura, convém usar uma instrução Select Case em vez de vários níveis de instruções If...Then...Else aninhadas.

Executar instruções se uma condição for True

Para executar apenas uma instrução quando uma condição for True, use a sintaxe de linha única da instrução If...Then...Else. O exemplo seguinte mostra a sintaxe de linha única, omitindo a palavra-chave Else.

Sub FixDate() 
    myDate = #2/13/95# 
    If myDate < Now Then myDate = Now 
End Sub

Para executar mais de uma linha de código, use a sintaxe de várias linhas. Essa sintaxe inclui a instrução End If, conforme mostrado no exemplo a seguir.

Sub AlertUser(value as Long) 
    If value = 0 Then 
        AlertLabel.ForeColor = "Red" 
        AlertLabel.Font.Bold = True 
        AlertLabel.Font.Italic = True 
    End If 
End Sub

Executar determinadas instruções se uma condição for True e, se for False, executar outras instruções

Use uma instrução If...Then...Else para definir dois blocos de instruções executáveis: um bloco será executado se a condição for True e outro será executado se a condição for False.

Sub AlertUser(value as Long) 
    If value = 0 Then 
        AlertLabel.ForeColor = vbRed 
        AlertLabel.Font.Bold = True 
        AlertLabel.Font.Italic = True 
    Else 
        AlertLabel.Forecolor = vbBlack 
        AlertLabel.Font.Bold = False 
        AlertLabel.Font.Italic = False 
    End If 
End Sub

Testar a segunda condição se a primeira condição for False

Você pode adicionar instruções ElseIf a uma instrução If...Then...Else para testar uma segunda condição se a primeira condição for False. Por exemplo, o procedimento de função a seguir calcula um bônus com base na classificação do trabalho. A instrução após a instrução Else será executada se as condições em todas as instruções If e ElseIf forem False.

Function Bonus(performance, salary) 
    If performance = 1 Then 
        Bonus = salary * 0.1 
    ElseIf performance = 2 Then 
        Bonus = salary * 0.09 
    ElseIf performance = 3 Then 
        Bonus = salary * 0.07 
    Else 
        Bonus = 0 
    End If 
End Function

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.