Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIsabelly Nicolau Alterado mais de 9 anos atrás
1
Pontifícia Universidade Católica de Goiás Departamento de Engenharia Curso de Graduação em Engenharia de Produção ENG 1004 – Linguagem de Programação para Engª de Produção Prof. Ricardo Rezende, D.S. VBA – Estruturas de Controle Fonte: Adaptado de Excel Avançado, Antônio Cinto e Wilson Góes, 2005
2
1. Estruturas de controle O VBA disponibiliza algumas estruturas de controle que podem ser utilizadas para controlar o decurso da execução da rotina Essas estruturas dão ao programador enorme poder para construir rotinas bastante complexas e flexíveis Algumas estruturas a serem estudadas: If Then ElseFor Next While WendDo Loop Select CaseFor Each Next 2
3
2. If Then Else Corresponde à função SE do Excel: =SE( ; ; ) A estrutura IF do VBA tem o mesmo tipo de funcionamento, o que difere é a sintaxe: If Then Else End If 3
4
2. If Then Else – exemplo 1 Escrever a função SituacaoAluno no VBA (nota: a pasta Módulos deve estar visível na Janela Project Explorer; caso contrário, clique em Inserir/Módulo) Public Function SituacaoAluno (nota) If nota >= 5 Then SituacaoAluno = “Aprovado” Else SituacaoAluno = “Reprovado” End If End Function Para testar a função, retorne ao Excel, selecione uma célula, digite =SituacaoAluno(5) e tecle Enter 4
5
2. If Then Else – exemplo 1 5
6
2. If Then Else – exemplo 2 (ElseIf) Vamos agora acrescentar uma instrução que propõe uma condição alternativa; altere a função SituacaoAluno conforme o código a seguir: Public Function SituacaoAluno (nota) If nota >= 5 Then SituacaoAluno = “Aprovado” ElseIf nota >= 3 Then SituacaoAluno = “Recuperação” Else SituacaoAluno = “Reprovado” End If End Function 6
7
2. If Then Else – exemplo 2 (ElseIf) 7
8
3. For Next Permite a execução de uma tarefa durante um determinado nº de vezes; sintaxe: For To [Step ] Next Exemplo 3 Vamos criar uma função para o cálculo de potências; essa função deverá receber como parâmetros a base e o expoente; então deverá calcular e retornar o valor da potência Escreva sua função como no código a seguir 8
9
3. For Next – exemplo 3 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 For Contador = 1 to Expoente Step 1 Potencia = Potencia * Base Next CalcularPotencia = Potencia End Function 9
10
3. For Next – exemplo 3 Entendendo a função: Para o contador variando de 1 até o valor do expoente, a cada passagem o contador é incrementado em 1, e a potência multiplicada pela base A instrução For Next tem como função calcular a potência Para testar a função, retorne ao Excel, selecione uma célula, digite =CalcularPotencia(5;3) e tecle Enter; a planilha deverá estar parecida com a da figura seguinte 10
11
3. For Next – exemplo 3 11
12
4. While Wend Apresenta funcionamento similar a For Next, realizando looping um determinado nº de vezes; sintaxe: While Wend Exemplo 4 Vamos refazer o exercício anterior utilizado While Wend Reescreva sua função como no código a seguir 12
13
4. While Wend – exemplo 4 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 Contador = 1 While Contador <= Expoente Potencia = Potencia * Base Contador = Contador + 1 Wend CalcularPotencia = Potencia End Function 13
14
4. While Wend – exemplo 4 Entendendo a função: Foram criadas 2 variáveis: Contador e Potência As variáveis iniciam com valor 1 O ciclo de repetições tem início e, enquanto contador for expoente, a potência é multiplicada pela base e o contador é incrementado Nota: se o contador não fosse incrementado, o ciclo seria infinito pois o expoente nunca seria maior que o contador A planilha deverá estar parecida com a da figura do slide 11 14
15
5. Do Loop Repete um bloco de instruções enquanto uma condição é verdadeira ou até que se torne verdadeira; sintaxe: Do [{While Until} Condição] [Exit Do] Loop Ou pode-se usar a sintaxe a seguir: Do [Exit Do] Loop [{While Until} Condição] 15
16
5. Do Loop – exemplo 5 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 Contador = 1 Do While Contador <= Expoente Potencia = Potencia * Base Contador = Contador + 1 Loop CalcularPotencia = Potencia End Function 16
17
5. Do Loop – exemplo 6 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 Contador = 1 Do Potencia = Potencia * Base Contador = Contador + 1 Loop While Contador <= Expoente CalcularPotencia = Potencia End Function 17
18
5. Do Loop – exemplo 7 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 Contador = 1 Do Until Contador > Expoente Potencia = Potencia * Base Contador = Contador + 1 Loop CalcularPotencia = Potencia End Function 18
19
5. Do Loop – exemplo 8 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 Contador = 1 Do Potencia = Potencia * Base Contador = Contador + 1 Loop Until Contador > Expoente CalcularPotencia = Potencia End Function 19
20
5. Do Loop – exemplo 9 Public Function CalcularPotencia (Base, Expoente) Dim Contador As Integer Dim Potencia As Integer Potencia = 1 Contador = 1 Do Potencia = Potencia * Base Contador = Contador + 1 If Contador > Expoente Then Exit Do End If Loop CalcularPotencia = Potencia End Function 20
21
6. Select Case Executa um dos diversos grupos de instruções, dependendo do valor de uma expressão; sintaxe: Select Case expressão Case lista de expressão Case Else End Select Exemplo 10 – escrever uma função que, passando a uma determinada idade, ela retorne a faixa etária, conforme o código a seguir 21
22
6. Select Case – exemplo 10 Public Function FaixaEtaria (Idade) Select Case Idade Case 0 To 3 FaixaEtaria = “Bebê” Case 4 To 12 FaixaEtaria = “Criança” Case 13 To 17 FaixaEtaria = “Adolescente” Case 18 To 25 FaixaEtaria = “Jovem” Case 26 To 65 FaixaEtaria = “Adulto” Case Else FaixaEtaria = “Idoso” End Select End Function 22
23
6. Select Case – exemplo 10 23
24
7. For Each Next Repete instruções para cada elemento em um grupo de objetos; sintaxe: For Each elemento In grupo Next [elemento] Exemplo 11 – escrever uma macro que formate as células selecionadas onde, se 1ª linha e 1ª coluna: cor da fonte vermelho e cor de preenchimento cinza c/ negrito; demais células: cor da fonte preto e cor de preenchimento branco s/ negrito; aplicar borda simples em todo o intervalo 24
25
7. For Each Next – exemplo 11 Public Sub FormatarCelulas () Dim celula As Range For Each celula In ActiveWindow.RangeSelection celula.Font.ColorIndex = 1 If (celula.Column = 1) Or (celula.Row = 1) Then celula.Interior.ColorIndex = 15 celula.Font.Bold = True celula.Font.ColorIndex = 3 Else celula.Interior.ColorIndex = 0 celula.Font.Bold = False celula.Font.ColorIndex = 1 End If celula.Borders.ColorIndex = 1 Next End Sub 25
26
7. For Each Next – exemplo 11 Entendendo a função: Verifica-se se a célula está na 1ª linha ou na 1ª coluna e, se estiver, aplica-se cor da fonte vermelho, preenchimento em cinza e negrito; se não, aplica-se cor da fonte preto, preenchimento em branco e sem negrito; então, aplica-se borda simples Para testar FormatarCelulas, retorne ao Excel e selecione um intervalo de células; volte ao Microsoft Visual Basic e pressione a tecla F5; a planilha deve aparecer como a da figura a seguir 26
27
7. For Each Next – exemplo 11 27
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.