Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

PROGRAMAÇÃO VBA

MÓDULO I - PROGRAMAÇÃO COM MICROSOFT ACCESS

OBJETIVO DA PRIMEIRA ETAPA

Entender o que é VBA, quais são suas vantagens, tipos de problemas que poderão ser
solucionados e quando utilizá-lo.

AO CONCLUIR ESTÁ PRIMEIRA PARTE VOCÊ ESTARÁ APTO A RESPONDER:

 O que é a linguagem VBA?


 Quando podemos utilizá-lo?
 Quais são os tipos de problemas que podemos solucionar?

PROGRAMAÇÃO COM MICROSOFT ACCESS

O VBA disponibiliza flexibilidade para criar aplicativos que vão além do que é possível de ser
feito com Macros.

O VBA é uma linguagem de programação interna do Microsoft Office, ou seja, uma linguagem
de programação para todos os aplicativos do Office: Access, Word, Excel e Power Point.
O VBA é usado pelo mesmo motivo que utilizamos macros - para automatizar tarefas e rotinas
repetitivas, incluindo os objetos do banco de dados, Tabelas, Consultas, Formulários,
Relatórios, Folhas de Dados, Macros e Módulos. Além disto, o VBA oferece um controle mais
detalhado do que as ações de macro.

As ações de macro na prática duplicam as operações que podemos realizar manualmente,


usando menus e teclas de atalho. O VBA vai além da simples automação sequencial de ações
de teclado e menus de comandos. O VBA oferece ferramentas que permitem criar aplicações
personalizadas com base nos elementos do Access e nos objetos dos bancos de dados do
Access. Por exemplo, podemos criar uma rotina em VBA em um banco de dados chamado
Exemplo.accdb. Esta rotina pode acessar dados em outro banco de dados que está na rede,
por exemplo, FolhaDePagamento.accdb. A mesma rotina além de acessar os dados pode:
calcular dados, consolidar informações, gerar os resultados no formato de uma planilha do
Excel, salvar a planilha na rede ou em uma página da Intranet da empresa, no formato HTML.
Este é apenas um pequeno exemplo do que pode ser feito.

ALGUMAS VANTAGENS EM UTILIZARMOS O VBA

No Curso de Access Avançado e introdução a VBA, você aprende a utilizar macros para
automatizar algumas tarefas como a aplicação de filtros em formulários, sincronização de
formulários, etc.

O VBA apresenta as seguintes vantagens em relação às macros:

 ACESSANDO UM OU MAIS CONJUNTOS DE REGISTROS : Com ações de macros estamos limitados


a operar 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 (File.accdb que você está trabalhando)
ou em outras banco de dados e, inclusive, com vários conjuntos de registros ao mesmo
tempo. Por exemplo, você pode 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 banco de dados do Microsoft Access. Chamamos de objeto qualquer elemento
do Access, por exemplo: uma Tabela, uma Consulta, um Formulário, Relatório, etc.
Por exemplo, poderíamos usar o VBA para acessar um conjunto determinado de
registros, através da execução de um comando SQL para a geração de um objeto do
tipo RecordSet.

 CRIAÇÃO DE FUNÇÕES DEFINIDAS PELO USUÁRIO: Este é um dos maiores benefícios do VBA.
Podemos criar funções que executam cálculos repetitivos ou cálculos para os quais o
Access não dispõe de uma função pronta.

Por exemplo, vários formulários podem conter um campo CPF ou CNPJ. Poderíamos criar,
em cada formulário, o código necessário para a validação do DV (Digito Verificador) 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, teríamos dificuldades para fazer
atualizações neste código, pois cada alteração teria que ser feita em vários locais. O ideal é
criarmos uma função para validação do DV. Em cada formulário, onde for necessário,
chamamos a função, passando o valor do campo CPF ou CNPJ como parâmetro. A função
calcula o DV e retorna o resultado para o formulário. Desta maneira precisamos criar uma
única função. Quando forem necessárias alterações, basta alterar a função (em um único
local, ou seja, no módulo onde a função foi criada) e todos os formulários passarão a
utilizar a versão atualizada da função.

o 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. Aprenderemos a utilizar todas as
estruturas de controle de fluxo e testes condicionais, mais adiante.

o 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. Não é possível a resolução de problemas que envolvem uma lógica
complexa, por exemplo, cálculo do imposto de renda, recolhimentos de
tributos, etc.
INTRODUÇÃO O VBA - VISUAL BASIC FOR APPLICATIONS
O VBA teve origem no Visual Basic. O Visual Basic é um ambiente de desenvolvimento
completo, onde podemos criar programas para o ambiente Windows. Um programa como o
Programa Para Declaração de Imposto de Renda da Pessoa Física, pode ser criado
utilizando-se o Visual Basic. Um aplicativo como compactadores de arquivo
(Winzip, Winrar, Izarc, etc...) ou como um sistema para controle de clientes e de vendas,
também poderia ser criado utilizando o Visual Basic. Já o VBA é uma linguagem bastante
poderosa, embora não seja tão poderoso 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.

É importante entender que existe uma diferença fundamental entre o Visual Basic e o VBA:
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. Já 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.

ONDE PODEMOS UTILIZAR O VBA?

Existem, basicamente, duas situações/locais diferentes onde podemos utilizar o VBA:

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. Quando o usuário altera o valor em um campo de dados e pressiona a tecla TAB
para ir para o próximo campo, são gerados dois eventos associados com o campo que foi
atualizado: "Após atualizar" e "Ao perder o foco". Também será gerado o evento
“Ao receber o foco", associado com o capo para o qual foi posicionado o cursor.
Quando o usuário dá um duplo clique em um determinado elemento de uma tela do Windows,
é disparado o evento "Ao clicar duas vezes", e assim por diante. 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. Podemos utilizar o VBA para criar
um procedimento (um procedimento é formado por um ou mais comandos e pode ser do tipo
SubProcedimento ou Função) que será executado em resposta ao evento.
Por exemplo, podemos criar 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 é
gravado juntamente com o formulário/relatório, onde está o elemento que dispara o evento.

 CRIAÇÃO DE FUNÇÕES E PROCEDIMENTOS EM MÓDULOS SEPARADOS: Se quisermos criar


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),
podemos criar funções gravadas em Módulos do Access. Um Módulo é um objeto do
Access 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, podemos
usá-lo em qualquer expressão, como se fosse uma função interna do Microsoft Access ou
chamá-lo em resposta a um evento. Criaremos, a título de exemplo, uma função chamada
MêsPorExtenso. Esta função receberá um valor numérico entre 1 e 12 e irá retornar o
nome do mês correspondente, por extenso.
MÓDULO II - VBA

OBJETIVO DA SEGUNDA ETAPA


Exibir como utilizar a programação VBA para solucionar problemas complexos no Access,
problemas que muitas vezes não tem como ser resolvidos sem o uso de programação.

AO CONCLUIR ESTÁ SEGUNDA PARTE VOCÊ ESTARÁ APTO A RESPONDER:


 De maneira mais aprofundada, o que é VBA?
 Quais são os fundamentos básicos do VBA?
 Quais são os três tipos de comandos disponíveis no VBA?

VBA

Na primeira etapa você aprendeu que é possível criar código VBA associado a eventos de
formulários ou relatórios, que é possível criar Macro que execute um procedimento do VBA e
que é possível criar funções personalizadas, usando o VBA.

Um procedimento, função ou módulo do VBA é uma sequência de comandos que são


executados para a realização de uma ou mais tarefas. Por exemplo, posso escrever um grupo
de comandos que acessa os dados da tabela Pedidos e aumenta o valor de um determinado
campo de acordo com determinadas condições.

Observe o comando a seguir:

Me![NumeroDoPedido].SetFocus

Este é um comando que, simplesmente, coloca o cursor no campo NumeroDoPedido, no


formulário atual. Não se preocupe em entender este comando, agora, pois você aprenderá a
utilizar o VBA, em detalhes.

Todo comando em VBA deve seguir algumas regras de sintaxe. A sintaxe tem a ver com a
maneira como o comando é escrito. Por exemplo, se você for utilizar a função Day() em um
comando e ao invés de Day(), utilizar Dai(), você terá cometido um erro de sintaxe e o
comando não poderá ser executado. Os erros de sintaxe são os mais fáceis de serem
identificados e corrigidos.
Os comandos do VBA são divididos, basicamente, em três tipos:

 COMANDOS BÁSICOS DO VBA: São aqueles comandos que estão presentes em toda e
qualquer linguagem de programação. 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, função IF para a realização de testes
condicionais.

 FUNÇÕES INTERNAS DO MICROSOFT ACCESS: Existem centenas de funções prontas,


fornecidas pelo Access e que podem ser utilizadas em qualquer comando do VBA.
Por exemplo, para armazenarmos em uma variável x, o valor numérico do ano da data
do sistema, poderíamos utilizar o seguinte comando:

x = Year(Date())

No Curso de Access Avançado é utilizado uma série destas funções, tais como:

Esquerda(), Direita(), Meio(), Ano(), Dia(), Mês, etc.

IMPORTANTE: Ao utilizar funções em comandos do VBA devemos, sempre, utilizar a função


em inglês. Por exemplo, ao invés de Ano() devemos utilizar Year(), ao invés de Mês() devemos
utilizar Month() e assim por diante.

 OBJETOS DA HIERARQUIA DE OBJETOS DO MICROSOFT OFFICE: Um objeto é uma entidade que


possui propriedades (que descrevem as características do objeto) e métodos (que
descrevem os comportamentos do objeto). Cada aplicativo do Microsoft Office
disponibiliza uma hierarquia de objetos bem definida. Estes objetos podem ser
acessados através de programação. Podemos utilizar os métodos dos objetos para
realizar determinadas ações sobre o objeto e suas propriedades para obter
informações sobre suas características. Esta hierarquia de objetos é que torna o VBA
tão poderoso. É graças a hierarquia de objetos do Office que, de dentro de um banco
de dados do Access, por exemplo, podemos acessar dados de uma planilha do Excel,
gravada em um drive de rede e combinar tais dados com dados obtidos a partir de um
banco de dados, por exemplo, do Dbase (.dbf), gravado na máquina local. Falaremos
sobre objetos mais adiante. Agora, apenas a título de exemplo, alguns comandos do
VBA que utilizam um objeto do tipo RecordSet para descobrir o número de registros da
tabela Pedidos:

Quando o Access executa estes comandos é emitida a seguinte mensagem:

OBS.: Não se preocupe em entender os comandos utilizados no exemplo anterior. Vamos


conhecer em detalhes, uma série de objetos, inclusive os objetos Database e RecordSet,
utilizados no exemplo anterior, nas próximas partes deste tutorial.
MÓDULO III – AMBIENTE DE PROGRAMAÇÃO

OBJETIVO
Apresentar o Ambiente de Programação VBA

AO CONCLUIR ESTÁ SEGUNDA PARTE VOCÊ ESTARÁ SERÁ CAPAZ DE:


 Descrever o que é o Ambiente de Programação VBA.
 Quais são os Aspectos Básicos do Ambiente de Programação VBA?
 Quais são os três tipos de comandos disponíveis no VBA?

O AMBIENTE DE PROGRAMAÇÃO

O ambiente de programação é, basicamente, um editor de texto com recursos adicionais, os


quais facilitam bastante o trabalho do programador. O Access fornece 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 não tivéssemos disponível um Ambiente de Programação, teríamos que lembrar a sintaxe
de todos os comandos, dos métodos e propriedades dos objetos. Isso é praticamente
impossível, pois com o VBA temos acesso a milhares de objetos. Cada objeto pode ter dezenas
de propriedades, métodos e coleções.

O ambiente de Desenvolvimento fornece uma série de facilidades enquanto estamos criando


nosso 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-se do nome dos métodos/propriedades, basta selecioná-los em uma lista. Se
selecionarmos um método, ao digitarmos 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 digitarmos um comando incorretamente, o Ambiente de Desenvolvimento
emite uma mensagem e coloca em destaque o comando que foi digitado incorretamente.
Estas são apenas algumas das facilidades fornecidas pelo Ambiente de Desenvolvimento do
VBA.

Para conhecermos melhor o referido ambiente, vamos a um O QUE É O NORTHWIND?

exemplo prático. Vamos abrir o banco de dados É um arquivo de exemplos

Northwind.accdb. que é instalado juntamente


com o Access.

1. Criaremos um novo formulário em Branco (Guia Criar)

2. Salve este formulário como 1_FrmExemploPratico, formulário este que não será
baseado em nenhuma tabela/consulta.
3. Adicione um botão de comando.

4. Se for aberto o assistente de comando clique no botão Cancelar.


5. Criaremos, manualmente, código VBA associado ao evento Ao clicar do botão de
comando. Ao criar o código veremos os principais Elementos/Vantagens do ambiente
de desenvolvimento. Utilizaremos o seguinte código:

Para criar o formulário 1_FrmExemploPratico, siga os passos indicados abaixo:

OBS.: Este exemplo é baseado na interface do Access 2007.

1. Abra o Microsoft Access.


2. Abra o banco de dados Northwind.accdb (Se você não tiver acesso ao arquivo, poderá abrir
qualquer um dos arquivos de exemplos que são instalados, automaticamente, com o Microsoft
Access).

3. Na guia Criar, no grupo Formulários, clique em Formulário em branco.


4. Localize a "Caixa de Ferramentas" e adicione um controle do tipo Botão de Comando.

5. Será aberto o "Assistente de botão de comando".

6. Dê um clique no botão Cancelar, para fechar o assistente.

7. Abra as Propriedades do botão de comando e altere o seu nome para: BotaoEx.


8. Ainda com as propriedades abertas, dê um clique na guia Evento.

Clique no evento "Ao clicar"

9. Dê um clique no botão que aparece ao lado do evento Ao abrir.

10. Na lista de opções que é exibida selecione Construtor de código, conforme indicado na
figura a seguir:

14. Dê um clique no botão OK.

You might also like