Tag Archives: Estrutura

Top 10 Estruturas de Controle no Excel VBA

estrutura-dados
De pronto, adorei a iniciativa e por isso decidi replicar aqui. O site Dummies, aquele que publica a série for Dummies, no português traduzido “para Leigos”, publicou recentemente uma lista das estruturas de controle mais utilizadas no Excel VBA, familiar de todos aqui.

Abaixo segua a lista com exemplos, extraída do post original. Serve como revisão e até um guia de referência:

For – Next

Útil para passar por todos os itens de um Array.

ArraySum = 0
For i = 1 To 10
    ArraySum = ArraySum + MyArray(i)
Next i

For Each – Next

Perfeito para coleções, como um Range de células.

SelectionSum = 0
For Each cell In Selection
    SelectionSum = SelectionSum + cell.Value
Next cell

Do – Loop Until

Para iterar até atingir uma condição. Ótimo para casos de chegar até um limite ainda não conhecido.

Row = 0
Do
    Row = Row + 1
Loop Until Cells(Row, 1).Value = ""
MsgBox "First empty cell is in Row " & Row

Do While – Loop

Semelhando ao anterior, porém, aqui você executa a iteração enquanto uma condição se mantém.

Row = 1
Do While Cells(Row, 1) <> ""
    Row = Row + 1
Loop
MsgBox "First empty cell is in Row " & Row

If – Then

O básico, o testes dos testes! Executar uma ação baseado em uma condição numa simples linha.

If x = 1 Then y = 1

If – Then – End If

Complementando o anterior, quando a ação a ser tomada é mais complexa, é preciso deixá-la um pouco mais completa.

If x = 1 Then
    y = 1
    z = 1
End If

If – Then – Else

E continuando, se o de cima é a parte, eis a contra parte. Se o teste der certo, faça isso. OU, faça aquilo, lembrando sempre do OU, que podem ser vários!

If x = 1 Then y = 1 Else y = 0

If – Then – Else – End If

Do something if a condition is true; otherwise, do something else. Can use multiple statements.

If x = 1 Then
    y = 1
    Z = 1
Else
    y = 0
    Z = 0
End If

Select Case

Quandos as opções são conhecidas (exemplo, dias da semana), torna a leitura mais legível para o programador.

Select Case x
    Case 1
        y = 1
        Z = 1
    Case Is > 1
        y = 2
        Z = 2
    Case Else
        y = 0
        Z = 0
End Select

Goto

Esse dá medo, mas é útil. A instrução Goto te leva a um bloco de código definido. É mais utilizado para tratamento de erros, como no exemplo.

On Error GoTo Oops
'[um montão de código aqui]
Exit Sub
Oops:
MsgBox "Aconteceu um erro!!".

Eis o resumão. Pelo menos para mim foi muito bom!

O post original pode ser visto aqui:

http://www.dummies.com/how-to/content/top-ten-excel-vba-control-structures.html

O autor é John Walkenbach e o conteúdo é do livro Excel VBA Programming For Dummies, 3rd Edition:

Excel VBA Programming For Dummies, 3rd Edition
Excel VBA Programming For Dummies, 3rd Edition

Que também ter versão em português!

http://www.livrariasaraiva.com.br/produto/3419556/programando-o-excel-2007-vba-para-leigos

Bom proveito!