24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 10: Controlando o Fluxo de Programa e Tomando Decisões

145

Veja que eu uso o caractere de continuação de linha (sublinhado) no

exemplo anterior. Na verdade, a declaração If-Then-Else é uma única

declaração. VBA oferece uma maneira ligeiramente diferente de codificar

montagens If-Then-Else que usam uma declaração End-If (terminar

se). Portanto, o procedimento GreetMe pode ser reescrito como:

Sub GreetMe4()

If Time < 0.5 Then

MsgBox “Bom dia”

Else

MsgBox “Boa tarde”

End If

End Sub

Na verdade, é possível inserir qualquer quantidade de declarações

depois do If, e qualquer quantidade de declarações depois do Else. Eu

prefiro usar essa sintaxe, pois ela é mais fácil de ler e torna as declarações

mais curtas.

E se você precisar expandir a rotina GreetMe para lidar com três condições:

manhã, tarde e noite? Você tem duas opções: usar três declarações

If-Then ou usar uma estrutura aninhada de If-Then-Else. Aninhar significa

colocar uma estrutura If-Then-Else dentro de outra estrutura If-Then-Else.

Na primeira abordagem, é mais simples usar as três declarações:

Sub GreetMe5()

Dim Msg As String

If Time < 0.5 Then Msg = “Manhã”

If Time >= 0.5 And Time < 0.75 Then Msg = “Tarde”

If Time >= 0.75 Then Msg = “Noite”

MsgBox “Boa “ & Msg

End Sub

A variável Msg obtém um texto de valor diferente, dependendo da hora

do dia. A declaração MsgBox final exibe a saudação Good Morning

(bom dia), Good Afternoon (boa tarde) ou Good Evening (boa noite).

A seguinte rotina executa a mesma ação, mas usa a estrutura If-Then-

-End If:

Sub GreetMe6()

Dim Msg As String

If Time < 0.5 Then

Msg = “Manhã”

End If

If Time >= 0.5 And Time < 0.75 Then

Msg = “Tarde”

End If

If Time >= 0.75 Then

Msg = “Noite”

End If

MsgBox “Boa “ & Msg

End Sub

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!