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

Você pode usar 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 a seguir 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.