24.08.2020 Views

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

149

Sub ShowDiscount3()

Dim Quantity As Integer

Dim Discount As Double

Quantity = InputBox(“Digite a quantidade: “)

Select Case Quantity

Case 0 To 24

Discount = 0.1

Case 25 To 49

Discount = 0.15

Case 50 To 74

Discount = 0.2

Case Is >= 75

Discount = 0.25

End Select

MsgBox “Desconto: “ & Discount

End Sub

Neste exemplo, a variável Quantity (quantidade) está sob avaliação. A rotina

está verificando os quatro casos diferentes (0-24, 25-49, 50-74 e 75 ou maior).

Qualquer quantidade de declarações pode seguir cada declaração Case,

e todas elas são executadas se a condição for verdadeira. Se você usar

apenas uma declaração, como neste exemplo, pode colocar a declaração

na mesma linha que a palavra chave Case, precedida por dois

pontos — um caractere separador de declaração de VBA. Na minha

opinião, isso torna o código mais compacto e um pouco mais claro. Eis

como se parece a rotina, usando este formato:

Sub ShowDiscount4()

Dim Quantity As Integer

Dim Discount As Double

Quantity = InputBox(“Digite a quantidade: “)

Select Case Quantity

Case 0 To 24: Discount = 0.1

Case 25 To 49: Discount = 0.15

Case 50 To 74: Discount = 0.2

Case Is >= 75: Discount = 0.25

End Select

MsgBox “Desconto: “ & Discount

End Sub

Quando o VBA executa uma estrutura Select Case, a estrutura é finalizada

assim que o VBA encontra um caso verdadeiro e executa as declarações

para aquele caso.

Um exemplo de Select Case aninhada

Conforme demonstrado no exemplo a seguir, é possível aninhar estruturas

Select Case. Essa rotina examina a célula ativa e exibe uma mensagem

descrevendo o conteúdo da célula. Observe que o procedimento tem três

estruturas Select Case e cada uma tem sua própria declaração End Select.

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

Saved successfully!

Ooh no, something went wrong!