Escolar Documentos
Profissional Documentos
Cultura Documentos
Nas lies iniciais desse mdulo aprendemos a criar macros simples, as quais
reproduzem uma srie de comandos de mouse e teclado. Para que possamos criar
macros mais sofisticadas e resolver problemas mais complexos com o Excel,
precisamos utilizar programao. Conforme descrito anteriormente, a linguagem de
programao do Excel (e de todos os aplicativos do Office) o VBA: Visual Basic
for Application.
Uma linguagem de programao, basicamente, um conjunto de comandos, rotinas e
funes que executam tarefas especficas. Considere o exemplo genrico a seguir,
onde so utilizados comandos para acessar uma tabela do access a partir de uma
planilha do Excel:
Comentrios iniciais do Programa.
Acessa dados da tabela pedidos do banco de dados
C:\Meus documentos\vendas.mdb
Acessar o banco de dados
Acessar a tabela Pedidos
Aplicar um filtro para Pas=Brasil
Exibir os dados obtidos na planilha atual
Formatar a primeira linha com negrito
Formatar a primeira linha com fonte azul
Encerrar a macro
Por que eu preciso aprender a usar o VBA?
A utilizao de Macros em conjunto com os recurso do VBA nos oferece um grande
nmero de opes na busca por solues para os problemas mais complexos. Porm
existem situaes em que, por mais que saibamos utilizar todos os recursos,
comandos e funes do Excel, essa utilizao no capaz de solucionar o
problema proposto. Nestas situaes temos que utilizar programao.
A linguagem de programao utilizada pelo Microsoft Excel o VBA - Visual Basic
for Applications. Conforme veremos a partir de agora esta uma linguagem, ao
mesmo tempo, extremamente simples e poderosa. Com o VBA temos acesso completo a
todos os elementos de todos os objetos de uma planilha do Excel. Tambm temos
acesso a elementos externos, tais como bancos de dados do Access. Com cdigo VBA
podemos criar uma rotina para validao do dgito verificador de uma clula de
CPF, CNPJ ou de um campo NmeroDoProcesso; podemos criar cdigo que percorre
todas as linhas de uma planilha, alterando os valores de uma ou mais colunas,
com base em uma ou mais condies, podemos automatizar rotinas para importao e
exportao de dados e assim por diante.
Nesta introduo a linguagem VBA, trataremos dos seguintes assuntos:
1.Programao com o Microsoft Excel.
2.Introduo a linguagem VBA - Visual Basic For Applications.
3.Aprendendo VBA:
Uma viso geral.
O Ambiente de Programao.
Anatomia dos Mdulos do VBA.
Tipos de dados.
Variveis.
Escopo de Variveis.
Estruturas de controle, etc.
4.Exerccios e Exemplos.
5.Funes e procedimentos.
6.Funes de Data e Hora.
1.Programao com o Microsoft Excel - Por que utilizar?
O VBA nos oferece possibilidades de controle e personalizao para criar
aplicativos que vo alm das aes de macro.
O VBA uma linguagem de programao interna do Microsoft Excel (na prtica a
linguagem de programao para todos os aplicativos do Office: Access, Word,
Excel e Power Point). Usamos o VBA pelo mesmo motivo que utilizamos macros -
para automatizar tarefas e rotinas repetitivas, envolvendo os diversos elementos
do banco de dados (tabelas, consultas, formulrios, relatrios, folhas de dados,
macros e mdulos). No entanto, o VBA oferece maior poder e controle mais
detalhado do que as aes de macro.
Na prtica as aes de macro duplicam as operaes que podemos realizar
manualmente, usando menus e teclas de atalho. O VBA vai alm da simples
automao de seqncias de aes. Ele oferece um conjunto de ferramentas que lhe
permite criar aplicaes personalizadas com base nos elementos do Excel e nos
objetos de planilha do Excel. Por exemplo, podemos criar uma rotina em VBA em
uma planilha do Excel. Esta rotina pode acessar dados em ums segunda planilha
que est na rede, por exemplo. A mesma rotina alm de acessar os dados pode
fazer clculos, consolidaes, gerar os resultados no formato de uma planilha do
Excel e salvar a planilha na rede. Este apenas um pequeno exemplo do que pode
ser feito como o VBA.
Vantagens em utilizarmos o VBA:
J utilizamos macros e aprendemos a automatizar algumas tarefas como a aplicao
de formatos personalizados. O VBA apresenta, em relao as macros, as seguintes
vantagens:
Acessando dados de uma ou mais planilhas: Com aes de macros estamos limitados
a operar com os registro ou com o conjunto de registros atualmente sendo exibido
na pasta de trabalho atual O VBA permite trabalhar com qualquer conjunto de
dados, quer seja da pasta de trabalho atual, quer seja de outra pasta de
trabalho na rede ou com outros formatos de dados, como por exemplo de
arquivos .txt ou bancos de dados do Microsoft Access.
Manipulao de objetos: O VBA oferece mtodos de criao e modificao dos
objetos de uma planilha no Excel (assunto que ser abordado nas lies do Mdulo
6). Chamamos de objeto qualquer elemento do Microsoft Excel, por exemplo: uma
planilha, uma faixa de clulas, um grfico, etc.
Criao de funes definidas pelo usurio: Este um dos maiores benefcios do
VBA. Podemos criar funes que executam clculos repetitivos. Por exemplo,
vrios planilhas podem conter um campo CPF ou CNPJ. Poderamos criar, em cada
planilha, o cdigo necessrio para a validao do DV do CPF ou CNPJ. Porm este
procedimento no o mais indicado, pois alm da duplicao do cdigo necessrio
a validao, teramos dificuldades para fazer atualizaes neste cdigo, pois
cada alterao necessria ter que ser feita em vrios locais. O ideal
criarmos uma funo para validao do DV (uma funo deve ser criada dentro de
um mdulo. Trataremos disso mais adiante.). Em cada planilha, onde for
necessria, chamamos a funo, passando o valor do CPF como parmetro. A funo
calcula o DV e retorna o resultado para a planilha. Desta maneira precisamos
criar uma nica funo. Quando forem necessrias alteraes, basta alterar a
funo (em um nico local, ou seja, no mdulo onde a funo foi criada) e todos
os formulrios passaro a utilizar a verso atualizada da funo.
Definio de condies e controle de fluxo: O VBA oferece uma variedade de
comandos e estruturas para a realizao de testes condicionais e para a
repetio de um conjunto de comandos. Aprenderemos a utilizar todas as
estruturas de controle de fluxo e testes condicionais, mais adiante.
Realizao de clculos complexos e soluo de problemas que envolvem uma lgica
complexa: Com macros impossvel a realizao de clculos mais complexos,
simplesmente atravs da automao de comandos de teclado e mouse. Tambm no
possvel a resoluo de problemas que envolvem uma lgica complexa, como por
exemplo clculo do imposto de renda, recolhimentos de tributos, etc.
Dim x, y, z As Integer
x = 10
y = 25
z = x*y
Nesse exemplo a varivel z conter o valor 250
Vamos fazer um pequeno teste com os comandos para declarao de variveis.
Exemplo: Acessar o Editor VBA para alterar a macro AplicaNegrito, da planilha
C:\ExcelAvancado\Mdulo 5 Exemplo VBA.xls.
Abra o Excel.
Abra a Planilha C:\ExcelAvancado\ Mdulo 5 Exemplo VBA.xls.
Como existem macros j criadas, o Excel pede uma confirmao, perguntando se voc
deseja ativar as macros existentes. Essa confirmao solicitada devido ao perigo
representado pelos vrus de Macro, que podem afetar os aplicativos do Microsoft
Office.
Clique no boto Ativar Macros.
A planilha ser aberta.
Nessa planilha existe uma macro chamada AtivaNegrito. Vamos editar essa macro. O
nosso objetivo utilizar o comando Dim para declarar algumas variveis e os
operadores aritmticos para fazer alguns clculos. Os valores dos clculos sero
exibidos quando a macro for executada.
Selecione o comando Ferramentas -> Macro -> Macros...
Ser exibida a janela Macro.
Clique na macro AplicaNegrito para seleciona-la.
Clique no boto Editar.
Ser aberto o editor do VBA e o cdigo associado macro AplicaNegrito.
Altere o cdigo, para que fique conforme indicado na listagem a seguir:
Exemplo de utilizao de variveis e operadores aritmticos
Curso: Excel Avanado em 120 Lies.
Autor: Jlio Battisti
Site: www.juliobattisti.com.br
Selection.Font.Bold = True
Dim a As Integer
Dim b As Integer
Dim som, subtr, divis, mult, intdivs, expo, modul As Double
a = 25
b = 3
Uso os operadores aritmticos para efetuar clculos
som=a+b
subtr=a-b
divis=a/b
mult=a*b
intdivs=a\b
expo=a^b
modul= a mod b
'Uso de MsgBox para exibir os resultados.
MsgBox "Os nmeros so: " & a & " e " & b & Chr(13)
MsgBox "Soma: " & som & Chr(13)& "Subtrao: " & subtr & Chr(13)
MsgBox "Diviso: " & divis & Chr(13)& "Multiplicao: " & mult & Chr(13)
MsgBox "Diviso inteira: " & intdivs & Chr(13)& "Exponenciao: " & expo & Chr(13)
MsgBox "Resto da diviso: " & modul
Aps digitar o cdigo feche o Editor do VBA.
Salve a Planilha.
Clique na clula F2.
Pressione Ctrl+Shift+K para executar a macro AtivaNegrito.
Ser exibida a seguinte mensagem:
If x>y Then
Comandos a serem executados quando x for maior do que y
Comando 1
Comando 2
...
Comando n
Else
Comandos a serem executados quando x for menor ou igual a y
Comando 1
Comando 2
...
Comando n
End If
If x>y Then
Comandos a serem executados quando x for maior do que y
Comando 1
Comando 2
...
Comando n
ElseIf x=y Then
Comandos a serem executados quando x for igual a y
Comando 1
Comando 2
...
Comando n
Else
Comandos a serem executados quando x for menor do que y
Comando 1
Comando 2
...
Comando n
End If
Podemos utilizar tantos ElseIf, quantos forem necessrios. Cada ElseIf utilizado
para fazer um teste adicional.
Na Tabela a seguir temos uma descrio dos operadores de comparao.
Operadores de comparao do VBA:
Operador Smbolo Descrio
Igualdade = igual .
Diferente <> diferente de.
Maior que > maior do que.
Menor que < menor do que.
Maior ou igual a >= maior ou igual a.
Menor ou igual a <= menor ou igual a.
Exemplo: Acessar o Editor VBA para alterar a macro AplicaNegrito, da planilha
C:\ExcelAvancado\Mdulo 5 Exemplo VBA.xls.
1. Abra o Excel.
2. Abra a Planilha C:\ExcelAvancado\ Mdulo 5 Exemplo VBA.xls.
3. Como existem macros j criadas, o Excel pede uma confirmao, perguntando se
voc deseja ativar as macros existentes. Essa confirmao solicitada devido ao
perigo representado pelos vrus de Macro, que podem afetar os aplicativos do
Microsoft Office.
4. Clique no boto Ativar Macros.
5. A planilha ser aberta.
6. Nessa planilha existe uma macro chamada AtivaNegrito. Vamos editar essa
macro. O nosso objetivo utilizar as estruturas If...Then...Else e os operadores
de comparao.
7. Selecione o comando Ferramentas -> Macro -> Macros...
8. Ser exibida a janela Macro.
9. Clique na macro AplicaNegrito para seleciona-la.
10. Clique no boto Editar.
11. Ser aberto o editor do VBA e o cdigo associado macro AplicaNegrito.
12. Altere o cdigo, para que fique conforme indicado na listagem a seguir:
Selection.Font.Bold = True
Declarao das variveis.
x=12
y=15
z=20
k=15
If x<y Then
MsgBox "x menor do que y."
Else
MsgBox "x maior do que y."
End If
If y<x Then
MsgBox "Y menor do que x"
Else
MsgBox "Y maior do que x"
End If
If y<=k Then
MsgBox "y menor ou igual k"
Else
MsgBox "Y maior do que k"
End If
If x<>z Then
MsgBox "x e z so diferentes"
End If
Comparao Resultado
Entre duas variveis com valores Comparao normal.
numricos.
Entre duas variveis com valores efetuada uma comparao entre
do tipo texto. valores de texto. Por exemplo Xuxa
maior do que Abel (X vem depois do A).
Uma das variveis possui um valor O valor numrico ser sempre
numrico e outra possui um valor considerado menor do que o valor de
de texto texto.
Uma das variveis possui um valor Efetua uma comparao numrica,
numrico e a outra est vazia. atribuindo 0 (zero) para a varivel
vazia.
Uma varivel possui um valor de Efetua uma comparao de texto,
texto e a outra est vazia, sem atribuindo texto de comprimento zero
valor. (" ")para a varivel vazia.
As duas variveis possuem um So consideradas iguais.
valor vazio.