Visual Basic for Applications: # 1



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

Visual Basic for Applications

Visual Basic for Applications

VBA e Excel I. Macros

Manipulando Strings no VBA (Replace, Mid e InStr)

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

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

Noções Várias em Visual Basic

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

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

Excel Macros e Programação em VBA

Microsoft Excel. O que é? Para que serve? É um poderoso programa de folha de cálculo.

Laboratório de Programação I

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

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

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

Exemplos: Pág 5 FUNÇÕES. UC Extensão - Excel Docente: André Luiz Silva de Moraes OPERADORES BOOLEANOS

A linguagem Visual Basic

Manipulando Strings no VBA (Replace, Mid e InStr)

Programação em Visual Basic for Applications & Excel

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

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

DESENVOLVIMENTO DE SOFTWARE

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

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

PROGRAMAÇÃO EM C# COM VISUAL STUDIO.NET

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

Noções básicas sobre macros no Access 97. Construção de algumas macros simples. Noções básicas sobre procedimentos VBA no Access 97

INTRODUÇÃO À LINGUAGEM C++

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Folha de Cálculo Introdução à Folha de Cálculo

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

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

FOLHA DE CÁLCULO EXCEL

1. Criar uma nova apresentação

Informática II Ficha 5_resolução

Formador: Carlos Maia

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

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

JavaScript (ou JScript)

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;

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

Aula 01 Conceitos Iniciais sobre Excel 2010

Collections. Objecto Collection. Propriedades e métodos

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

Usando Macros no. Excel

Plano de Aula - Access cód Horas/Aula

Folha de cálculo. Excel. Agrupamento de Escolas de Amares

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

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

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

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

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Para criar uma nova apresentação: 1.Escolha a opção Apresentação em Branco Clique no botão Ok

O PowerPoint permite visualizar de diferentes formas a apresentação. Podemos aceder as diferentes formas de duas maneiras distintas: VISTA NORMAL

Algoritmos e Programação

10. Acessando o Banco de Dados através do Visual Basic

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir:

QUITETURA AVANÇADA DE SISTEMAS

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

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

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

MATRIZ DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA

Tutorial 1 - Básico do VBA do Excel

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

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

O que é uma folha de cálculo?

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

Estruturas de Repetição

Programando em C++ Histórico da Linguagem C

Comandos de repetição while

Estruturas de Controle em PHP

Excel avançado - VBA Técnicas profissionais de uso dos poderosos recursos do excel!

Calculador de preços e prazos de encomendas

Introdução aos Sistemas Informáticos

8. Perguntas e Respostas

Delphi 7 Aula 02 Preço do Automóvel

Guia de Estudo Folha de Cálculo Microsoft Excel

Conceitos básicos da linguagem C

TUTORIAL PARA PREPARAÇÃO E IMPORTAÇÃO DE DADOS PARA. Os dados de suas coletas devem ser organizados em uma planilha eletrônica, de modo

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

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

Estrutura Condicional em Java

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

Ficha prática de PowerPoint

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

Módulo III. Folhas de Cálculo

MANIPULAÇÃO DE STRINGS

Java Como Programar, 8/E

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

PROGRAMAÇÃO II 3. FILA DINÂMICA

Introdução : 1. Temas Abordados no Livro 1. Novidades no Excel Explorando o ExceI O Microsoft Excel 3

Banco de Dados. Microsoft Access. Índice

Bases de Dados 2007/2008. Aula 8

AnsiLowerCase Converte todos os caracteres de uma string para minúsculo; Sintaxe: AnsiLowerCase(const S: string): string;

Transcrição:

Visual Basic for Applications Introdução É uma linguagem de programação baseada na conhecida linguagem BASIC Está concebida para funcionar em conjunto com diferentes aplicações, de forma a potenciar a robustez das mesmas Enquadra-se nos ambientes de programação baseados no processamento de sequência de eventos (event-driven programming) História Foi inicialmente integrada com o Excel 5 em 1994 e a partir daí a sua expansão para outras aplicações foi gradual Foi com a saída do Office 97 em 1997 que a Microsoft concretizou um dos seus grandes objectivos: ter um ambiente de programação completamente integrado nos seus quatro produtos mais famosos: Word, Excel, Access e PowerPoint Actualmente, o VBA é já por si só um produto independente, que outras companhias podem adoptar e incorporar nas suas aplicações Visual Basic for Applications: # 1

Variáveis I Para que servem? Servem para guardar valores temporariamente em memória Exemplo: dado X quanto é a sua metade mais o seu dobro? metade = x / 2 dobro = 2 * x resultado = metade + dobro Declaração explícita de variáveis Declarar uma variável VAR: Dim VAR Declarar uma variável VAR como sendo do tipo TYPE: Dim VAR As TYPE Variáveis sem declaração de tipo têm por defeito o tipo Variant Declaração implícita de variáveis Possibilidade de não declarar variáveis Variáveis não declaradas têm por defeito o tipo Variant Não permitir o uso de variáveis implícitas: Option Explicit Visual Basic for Applications: # 2

Variáveis II Tipo de variáveis Variant tipo genérico Boolean True ou False Byte 0 até 255 Integer -32.768 até 32.767 Long -2.147.483.648 até 2.147.483.647 Decimal +/-79.228.162.514.264.337.593.543.950.335 (sem casas decimais) +/-7,9228162514264337593543950335 (com casas decimais) Currency -922.337.203.685.477,5808 até 922.337.203.685.477,5807 Date 1 de Janeiro de 100 até 31 de Dezembro de 9999 String 1 até aproximadamente 2 biliões de caracteres Visual Basic for Applications: # 3

Exemplos Option Explicit Variáveis III Dim metade As Decimal Dim dobro As Decimal Dim resultado As Decimal metade = x / 2 dobro = 2 * x resultado = metade + dobro Dim val As Boolean val = True Dim texto As String texto = vba Dim aux As Variant aux = True aux = vba Visual Basic for Applications: # 4

Operadores I Aritméticos + (adição) - (subtracção e negação) * (multiplicação) / (divisão) \ (divisão inteira) ^ (exponenciação) Mod (resto da divisão) Texto & (concatenação) Comparação = (igual a) > (maior que) < (menor que) <> (diferente de) >= (maior ou igual) <= (menor ou igual) Lógicos And (e lógico) Or (ou lógico) Not (negação) Visual Basic for Applications: # 5

Precedências Operadores II Maior precedência ^ exponenciação - negação *, / multiplicação e divisão \ divisão inteira Mod resto da divisão +, - adição e subtracção & concatenação =, >, <, <>, >=, <= comparação And, Or, Not lógicos Menor precedência Outros caracteres comentários : múltiplas instruções na mesma linha _ uma instrução em múltiplas linhas Visual Basic for Applications: # 6

Caixas de mensagem Caixas MsgBox Forma básica de apresentar uma mensagem ao utilizador MsgBox(mensagem) Caixas InputBox Apresenta uma mensagem numa caixa de mensagem, permite que o utilizador introduza texto, e devolve a sequência de texto introduzida InputBox(mensagem) Exemplo Dim nome As String nome = InputBox( Introduza o seu nome... ) MsgBox Bem vindo & nome &! Visual Basic for Applications: # 7

Procedimentos I Para que servem? Quando uma dada sequência de instruções (tarefa) é executada repetidamente em diferentes partes do código, deve ser criado um procedimento que substitua e concentre num único local a sequência de instruções da tarefa a executar O uso de procedimentos aumenta a produtividade do programador pois diminui o tamanho global do código a escrever, facilita a edição da sequência de instruções relativa à tarefa em causa, e minimiza a ocorrência de erros Tipo de procedimentos Sub: são utilizados para executar tarefas independentes Function: são utilizados para calcular/retornar valores Visual Basic for Applications: # 8

Procedimentos Sub Sub nome ([argumentos]) [...] [Exit Sub] [...] End Sub Procedimentos II Exemplo Sub boas_vindas() Dim nome As String nome = InputBox( Introduza o seu nome... ) MsgBox Bem vindo & nome &! End Sub Visual Basic for Applications: # 9

Procedimentos III Procedimentos Function Function nome ([argumentos]) [As tipo] [...] [nome = expressão] [...] [Exit Function] [...] [nome = expressão] [...] End Function Exemplo Function area(comp As Integer, alt As Integer) As Integer area = comp * alt End Function Visual Basic for Applications: # 10

Declarar argumentos argumento [As tipo] Argumentos I Exemplo Function area(comp As Integer, alt As Integer) As Integer Passar e nomear argumentos Passar argumentos: area(5, 4) Nomear argumentos: area (alt:= 4, comp:= 5) Argumentos opcionais Optional argumento [As tipo] = valor_por_defeito Permite atribuir um valor por defeito nos casos em que não é passado ou nomeado qualquer valor A declaração de um argumento opcional implica que os argumentos subsequentes sejam igualmente declarados como opcionais Visual Basic for Applications: # 11

Argumentos II Exemplos Function area(optional comp As Integer = 1, larg As Integer = 1) area = comp * larg End Function dá um erro Function area(optional comp As Integer = 1, Optional larg As Integer = 1) area = comp * larg End Function aux = area (5, 4) aux = 20 aux = area (5) aux = 5 aux = area () aux = 1 Visual Basic for Applications: # 12

VBA e Excel Editor do Visual Basic Menu <Ver> seguido das opções <Barras de ferramentas> e <Visual Basic> Janelas de projecto, de propriedades e de código Visual Basic for Applications: # 13

Código VBA como função do Excel Visual Basic for Applications: # 14

If Then Else If condição_1 Then [...]... [ElseIf condição_n Then [...]] [Else [...]] End If Execução condicional I Exemplos Function escala(num As Integer) As String If num = 0 Then escala = zero ElseIf num < 0 Then escala = negativo Else num > 0 escala = positivo End If End Function Visual Basic for Applications: # 15

Execução condicional II Exemplos Function é_positivo(num As Integer) As Boolean If num > 0 Then é_positivo = True Else num <= 0 é_positivo = False End If End Function Function num_min(num1 As Integer, num2 As Integer) If num1 < num2 Then num_min = num1 Else num1 >= num2 num_min = num2 End If End Function Visual Basic for Applications: # 16

Execução condicional III Exemplos Function num_meio(num1 As Integer, _ num2 As Integer, _ num3 As Integer) As Integer If num1 >= num2 And num2 >= num3 Then num_meio = num2 ElseIf num1 >= num3 And num3 >= num2 Then num_meio = num3 ElseIf num2 >= num1 And num1 >= num3 Then num_meio = num1 ElseIf num2 >= num3 And num3 >= num1 Then num_meio = num3 ElseIf num3 >= num1 And num1 >= num2 Then num_meio = num1 ElseIf num3 >= num2 And num2 >= num1 Then num_meio = num2 End If End Function Visual Basic for Applications: # 17

Ciclos numeráveis I For Next For contador = início To fim [Step incremento] [...] [Exit For] [...] Next Condições de paragem Step: por defeito o valor de incremento é 1 Se o incremento for positivo ou zero, o ciclo termina assim que contador seja maior do que fim Se o incremento for negativo, termina assim que contador seja menor do que fim Visual Basic for Applications: # 18

Ciclos numeráveis II Exemplos Function mult_int(x As Integer, y As Integer) As Integer Dim contador As Integer If x >= 0 Then mult_int = 0 For contador = 1 To x mult_int = mult_int + y Next Else mult_int = 0 For contador = -1 To x Step -1 mult_int = mult_int - y Next EndIf End Function Visual Basic for Applications: # 19

Ciclos numeráveis III Exemplos Function mult_int(x As Integer, y As Integer) As Integer Dim contador As Integer If x >= 0 Then mult_int = 0 For contador = 1 To x mult_int = mult_int + y Next Else mult_int = -mult_int(-x,y) EndIf End Function Function soma_pares(limite As Integer) As Long Dim contador As Integer soma_pares = 0 For contador = 2 To limite Step 2 soma_pares = soma_pares + contador Next End Function Visual Basic for Applications: # 20

Ciclos numeráveis IV Exemplos Function primo(num As Long) As Boolean Dim contador As Long For contador = 2 To num \ 2 If num Mod contador = 0 Then primo = False Exit Function End If Next primo = True End Function Visual Basic for Applications: # 21

Do Loop Do {While Until} condição [...] [Exit Do] [...] Loop Ciclos condicionais I Do [...] [Exit Do] [...] Loop {While Until} condição Condições de paragem While: executa o ciclo enquanto a condição for verdade Until: executa o ciclo enquanto a condição for falsa Visual Basic for Applications: # 22

Ciclos condicionais II Exemplos Function mult_int(x As Integer, y As Integer) As Integer If x >= 0 Then mult_int = 0 Do While x > 0 mult_int = mult_int + y x = x 1 Loop Else mult_int = -mult_int(-x,y) EndIf End Function Sub confirmar_password() Dim password As String Do password = InputBox( Insira a password de acesso... ) Loop While password <> cta Until password = cta End Sub Visual Basic for Applications: # 23

Manipulação de strings I Funções básicas Len(string) LCase(string) UCase(string) Left(string, comprimento) Right(string, comprimento) Mid(string, início [, comprimento]) Exemplos Len( Hello World ) 11 Lcase( Hello World ) hello world Ucase( Hello World ) HELLO WORLD Left( Hello World, 1) H Right( Hello World, 3) rld Mid( Hello World, 7) World Mid( Hello World, 7, 2) Wo Visual Basic for Applications: # 24

Manipulação de strings II Funções básicas LTrim (string) RTrim (string) Trim (string) InStr ([início,] string_geral, string_procura) StrComp (string1, string2) Exemplos LTrim( <- -> ) <- -> RTrim( <- -> ) <- -> Trim( <- -> ) <- -> InStr(1, Hello World, o ) 5 InStr(6, Hello World, o ) 8 StrComp( abc, abc ) 0 (string1 = string2) StrComp( abc, ABC ) 1 (string1 > string2) StrComp( ABC, abc ) -1 (string1 < string2) Visual Basic for Applications: # 25

Manipulação de strings III Exemplo Function inverte(str As String) As String Dim i As Integer Dim tamanho As Integer tamanho = Len(str) inverte = For i = tamanho To 1 Step -1 inverte = inverte & Mid(str, i, 1) Next End Function Visual Basic for Applications: # 26

Manipulação de datas e horas I Funções básicas Date Time Now Year(data) Month(data) Day(data) Hour(hora) Minute(hora) Second(hora) DateSerial(ano, mês, dia) TimeSerial(hora, minuto, segundo) Visual Basic for Applications: # 27

Manipulação de datas e horas II Exemplos Date 27-11-2003 Time 11:20:00 Now 27-11-2003 11:20:00 Year(Date) 2003 Hour(Time) 11 DateSerial(2003, 11, 27) 27-11-2003 TimeSerial(11, 20, 0) 11:20:00 Function dias_de_vida (dia As Integer, mes As Integer, _ ano As Integer) Dim nascimento As Date nascimento = DateSerial(ano, mes, dia) dias_de_vida = Date - nascimento End Function Visual Basic for Applications: # 28

Objectos I Conceito Qualquer coisa que numa aplicação se pode manipular de algum modo Formas de manipular um objecto Alterar o seu conjunto de propriedades Activar métodos específicos do objecto para executar determinadas tarefas Associar procedimentos aos eventos que podem ocorrer sobre o objecto Propriedades As propriedades são os atributos que definem as características dos objectos Cells(1,1).Formula = =B1*10 Certas propriedades são elas mesmas objectos Cells(1,1).Font.Italic = True Existem propriedades que são só de leitura col = Cells(1,1).Column Visual Basic for Applications: # 29

Objectos II Métodos Os métodos são acções que descrevem o que os objectos podem fazer São executados sobre os objectos e podem conter ou não argumentos Cells(1,1).Clear Cells(1,1).AddComment comentário Eventos Os eventos são algo que acontece aos objectos Ocorrem em resultado de acções do utilizador, do sistema ou do próprio código É possível associar a execução de procedimentos à ocorrência de eventos Private Sub BotãoOK_Click() Os procedimentos correspondentes aos eventos têm todos a seguinte forma: Private Sub Objecto_Evento(argumentos) Visual Basic for Applications: # 30

Objectos Range I Referenciação Range( A1 ): referência à célula A1 Range( B2:C3 ): referência ao intervalo B2:C3 Range( A1, B2:C3 ): referência à célula A1 mais o intervalo B2:C3 Cells(1, 2): referência à célula na 1ª linha e na 2ª coluna (célula B1) Range( B2:C3 ).Cells(1, 2): referência à célula na 1ª linha e na 2ª coluna dentro do intervalo B2:C3 (célula C2) Exemplo For ano = 1 To 100 Range( A & ano) = 1999 + ano Next For mes = 1 To 12 Cells(1, mes) = mes Next Visual Basic for Applications: # 31

Objectos Range II Fórmulas range.formula: fórmulas das células do range no idioma standard (inglês) range.formulalocal: fórmulas das células do range no idioma local Exemplos Range( A1 ).Formula = =A2 Range( A9 ).Formula = =SUM(A1:A8) Range( A9 ).FormulaLocal = =SOMA(A1:A8) aspas nas fórmulas devem ser duplicadas Range( A1 ).Formula = =COUNTIF(B1:B9, >0 ) Range( A1 ).FormulaLocal = =CONTAR.SE(B1:B9; >0 ) as fórmulas actualizam-se tal como quando são arrastadas o exemplo que se segue leva a que B9 =SOMA(B1:B8) Range( A9:B9 ).FormulaLocal = =SOMA(A1:A8) Visual Basic for Applications: # 32

Objectos Range III Exemplo Sub colunaa_azul(inicio As Integer, fim As Integer) Dim linha As Integer For linha = inicio To fim Cells(linha, 1).Interior.ColorIndex = 5 5 é a cor azul Next End Sub Sub colunaa_azul(inicio As Integer, fim As Integer) Range( A & inicio & :A & fim).interior.colorindex = 5 End Sub Visual Basic for Applications: # 33

Formulários Menu <Inserir> seguido da opção <UserForm> Controlos Caixa de ferramentas Formulários e Controlos Visual Basic for Applications: # 34

Objectos Control I Propriedades comuns Name: nome que identifica o controlo Left / Top: posição relativa ao canto superior esquerdo do formulário Height / Width: altura e comprimento do controlo BackColor / ForeColor: cor do fundo e cor do texto do controlo Font: tipo de letra do controlo Caption: texto presente no controlo ControlTipText: texto de ajuda para quando se mantém o foco sobre o controlo TabIndex: ordem de navegação do controlo (utilizando a tecla Tab) TabStop: se False previne a navegação por intermédio da tecla Tab Visible: visibilidade do controlo Enabled: se False previne o controlo de receber o foco e responder a eventos Locked: se True previne o utilizador de editar o valor presente no controlo Visual Basic for Applications: # 35

Objectos Control II Command button CommandButton_Click(): ocorre quando o botão é premido Text box TextBox_Change(): ocorre quando o conteúdo da caixa é alterado Combo / List boxes.additem: adiciona uma nova entrada à caixa.listindex: entrada seleccionada na caixa (a primeira entrada é a zero) ComboBox_Change(): ocorre quando o conteúdo da caixa é alterado UserForm UserForm_Initialize(): ocorre quando o formulário é iniciado Visual Basic for Applications: # 36

Objectos Control III Exemplo O formulário ao lado possui duas caixas de texto de nomes CaixaValor e CaixaResultado, uma caixa de combinação de nome ListaFunções e um botão de comando de nome BotãoCancelar. Defina os procedimentos necessários para obter a seguinte funcionalidade: O activar do formulário deve copiar para CaixaValor o conteúdo da célula A1 e deve iniciar ListaFunções com os itens dobro e triplo A selecção de um item em ListaFunções deve colocar em CaixaResultado o resultado da aplicação do item seleccionado sobre o valor em CaixaValor. Por exemplo, se CaixaValor apresentar o valor 10 e o item seleccionado for dobro, então CaixaResultado deverá ficar com o valor 20 O pressionar do BotãoCancelar deve fechar o formulário Visual Basic for Applications: # 37

Objectos Control IV Exemplo Private Sub UserForm_Initialize() CaixaValor = Range( A1 ) ListaFunções.AddItem dobro ListaFunções.AddItem triplo End Sub Private Sub ListaFunções_Change() If CaixaValor = Then CaixaResultado = ElseIf ListaFunções.ListIndex = 0 Then CaixaResultado = 2 * CaixaValor ElseIf ListaFunções.ListIndex = 1 Then CaixaResultado = 3 * CaixaValor End If End Sub Private Sub BotãoCancelar_Click() Unload UserForm1 End Sub fecha o formulário Visual Basic for Applications: # 38