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

Documentos relacionados
4 Criação de macros e introdução à linguagem VBA

APOSTILA DE VBA PARA EXCEL MARCOS DE BARROS OUTUBRO DE RISK MANAGEMENT

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

BARRA DE PROGRESSO EM VBA

Visual Basic for Applications: # 1

A1;A7 é o mesmo que A1 e A7 A1:A7 é o mesmo que A1 até A7 (abrange A1, A2, A3, A4, A5, A6, A7).

Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel

Manipulando Strings no VBA (Replace, Mid e InStr)

Usando Macros no. Excel

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

Laboratório de Programação I

Noções Várias em Visual Basic

Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda:

Tutorial 2 Básico do VBA do Excel

Tutorial 1 - Básico do VBA do Excel

Estrutura de Dados Básica

INTRODUÇÃO À PROGRAMAÇÃO DO ACCESS BASIC

Comandos de repetição while

INTRODUÇÃO À LINGUAGEM C++

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

ISCAP. Algoritmia. Pág. 1. Ana Paula Teixeira

A p o s t i l a M i c r o s o f t A c c e s s 97

Excel Avançado. Antonio Fernando Cinto Wilson Moraes Góes. Novatec Editora

DESENVOLVIMENTO DE SOFTWARE

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

FICHA ORIENTADA Nº1. Barra de fórmulas. Área de trabalho T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O

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

Manual de Recibos. Manual de Recibos

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Formador: Carlos Maia

Visual Basic for Applications

Índice. Excel Básico e Intermédio. Parte 1

FTIN Formação Técnica em Informática Módulo de Automação de Escritório AULA 05. Prof. Fábio Diniz

Para ver alguma coisa acontecer talvez seja preciso, primeiro, apagar o conteúdo da célula B2.

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Programação em Visual Basic for Applications & Excel

Tabelas vista de estrutura

Linguagem de Programação I

A linguagem Visual Basic

Informática II Ficha 5_resolução

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

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Sistemas de Apoio à Decisão

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

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

APONTAMENTOS DE EXCEL, VB e MATLAB

Bases de Dados 2007/2008. Aula 8

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha.

Estrutura Condicional em Java

Validação e Proteção de dados no Excel

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

VETORES E MATRIZES. By Eduardo Vieira Machado (Good Guy)

Curso:... Prova de Informática de Gestão (61020) Data: 27 de Janeiro de 2010

JavaScript (ou JScript)

Microsoft Excel. Formulários PARTE 8 SUMÁRIO

1 o º ciclo. Índice TUTORIAL

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms

Lista de Exercícios Fluxograma, Estruturas de Sequência e Decisão Prof: Yuri Frota

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Sumário. 1. Propósito 1 2. Tabela de Ferragem 1 3. Criar Tabela de Ferragem 1 4. Conector de Ferragens 7

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Arq = Freefile Open C:\Pasta\Arquivo.dat For Binary As #arq Abrir o arquivo binario. X = Seek(arq) Mostra a posição que está sendo lida no arquivo

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel

Como incorporar música. numa apresentação de. PowerPoint?

Aula 1 - Programação III Programação Visual (Visual Basic)

2 Pesquisa de valores em uma lista de dados

Notas de Aula de Algoritmos e Programação de Computadores

Fila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

A estrutura de repetição em um algoritmo consiste na execução de um trecho do mesmo levando em consideração certas condições imposta pelo algoritmo.

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

De novo, vamos começar pelas funções mais básicas, testá-las e depois usá-las em funções mais complexas.

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

MANIPULAÇÃO DE STRINGS

Aplicações de Escritório Electrónico

Sumário. Capítulo l - Introdução ao VBA

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Introdução à programação em VBA ÍNDICE

Grupo I. 1 - Range("cell")

Exercícios de Revisão Java Básico

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Primeiros passos das Planilhas de Obra v2.6

Alguns truques do Excel. 1- Títulos com inclinação. 2- Preencha automaticamente células em branco

GladiusSimpleReport. Este manual, visa mostrar, como utilizar o GladiusSimpleReport atravéz de exemplos.

Trabalhando com Arquivos de Texto no VBA

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

Bem vindo Joe Ramone!

Programação em MATLAB

Expressões Lógicas Comandos de Seleção

Tutorial :: Introdução ao VHDL em ambiente Design Works

A4 Projeto Integrador e Lista de Jogos

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Conceitos básicos da linguagem C

Como produzir e publicar uma apresentação online dinâmica (Prezi)

MATRIZ DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA

1 Contextualização 3 2 Administração do Joomla 5 3 Painel de controlo Menu sítio Menu utilizadores Outras funcionalidades 8 4

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

TUTORIAL AMBIENTE WEB PORTUGOL

Transcrição:

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015 Visual Basic VBA Macros Funções Conjunto de instruções que são executadas sempre que se desejar e pela ordem apresentada As funções são executadas a par\r da folha de cálculo Cada macro tem um nome para se poderem dis\ngir Não têm paramêtros (argumentos) Têm paramêtros (dados que vão ser inseridos nas células) São executadas a par\r de opções do menu, botões, teclado, etc... Calculam e devolvem valores (valores lógicos, números, etc...) As Macros (ou subrotinas) podem ser de dois tipos: Macros de comandos: Armazenam sequências de operações do utilizador no Excel. Criadas pelo utilizador: Resultam da criação do utilizador, sendo estas expressas através da linguagem de programação do VB. Sintaxe de uma Macro O VBA expressa uma Macro da seguinte maneira: Sub apresentação_macro() <Instrução 1> <Instrução 2>... End sub Quanto a sua natureza as macros podem ser públicas ou privadas de acordo com a sua disponibilidade nos diferentes módulos. Assim As macros são privadas quando estão apenas disponíveis no seu módulo; As macros são públicas quando estão disponíveis em todos os módulos e procedimentos do projeto. Macro Privada Private Sub macro_privada() <Instrução 1> <Instrução 2> End sub Macro Pública Public Sub macro_pública() <Instrução 1> <Instrução 2> End sub 1

Tipos de Variáveis Enquanto que no Excel podemos dizer que o conteúdo de uma célula se encontra formatado de uma determinada maneira, no VB somos obrigados a fazê- lo. Para isso, temos então de declarar a variável. Excel 12-10- 2014 A célula pode ser formata para apresentar uma data, um número inteiro, um número com apenas 1 casa decimal, etc... VBA Dim valor_positivo As Integer No VBA é necessário declararmos as variáveis que vamos utilizar bem como indicar o seu formato (o seu tipo) Tipos Integer Double Single String Long Date Boolean Byte Currency Tipos de variáveis VBA Exemplo Inteiros ( - 32768/32767) Reais Longos Reais Armazena Caracteres Inteiros Longos Data Valores lógicos (verdadeiro ou falso) Números sem sinal Moeda Para declarar uma variável é necessário 3 coisas. Em primeiro lugar temos usar a instrução Dim, depois temos de indicar o nome da variável e por fim que tipo de variável se trata. Assim um possível exemplo de declaração de uma variável é: Dim variável_x As Integer Dim Instrução utilizada para indicar ao VB que vamos iniciar a declaração da variável; variável_x Nome da variável; As Integer Formato da variável (tipo). Nota: O Array (ou matriz) permite armazenar várias variáveis do mesmo tipo. Atribuição de dados as variáveis Para fazer a atribuição de dados a variáveis é necessário que se associe os dados as variáveis. Sintaxe: variável = valor Exemplo: Crie uma macro que pede ao utilizador a sua idade e o seu nome e devolve uma frase que junte os dois dados. Public Sub dados_utilizador() Dim nome As String Dim idade As Integer nome = InputBox("Como é que te chamas?") idade = InputBox("Quantos anos tens?") MsgBox ("O nome é " & nome & " e tem " & idade & " anos") 2

Interatividade com o utilizador A interatividade com o utilizador pode ser realizada de duas maneiras, ou através de uma MsgBox ou através de uma InputBox. Numa InputBox( Insira um valor ) É uma forma de entrada de dados; Mostra uma janela com uma caixa que permite inserir dados; O utilizador deve inserir os dados ou então acionar uma maneira de sair do menu; A informação inserida é guardada na variável que o utilizador indicar. Numa MsgBox( O valor inserido é & valor) ü É uma forma de saída de dados; ü Exibe no ecrã uma janela com uma mensagem e/o com o conteúdo de uma variável. Exemplo 1: Crie uma macro que pede o nome ao utilizador e devolve uma frase como Tu chamas- te X. Sub Public nome() Dim nome As String nome = InputBox( Como é que te chamas? ) MsgBox ( Tu chamas- te & nome) Exemplo 2: Crie uma macro que pede ao utilizador o seu nome e a sua idade e de acordo com a sua idade irá aparecer uma mensagem personalizada como por exemplo O teu nome é X e tens Y anos, e és mensagem personalizada. Sub Public nomes_idades() Dim nome As String Dim idade As Integer Dim personalizacao As String nome = InputBox("Como é que te chamas?") idade = InputBox("Quantos anos tens?") If idade < 20 Then personalizacao = " és muito novinho." If idade < 40 Then personalizaçao = " és maduro." If idade < 65 Then personalizacao = " és experiente." personalizacao = " és muito maduro e experiente." MsgBox (" O teu nome é " & nome & " e tens " & idade & " anos, e " & personalizacao) 3

Estruturas de Controlo Existem duas estruturas de controlo, as estruturas condicionais (vulgarmente conhecidas por If) ou estruturas repetitivas que são constituídas por instruções de iteração (For, Do, While). Estrutura condicional Exemplo 1: Escreva uma função e uma macro que indica se o valor é positivo, negativo ou nulo. Função: Public Function sinal( valor As Integer ) As String If valor > 0 Then Sinal = positivo if valor < 0 Then Sinal = negativo Sinal = nulo End Function Macro: Public Sub sinal() Dim valor As Integer valor = InputBox( Insira um número ) If valor > 0 Then Sinal = positivo if valor < 0 Then Sinal = negativo Sinal = nulo MsgBox( O número que inseriu é & sinal) End sub Exemplo 2: Faça uma função que calcula o valor de desconto e o valor final (valor a pagar) utilizando o ciclo IF. Tenha em consideração que no caso de a compra ser num valor inferior a 100 existe 5% de desconto, no caso de a compra ter um valor entre 100 e 500 existe 10% de desconto e compras num montante superior a 500 existe 15% de desconto. 4

Public Sub desconto () Dim compra As Integer Dim valor_pagar, valor_desconto As Double compra = InputBox( Quanto é que pagou? ) If compra < 100 Then valor_desconto = compra*0,05 if compra < 500 Then valor_desconto = compra*0,10 valor_desconto = compra*0,15 End if valor_compra = compra valor_desconto MsgBox( O desconto é de & valor_desconto &. O valor final & valor_compra) Instruções de Interação Instrução For... Next For Each... Next Do... Loop While... Wend Descrição Percorre um conjunto de valores de um dado intervalo Percorre um conjunto de elementos de um conjunto Repete um conjunto de instruções enquanto ou até que uma determinada condição se verifique Repete o ciclo de instruções que esta entre o While e o Wend enquanto uma determinada condição for verdadeira O ciclo For... To... Next vai realizar um determinado conjunto de instruções desde um valor x até um valor y. O ciclo While... Wend vai realizar um conjunto de instruções enquanto a condição se verificar. O ciclo Do Until... Loop vai repetir um conjunto de instruções até que uma determinada condição se verifique. O ciclo Do While... Loop vai realizar um determinado conjunto de instruções enquanto uma determinada condição se verificar. Instruções de Iteração Ciclos Repetidos O ciclo FOR é utilizado quando sabemos o número de vezes que vamos ter de repetir um determinado conjunto de instruções. Sintaxe do ciclo: For <contador=valor_inicial> To <valor_final> Step <incrementar valor> <Instruções> <Instruções> Next contador 5

Exemplo 1: Utilizando uma macro calcule a soma de todos os números inteiros de 1 até ao valor que o utilizador inseriu. Public Sub soma() Dim i, n, soma As Integer n = InputBox( Insira um valor ) i = 1 For i=1 To n soma = soma + i MsgBox( A soma de todos os valores de 1 até & n é & soma) Exemplo 2: Utilizando a macro anterior calcule a soma de todos os números pares (o utilizador apenas insere números pares). Public Sub soma_pares() Dim i, n, soma As Integer n = InputBox( Insira um valor ) i = 0 For i=0 To n Step 2 soma = soma + i MsgBox( A soma de todos os valores de 1 até & n é & soma) Nota: O Step no ciclo FOR vai funcionar como modificador da frequência do ciclo, ou seja, em vez de o ciclo FOR ocorrer de um em um número pode ocorrer de n em n números. Exemplo 3: Faça uma macro que recebendo a base e a potencia calcula o respetivo valor. Public Sub potencia_n() Dim potencia, n, i As Integer Dim n_potencia As Long n = InputBox("Insira uma base") potencia = InputBox("Insira o expoente") n_potencia = 1 For i = 1 To potencia n_potencia = n_potencia * n MsgBox ("O valor é " & n_potencia) 6

Instruções de Iteração Ciclo While O ciclo WHILE repete um conjunto de instruções, que se encontram entre o While e o Wend, enquanto se verifica uma determinada condição. Sintaxe do ciclo: While <condição> <instruções> <instruções> Wend Nota: Ao contrário do que acontece com o ciclo FOR que só se utiliza quando se sabe o número de vezes que as instruções vão ser repetidas, o ciclo WHILE utiliza- se quando não se sabe quantas vezes temos de repetir as instruções. Exemplo: Construa uma macro que soma todos os valores até que o utilizador insira um 0. Public Sub ate_zero() Dim soma, valor As Integer valor = InputBox("Insira um valor") While valor <> 0 soma = soma + valor valor = InputBox("Insira outro valor") Wend MsgBox (" A soma de todos os valores inseridos é " & soma) Instruções de Iteração Do... Loop O ciclo Do... Loop executa uma determinada tarefa enquanto a condição utilizada for verdadeira. Ciclo Do... Loop Ciclo Do While... Loop Ciclo Do Until... Loop Este ciclo vai realizar uma determinada tarefa enquanto uma dada condição for verdadeira Este ciclo vai realizar uma determinada tarefa até que uma dada condição for verdadeira Do While <condição> <instrução> <instrução> Loop Do Until <condição> <instrução> <instrução> Loop 7

Exemplo: Construa uma macro que soma todos os valores até que o utilizador insira um 0, utilizando o ciclo Do Until... Loop e o ciclo Do While... Loop. Do Until... Loop Public Sub janelas_n() Dim soma, valor As Integer valor = InputBox("Insira um valor") Do Until valor = 0 soma = soma + valor valor = InputBox("Insira outro valor") Loop MsgBox (" A soma de todos os valores inseridos é " & soma) Do While... Loop Public Sub janelas_n() Dim soma, valor As Integer valor = InputBox("Insira um valor") Do While valor <> 0 soma = soma + valor valor = InputBox("Insira outro valor") Loop MsgBox (" A soma de todos os valores inseridos é " & soma) Objetos e Métodos Em VB todos os componentes que são programáveis são designados por objetos, enquanto que o comportamento de um objeto designa- se por método. Sintaxe: Objeto.Método Objetos Worksheets Range ActiveCell Selection Workbooks Cells Rows Métodos Select Count Formula Value Offset Clear Activate Sequências de Objetos.Métodos mais utilizadas: ü Worksheets( Sheet2 ).Activate Serve para ativar a folha de cálculo de um ficheiro Excel. ü Range( F2 ).Activate Serve para ativar os dados de uma célula (ou conjunto de células no caso de ser apresentado segundo a forma Range( F2:F8 )). ü ActiveCell.Offset(i,0).Value - Serve para aceder ao valor que está colocado numa determinada célula (i,0 - corresponde as posições) ü ActiveCell.Offset(i, 0).Formula = "=SUM(B2:B8)" Serve para somar os valores de uma coluna, enquanto i cumprir uma determinada condição que o utilizador definiu. Nota: Esta sequência tanto serve para fazer somas como para outras funções. Para isso basta mudar a função SUM por outra qualquer. ü Selection.Count Serve para contar uma determinada seleção anteriormente efetuada 8

ü ActivateCell.Offset(i, 1).Activate Move o conteúdo para a célula da coluna seguinte mantendo a mesma linha. ü n = ActiveCell.Value Serve para atribuir o valor de uma célula a uma variável. (- 1,0) (0,- 1) Célula Origem (0,0) (0,1) (1,0) (1,1) (1,3) (2,0) (3,- 1) (3,0) (3,2) Seta azul O conteúdo move- se 3 linhas Seta verde O conteúdo move- se 3 linhas e 2 colunas para a direita Seta roxa O conteúdo move- se 3 linhas e 1 coluna para a esquerda Exemplo 1: Construa uma macro que indica se os valores que estão inseridos nas células de G2 até G8, e no caso de serem maiores de 10 deve indicar na coluna ao lado a mensagem >10X. Quando a macro terminar o seu trabalho esta deve devolver uma mensagem como acabei. Public Sub escreve_x() Worksheets("Sheet2").Activate Range("G2:G8").Activate Dim i As Integer For i = 0 To (Selection.Count - 1) If ActiveCell.Offset(i, 0).Value > 10 Then ActiveCell.Offset(i, 1).Value = " > 10 X" ActiveCell.Offset(i, 1).Value = "" MsgBox ("Já trabalhei tudo") Exercício 2: Construa uma macro que verifica os números inseridas nas células B2:B8, devolvendo na coluna C, se o valor é positivo ou não positivo. No célula B9 deve inserir a soma de todos os números inseridos de B2:B8. Public Sub escreve_3a() Worksheets("Sheet2").Activate Range("B2:B8").Activate Dim i As Integer For i = 0 To Selection.Count - 1 If ActiveCell.Offset(i, 0).Value > 0 Then ActiveCell.Offset(i, 1).Value = "Positivo" ActiveCell.Offset(i, 1).Value = "N_Positivo" ActiveCell.Offset(i, 0).Formula = "=SUM(B2:B8)" 9