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.

152 Parte III: Conceitos de Programação

Sub BadLoop()

Dim StartVal As Long

Dim NumToFill As Long

Dim CellCount As Long

StartVal = InputBox(“Insira o valor inicial: “)

NumToFill = InputBox(“Quantas células? “)

ActiveCell = StartVal

CellCount = 1

DoAnother:

ActiveCell.Offset(CellCount, 0) = StartVal +

CellCount

CellCount = CellCount + 1

If CellCount < NumToFill Then GoTo DoAnother _

Else Exit Sub

End Sub

Esta rotina funciona conforme planejado, mas eu não estou particularmente

orgulhoso dela. Então, por que esse é um exemplo de loop ruim?

Conforme mencionei anteriormente neste capítulo, evite usar uma

declaração GoTo, a menos que seja absolutamente necessário. Usar

declarações para executar loop

55

É contrário ao conceito de programação estruturada (veja o

artigo apresentado anteriormente neste capítulo “O que é

programação estruturada? Isso importa?”)

55

Torna o código mais difícil de ler.

55

É mais propenso a erros do que usando procedimentos

estruturados de loop.

VBA tem tantos comandos estruturados de loop, que quase nunca você

precisa se basear em declarações GoTo para tomar suas decisões. De

novo, a exceção está no tratamento de erros.

Agora, você pode passar para uma discussão de estruturas de loop boa.

Loop For-Next

O tipo mais simples de loop é o For-Next. Eis a sintaxe para essa

estrutura:

,

For counter = start To end [Step stepval]

[statements]

[Exit For]

[statements]

Next [counter]

O loop é controlado por uma variável counter (contador), a qual

começa em um valor e acaba em outro. As declarações entre For e Next

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

Saved successfully!

Ooh no, something went wrong!