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.