Bertolo Por que Laços no VBA?

Documentos relacionados
1) Mostrando uma mensagem. 10 exemplos de macros essenciais no Excel. Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série

Programação de Computadores usando VBA

Microsoft Excel Macro V. Índice 16-) Formulários ) Gerando código para o Formulário... 49

Grupo I. 1 - Range("cell")

Este Exame é individual, sem consulta e com a duração de 90 minutos. Responda às questões no próprio teste, no espaço próprio.

INFORMÁTICA DE GESTÃO

Exercícios Data Modeling

Estruturas de Decisão. APROG (Civil) Aula 6

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Campo de coluna: é um campo retirado da lista de dados e atribuído a uma orientação de coluna na tabela dinâmica.

Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários.

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Estruturas de Controlo Repetitivo. APROG (Civil) Aula 8

Excel 2016 com VBA. Aula 5. Prof. Guilherme Nonino Rosa

Informática II Cap. 4-2

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

MATERIAL EXTRA DE EXCEL ASSUNTO: FÓRMULAS

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Introdução à Computação

Estruturas de Repetição. João Medeiros FATERN

Escola Secundária Ferreira Dias Agualva - Sintra CURSOS PROFISSIONAIS. Atividade 23

Estruturas de Repetição Embutidas. APROG (Civil) Aula 11

O que é e como funciona o VBA no excel?

Exercícios de VBA. Paulo Melo Joana Dias Óscar Lourenço 17 de Maio de 2006

BARRA DE PROGRESSO EM VBA

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

DESENVOLVIMENTO DE SOFTWARE

Aula 01 Microsoft Excel 2016

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO

Páginas seleccionadas

Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções

Controle de Fluxo Comandos de repetição: while e do-while

Inf. II Revisão s/ Matrizes

Variáveis indexadas Vectores e Matrizes. APROG (Civil) Aula 12

Apostila 1 - Excel Recursos das planilhas eletrônicas para elaboração de conteúdos digitais para o ensino da matemática no ensino médio

Introdução à Computação Engenharia Civil

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

10 Comandos de repetição

Tabela Dinâmica MS-Excel

Tutorial 1 - Básico do VBA do Excel

Estruturas de Controle

Laços de repetição for, while, do-while

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

Estruturas de Controle. Estrutura de Seleção. Estrutura de Seleção

Excel - VBA. Macrocomandos (Macros) O que é uma macro? São programas que executam

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Python - Comandos de Repetição

ASSUNTO: FÓRMULAS e FUNÇÕES

Excel 2016 com VBA. Aula 4. Prof. Guilherme Nonino Rosa

Lista 2 TP060. Exercícios Vetores

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Objetivo: Capacitar o aluno em Geografia na utilização dessa planilha eletrônica.

Excel. Aula Prática n o 6 VBA. 1. Inicie o Microsoft Excel e abra o ficheiro "Excel_6" que se encontra no directório APROG.

Introdução a programação Comandos de repetição

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Atalhos de teclado do Excel 2010

Excel 2010 Avançado Plano de Aula - 24 Aulas (Aulas de 1 Hora).

A formatação condicional, usando cores no Excel é, sem dúvidas, um recurso que facilita muito a interpretação de planilhas.

Python 3.x Estrutura de Repetição while

Fundamentos Programação

Introdução à Informática Engenharia Agrícola

EXCEL e VBA. Visual Basic for Applications. Tutoriais de VBA

Excel 2016 com VBA. Aula 2. Prof. Guilherme Nonino Rosa

Modelagem em Engenharia C & A Aula 1- Introdução e informações

Interface. Movimentação na planilha

LibreOffice Calc: aula 1

Informática Básica. Aula 13 Macros e introdução a programação

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Objetivos Inserir funções lógicas. Trabalhar com formatação condicional. Aplicar autofiltro nos dados de uma planilha.

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Algoritmos e Programação I

Atalho de teclado CTRL + P

Variáveis Tipos de Dados

Curso/Disciplina: Informática para Concursos Aula: Excel - 20 Professor(a): Marcelo Nascimento Monitor(a): Sarah Padilha Gonçalves. Aula nº.

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Linguagem C (repetição)

Informática II Cap. 4-4

SOMASES(intervalo_soma, intervalo_critérios1, critérios1, [intervalo_critérios2, critérios2], )

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DEPARTAMENTO DE FÍSICA, ESTATÍSTICA E MATEMÁTICA

Visual Basic. V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

CÓDIGO FONTE CALCULADOR DE 04 OPERAÇÕES

Capítulo I Preliminares: Visual Basic na planilha eletrônica Excel.

Variáveis Escalar e de Array

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Capítulo 2 - Primeiros Cálculos

(Nível Intermediário)

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Comandos em C (cont.)

V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador. 2) Elementos de uma estrutura de repetição;

5 Comando de Seleção Simples e Composta

220 ATALHOS DE TECLADO DO EXCEL

Excel 2016 Avançado Plano de Aula - 24 Aulas (Aulas de 1 Hora)

Transcrição:

Por que os Laços? O propósito de um laço é conseguir que o Excel repita um fragmento de código um certo número de vezes. Quantas vezes o código sera repetido pode ser especificada como um número fixo (p.ex. faça isto 10 vezes), ou como uma variável (p.ex.faça isto tantas vezes enquanto existirem linhas de dados). Os laços podem ser construídos de muitas maneiras diferentes para se adaptar às diferentes circuntâncias. Freqüentemente o mesmo resultado pode ser obtido de diferentes maneiras para se adaptar às suas preferências pessoais. Estes exercícios demonstram uma seleção de maneiras diferentes de se usar laços. Existem duas species básicas de laços, ambas estão demonstradas aqui: os laços Loop e For Next. O código a ser repetido é colocado entre as palavras chaves. Abra a pasta Lacos no VBA.xls e observe as quatro planilhas. Cada uma contém duas colunas de números (colunas A e B). A exigência é calcular uma media para os numerous números em cada linha usando uma macro VBA. Agora abra o Visual Basic Editor (Alt+F11) e dê uma olhada no código no Módulo1. Você verá várias macros diferentes. Nos exercícios seguintes, rode primeiro a macro e daí então leia o código e compreenda como ele fez isto e aquilo. Você pode rodar as macros ou do Visual Basic Editor colocando o seu cursor na macro e pressionando a tecla F5 key, ou do Excel abrindo a caixa de diálogo de Macros (ALT+F8) escolhendo a macro a ser rodada e clicando em Executar. É melhor rodar estas macros do Excel assim você pode vê-las funcionando. Exercício 1: Loop Until O objetivo desta macro é rodar a coluna C enquanto for necessário colocando um cálculo em cada célula enquanto for necessário. Na Plan1 selecione célula C2 e rode a macro Laco1. Sub Laco1() ' Este laço roda até não existir nada na próxima coluna Esta macro coloca uma fórmula na active cell, e move-se para próxima célula abaixo. Ela usa Loop Until para dizer ao Excel ficar repetindo o código até que uma célula na coluna adjacente 1

(coluna D) esteja vazia. Em outras palavras, ela ficará repetindo enquanto existir algo na coluna D. Delete os dados das células C2:C20 e fique pronto para o próximo exercício Exercício 2: While Loop O objetivo desta macro é rodar a coluna C enquanto for necessário colocando um cálculo em cada célula enquanto for necessário. Na Plan1 selecione célula C2 e rode a macro Laco2 Aqui está o código Sub Laco2() While IsEmpty(ActiveCell.Offset(0, 1)) = False Loop Esta macro faz o mesmo trabalho que aquela última usando os mesmos parâmetros mas simplesmente expressando-os de uma maneira diferente. Em vez de repetir o código Até que alguma coisa ocorra, ela faz algo Enquanto algo for o caso. Ela usa o While para dizer ao Excel ficar repetindo o código enquanto existir algo na coluna adjacente em oposição ao até que não existir nada lá. A função IsEmpty = False significa "Não Está Vazia". Delete os dados das células C2:C20 e fique pronto para o próximo exercício Exercício 3: While Not Loop O objetivo desta macro é rodar a coluna C enquanto for necessário colocando o cálculo em cada célula enquanto for necessário. Na Plan1 selecione célula C2 e rode a macro Laco3. Sub Laco3() While Not IsEmpty(ActiveCell.Offset(0, 1)) 2

Loop Esta macro toma exatamente a mesma decisão que aquela última mas just expresses it numa maneira diferente. IsEmpty = False significa o mesmo que Not IsEmpty. Algumas vezes você não pode dizer o que você quer dizer de uma única maneira assim também o VBA oferece freqüentemente uma sintaxe alternativa. Delete os dados das células C2:C20 e fique pronto para o próximo exercício Exercício 4: Incluindo uma declaração IF O objetivo desta macro é como antes, mas sem trocar qualquer dado que possa já existir. Mova-se para a Plan2, selecione célula C2 e rode a macro Laco4. Sub Laco4() ' Ela não calcula a media se existir algo na célula If IsEmpty(ActiveCell) Then End If As macros anteriores não levam em conta qualquer conteúdo possível que poderia já existir na células na qual ela está efetuando os cálculos. Esta macro usa uma declaração IF que diz ao Excel para realizar o cálculo somente se a célula estiver vazia. Isto evita qualquer dado existente de ser sobrescrito. A linha dizendo ao Excel para se mover para a próxima célula está do lado de fora da declaração IF porque ela tem de fazer isto de qualquer maneira. Exercício 5: Evitando Erros Esta macro emprega a declaração IF num estágio mais avançado, e não tenta calcular uma media de células que estão vazias. 3

Primeiroobserve o problema. Mova-se para a Plan3, selecione célula C2 e rode a macro Laco4. Note que devido a alguns dos pares de células nas colunas A e B estarem vazias, a função =AVERAGE lança um erro #DIV/0 (a função Average adiciona os números nas células daí então divide pelo número de números se não existir qualquer número ela tenta dividir por zero e você não pode fazer isto!). Delete os conteúdos das células C2:C6 e C12:C20. Selecione a célula C2 e rode a macro Laco5. Sub Loop5() ' Ela não calcula a media se existir algo na célula ' nem se não existirem dados para tirar a media (para evitar erros #DIV/0). If IsEmpty(ActiveCell) Then If IsEmpty(ActiveCell.Offset(0, -1)) And IsEmpty(ActiveCell.Offset(0, -2)) Then Else End If End If ActiveCell.Value = "" Note que desta vez não existe mensagem de erro devido ao Excel não ter tentado calcular as medias dos números que nãoexistem. Nesta macro existe uma segunda declaração IF dentro daquela uma que diz ao Excel fazer algo somente se a célula estiver vazia. Esta segunda declaração IF oferece ao excel uma escolha. Em vez de um simples If existe um If e um Else. Aqui está como o Excel lê suas instruções 4

"Se a célula já tiver alguma coisa nela, vá para a próxima célula. Mas, se a célula estiver vazia, observe as células correspondentes nas colunas A e B e se elas estiverem ambas vazias, não escreva nada (""). Caso contrário, escreva a fórmula na célula. Daí então mova-se para a próxima célula." Exercício 6: For Next Loop Se você souber, ou conseguir que o VBE descubra, quantas vezes repetir um bloco de código você pode usar um laço For Next. Mova-se para a Plan4, selecione a célula C2 e rode a macro Laco6. Sub Loop6() ' Este laço se repete para um número fixo de vezes determinado pelo número de linhas ' no intervalo Dim i AsInteger For i = 1 To Selection.CurrentRegion.Rows.Count - 1 Next i Esta macro não faz uso de uma coluna de células adjacentes como aquel anterior fez para saber quando parar o laço. Em vez disto ela conta o número de linhas no intervalo atual de dados e usa o método For Next para dizer ao Excel para laçar aquele número de vezes (menos um, porque quando o VBA conta ele parte do zero). Exercício 7: Obtendo a Referência De Algum Outro Lugar Selecione a célula G2 e rode a macro Laco7. Sub Laco7() ' Este laço se repete para um número fixo de vezes obtendo sua referência de outro lugar Dim i As Integer Dim introwcount As Integer 5

introwcount = Range("A1").CurrentRegion.Rows.Count - 1 For i = 1 To introwcount ActiveCell.FormulaR1C1 = "=Average(RC[-5],RC[-6])" Next i Você pode conseguir a referência para o número de laços de qualquer lugar. Esta macro coloca um conjunto de calculus na coluna G para um número de vezes ditado pelo número de linhas no bloco de dados iniciando com a célula A1. A declaração For Next foi simplificada um pouco declarando primeiro uma variável introwcount e preenchendo-a, com a informação apropriada (quantas linhas no bloco por A1). Esta variável consegue ser usada na próxima linha em vez de uma longa linha de código. Isto é apenas um outro exemplo de se ffazer o mesmo trabalho de uma maneira diferente. Se você quiser construer um laço que sempre rode um bloco de código um número fixo de vezes, você poderá simplesmente usar uma expressão como: For i = 1 To 23 Exercício 8: Sobre Fazer Cálculos Nos exercícios anteriores colocamos um cálculo numa célula de planilha escrevendo uma função regular do Excel na célula (e deixando-a lá) da mesma forma que se você tiver digitadoa por si mesmo. A sintaxe para isto é: ActiveCell.FormulaR1C1 = DIGITE SUA FUNÇÃO AQUI Estas macros usaram: ActiveCell.FormulaR1C1 = =Average(RC[-5],RC[-6]) Devido a este método colocar uma função na célula ao invest de um valor, seus resultados mudarão quando as células a que elas se referirem mudar, exatamente como funções regulares devido elas serem funções regulares. O cálculo foi conseguido no Excel porque toda aquilo que a macro fez foi escrever a função. Se você preferir, você pode conseguir que a macro faça o cálculo e apenas escreva o resultado na célula. O VBA tem seu próprio conjunto de funções mas infelizmente a AVERAGE não é uma delas. Entretanto, o VBA suporta muitas das funções mais comuns do Excel com o método WorksheetFunction. Na Plan1 selecione célula C2 e rode a macro Laco1. Dê uma olhada nas células que você acabou de preencher. Cada uma contém uma função, escrita pela macro. Agora delete os conteúdos das células C2:C20, selecione célula C2 e rode a macro Loop8. 6

Sub Loop8() ' Este laço faz os cálculo por si só e escreve o resultado em cada célula ActiveCell.Value = WorksheetFunction.Average(ActiveCell.Offset(0, -1).Value, _ ActiveCell.Offset(0, -2).Value) Dê uma olhada nas células que você acabou de preencher. Desta vez não existe função, apenas o valor. Todos os calculus foram feitos pela macro que então escreveu o valor na célula. 7