As Estruturas Select Case e For … Next … Step – VBA

Oi Pessoal!

Dando continuidade ao aprendizado de VBA, vou falar de mais duas estruturas: Select Case e For…Next.

Vamos começar pela Select Case…

Aqui, quando um dos testes lógicos for verdadeiro, os comandos relacionados serão executados e os demais testes nem serão avaliados, seguindo a execução do código para o primeiro comando após o End Select (última linha de código desta estrutura).

Importante: quem leu o post anterior vai concluir que para realização de uma série de testes, esta estrutura é mais eficiente e de leitura mais simples que a estrutura If…Then, que avalia todos os testes da série.

Exemplo de código:

 

Sub Estrutura_Select_Case()

‘ Declaração de variáveis.

Dim x

x = 6

‘Teste lógico.

Select Case x

Case 1

MsgBox “O valor de x é 1!”

Case 2

MsgBox “O valor de x é 2!”

Case 3

MsgBox “O valor de x é 3!”

Case 4

MsgBox “O valor de x é 4!”

Case 5

MsgBox “O valor de x é 5!”

Case Else

MsgBox “x não é um número inteiro menor que 5!”

End Select

End Sub

Falando agora da For…Next

Utilizamos essa estrutura para repetir um trecho de código por um determinado número de vezes.

Geralmente usamos uma variável, que de acordo com a lógica estabelecida no código, servirá de contador, variando de um valor inicial definido até um valor final.

Podemos, por exemplo, pedir ao VBA que percorra as células de uma determinada coluna no Excel para informar a posição (número da linha) ou o valor do último registro desta coluna.

Exemplo de código:

 

Sub For_Next()

Dim x, Soma

x = 10

Soma = 0

‘ Efetua a soma dos dez primeiros números maiores do que zero.

For i = 1 To x

Soma = Soma + i

Next

MsgBox “Soma = ” & Soma

End Sub

 

Quando executarmos o código acima, o Excel exibirá uma Caixa de Mensagem com o resultado Soma = 55

A estrutura For…Next…Step

 

Agora, acrescentaremos o comando Step à estrutura para informar ao VBA quais números dentro do intervalo deverão ser considerados na operação. No exemplo abaixo, com Step 2, o VBA somará 2 ao último valor encontrado da variável i, até que a mesma alcance seu valor máximo.

 

Sub For_Next_Step()

Dim x, Soma

x = 10

Soma = 0

‘ Efetua a soma dos primeiros números ímpares menores do que dez.

For i = 1 To x Step 2

Soma = Soma + i

Next

MsgBox “Soma = ” & Soma

End Sub

Quando executarmos o código acima, o Excel exibirá uma Caixa de Mensagem com o resultado Soma = 25

No próximo post sobre VBA, pretendo falar da estrutura Do…Loop, que usamos para repetir um trecho de código enquanto uma determinada condição for verdadeira, ou até que uma determinada condição torne-se verdadeira!

Abs, Dr. E

P.S. Gostaria de pedir desculpas, mas infelizmente não estou conseguindo responder todos os e-mails com dúvidas que venho recebendo. Por isso, peço que não usem o espaço de comentários do post para enviar dúvidas.

About these ads

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.