Baixe o app para aproveitar ainda mais
Prévia do material em texto
25/02/2016 1 Introdução ao VBA Visual Basic for Application Prof. Andreia Machion Por que utilizar VB em aplicativos Office? • O VBA oferece possibilidades de controle e personalização para criar aplicativos que vão além do que é possível de ser feito usando apenas Macros. • É uma linguagem de programação interna do Microsoft Office (na prática é a linguagem de programação para todos os aplicativos do Office: Access, Word, Excel e Power Point). • Usa-se o VBA pelo mesmo motivo que se utilizam macros – Para automatizar tarefas e rotinas repetitivas, envolvendo os diversos elementos do banco de dados (tabelas, consultas, formulários, relatórios, folhas de dados, macros e módulos). – No entanto, o VBA oferece maior poder e controle mais detalhado do que as ações de macro. 25/02/2016 2 Macros x VBA - 1 • Macros duplicam operações que podem ser realizadas manualmente, usando menus e teclas de atalho. • O VBA vai além da simples automação de seqüências de ações de teclado e menus de comandos. • Ele oferece um conjunto de ferramentas que permite criar aplicações personalizadas com base nos elementos do Office. – Por exemplo, pode-se criar uma rotina em VBA em um banco de dados para acessar dados em um segundo banco de dados que está na rede. – A mesma rotina além de acessar os dados pode fazer cálculos, consolidações, gerar os resultados no formato de uma planilha do Excel e salvar a planilha na rede ou em uma página Web, por exemplo. Macros x VBA – 2 • Acessando um ou mais conjuntos de registros: – ações de macros permitem operar somente com o registro ou com o conjunto de registros atualmente sendo exibido em um formulário, relatório ou consulta; – o VBA lhe permite trabalhar com qualquer conjunto de registros no banco de dados ativo ou em outras banco de dados e, inclusive, com vários conjuntos de registros ao mesmo tempo. Por exemplo, é possível montar uma rotina VBA, associada a um formulário de entrada de pedidos, a qual faz a baixa dos produtos vendidos, automaticamente, na tabela de estoque. • Manipulação de objetos: – o VBA oferece métodos de criação e modificação dos objetos de um aplicativo MSOffice; – um objeto é qualquer elemento do Microsoft Office, por exemplo: uma tabela, uma planilha, um formulário, um relatório etc. 25/02/2016 3 Macros x VBA - 3 • Criação de funções definidas pelo usuário: – um dos maiores benefícios do VBA: criar funções que executam cálculos repetitivos ou cálculos para os quais o Access não dispõem de uma função pronta. • Por exemplo, vários formulários podem conter um campo CPF ou CNPJ. Pode-se criar, em cada formulário, o código necessário para a validação do DV do CPF ou CNPJ. Porém este procedimento não é o mais indicado, pois além da duplicação do código necessário à validação do CPF ou CNPJ Macros x VBA - 4 • Definição de condições e controle de fluxo: – O VBA oferece uma variedade de comandos e estruturas para a realização de testes condicionais e para a repetição de um conjunto de comandos. • Realização de cálculos complexos e solução de problemas que envolvem uma lógica complexa: – Com macros é impossível a realização de cálculos mais complexos, tais como cálculo do imposto de renda, recolhimentos de tributos etc. 25/02/2016 4 Origens • Visual Basic que é um ambiente de desenvolvimento completo, no qual pode-se criar programas para o ambiente Windows. • o VBA é uma linguagem poderosa, embora não tão poderosa quanto o Visual Basic, para criação de aplicativos e automação de tarefas, baseados nos aplicativos do Microsoft Office: Access, Word, Excel, PowerPoint e Outlook. • Diferenças – Com o Visual Basic é possível criar os programas executáveis, ou seja, você cria o programa e gera os arquivos de instalação. Nos arquivos de instalação estão todos os recursos necessários à instalação e ao funcionamento do programa. – Com o VBA não é possível criar programas executáveis. As rotinas de programação criadas com o VBA tem que ser executadas dentro de um dos aplicativos do Office, como por exemplo o Access, Excel, Word, PowerPoint ou Outlook. Utilização - 1 • Como resposta a um evento • O modelo de programação do ambiente Windows é baseado em Eventos. • Um Evento é uma ação do usuário ao utilizar o teclado ou o mouse. Por exemplo, quando o usuário clica em um botão de comando é gerado o evento "Ao clicar" associado com este botão. • Por padrão nenhuma ação é programada para responder aos eventos que são disparados. • É possível criar macros que serão executadas em resposta a um determinado evento. • Pode-se utilizar o VBA para criar um procedimento (um procedimento é formado por um ou mais comandos e pode ser do tipo Sub-procedimento ou Função) que será executado em resposta ao evento. – Por exemplo, um procedimento para validar um número de CPF (calcular o DV do CPF). Este procedimento pode ser configurado para ser executado em resposta ao evento Após atualizar do campo CPF. O código criado para ser executado em resposta a um evento, é gravada juntamente com o formulário (ou relatório), onde está o elemento que dispara o evento. 25/02/2016 5 Utilização - 2 • Criação de funções e procedimentos em módulos separados: • Procedimentos ou funções que não estejam ligados a um evento específico em um formulário ou relatório (podendo, porém serem chamados em diversos eventos diferentes). • Um Módulo é um objeto do Microsoft Office cuja única finalidade é armazenar código de procedimentos e funções do VBA. • Quando um procedimento ou função é definido e armazenado em um módulo, ele pode ser usado em qualquer expressão, como se fosse uma função interna do Microsoft Office ou chamado em resposta a um evento. O Ambiente de Programação - 1 • O ambiente de programação é, basicamente, um editor de texto com recursos adicionais, os quais facilitam bastante o trabalho do programador. • Os aplicativos do Microsoft Office fornecem um ambiente de programação bastante poderoso, com uma série de recursos que facilitam a criação, utilização e depuração de código VBA. • Se esse ambiente não estivesse disponível seria necessário lembrar a sintaxe de todos os comandos, dos métodos e propriedades dos objetos. • Com o VBA, tem-se acesso a milhares de objetos e cada objeto pode ter dezenas de propriedades, métodos e coleções. 25/02/2016 6 O Ambiente de Programação - 2 • O ambiente de Desenvolvimento fornece uma série de facilidades durante a criação do código VBA. • Por exemplo, ao digitar o nome de um objeto e um ponto será aberta, automaticamente, uma lista com todos os métodos e propriedades deste objeto. Ao invés de lembrar do nome dos métodos/propriedades, basta selecioná-los em uma lista. • Se um método for selecionado, ao digitar o parênteses de abertura, será exibida uma lista com os argumentos esperados pelo método, bem como o tipo (texto, número, data etc.) de cada argumento. • Se for digitado um comando incorretamente, o Ambiente de Desenvolvimento emite uma mensagem e coloca em destaque o comando que foi digitado incorretamente. Os comandos do VBA são divididos, basicamente, em dois tipos: • Comandos básicos do VBA: – São aqueles presentes em toda e qualquer linguagem de programação que se preze. São comandos para declaração de variáveis, operadores aritméticos e lógicos, estruturas de controle e operadores para a realização de testes condicionais. – Por exemplo, qual a linguagem que não possui uma função IF para a realização de testes condicionais? • Funções internas do Microsoft de cada aplicativo Office: – Existem centenas de funções prontas, fornecidas pelo Microsoft Access, por exemplo, e que podem ser utilizadas em qualquer comandodo VBA. – Por exemplo, para armazenarmos em uma variável x, o valor numérico do ano da data do sistema, pode-se utilizar o seguinte comando: x = Year(Date()) 25/02/2016 7 Variáveis • Uma variável é um local na memória reservado para armazenar um pedaço de informação que pode ser alterado enquanto um processo está em execução. • Pense nisso como um compartimento, redimensionável na memória • Por exemplo, se você precisa que o usuário insira seu nome por meio de uma entrada ou uma caixa de diálogo, você normalmente armazena o nome em uma variável para que você possa trabalhar com ele durante o processo. • VBA usa vários tipos de variáveis: – Strings: armazenam caracteres de texto ou grupos de caracteres. – Integers: armazenam números inteiros (números sem frações). – Objects: armazenam objetos. – Variants: podem armazenar qualquer tipo de dados. É o tipo padrão de variáveis. Você pode deixar VBA criar variáveis Variant para armazenar suas informações, ou você pode especificar um tipo de qualquer . Variáveis • Uma variável é um espaço na memória para armazenar valores quando necessário. • Como a memória da qual estamos falando é a Memória RAM, o valor é perdido quando o aplicativo é encerrado. • Para conseguir utilizar tal espaço na memória, você precisa comunicar ao “computador” sua intenção, informando quantas porções de memória vai precisar e qual o tamanho de cada porção. • Comunicar essa intenção é referido como declarar uma variável • Como podem ser utilizados vários valores durante a execução do aplicativo, o computador precisaria de duas informações para manter um valor: um nome que pode ser usado para identificar a parte da memória e da quantidade de memória que será necessário para armazenar os valor, isto é, o tipo da informação a ser armazenada. 25/02/2016 8 Nomes de Variáveis • Há regras que devem ser observadas para a criação de variáveis: – Começar por letras (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y or Z) ou pelo caracter sublinhado _ – O nome não pode conter um ponto (.) ou um caracter especial (tal como ! @ # $ % ^ & * ( ) + - = [ ] { } ; ' : " , . / < > ? \ | ` ou ~) – O nome não pode conter um espaço em branco – O nome tem no máximo 255 caracteres. Uma boa prática de programação é limitar em 30 caracteres – O nome deve ser único num mesmo escopo Declaração de variáveis • Quando estiver escrevendo o seu código, você pode usar qualquer variável especificando-a somente pelo seu nome. Neste caso, a máquina cria um espaço em memória para tal variável. No entanto, quando se faz uso de variáveis dessa forma, o espaço alocado é do tipo variant, o maior, como será visto mais adiante. Além disso, o seu código pode ficar confuso. • Para declarar uma variável, usa-se a função Dim seguida do nome da variável. Exemplo: Dim BackgroundColor • Uma boa prática de programação é forçar a declaração de todas as variáveis de um módulo. Para isso , usa-se Option Explicit • no início de cada módulo. • Isto também pode ser feito de forma automática, escolhendo-se a opção Require Variable Declaration • no menu de opções. 25/02/2016 9 Definindo o tipo da variável • Um tipo de dado define que tipo de valor será armazenado . Existem vários tipos para diferentes propósitos. Antes de atribuir um tipo a uma variável é importante saber quanto espaço aquele tipo ocupa na memória. Tipos diferentes ocupam espaços diferentes. A quantidade de espaço é medida em bytes. • Para especificar o tipo de cada variável, depois de escrever Dim e o nome_variável use a palavra-chave As seguida do tipo: Dim VariableName As DataType • Com isso, você tem a variável VariableName declarada como sendo do tipo DataType, se for necessário declarar mais variáveis, você pode fazer: Dim Variable1 As DataType1 Dim Variable2 As DataType2 Dim Variable3 As DataType3 • Você também pode declarar mais que uma variável numa mesma linha: Dim Variable1 As DataType1, Variable2 As DataType2 O tipo Variant pode ser usado para declarar qualquer tipo de variável, no entanto, deve ser evitado. O tipo Boolean permite armazenar somente 2 valores, verdadeiro ou falso, 0 ou não 0, Sim ou Não. 25/02/2016 10 Algumas funções de conversão de tipos • Toda vez que se recebe um valor em uma aplicação como entrada, o valor é um TEXTO. Se for necessário utilizá-lo como outro tipo, é necessário convertê-lo. • Microsoft Visual Basic fornece funções específicas para tal: – para Boolean CBool() – para String CStr() – para Byte CByte() – para Integer CInt() – para Long CLng() – para Single CSng() – para Double CDbl() – para Currency CCur() – para Date CDate() Constantes • são valores que não variam ao longo de um programa • para definir constantes, usa-se a palavra-chave Const – Const Pi = 3,14 – Const Aumento = 1,10 – Const EstCivil = “Solteiro(a)”
Compartilhar