Você está na página 1de 12

Lio 06: Introduo ao VBA

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.

Lio 07: O Ambiente de Programao o Editor VBA


O Microsoft Excel fornece um ambiente de programao bastante poderoso, com uma
srie de recursos que facilitam a criao de cdigo VBA. Neste tpico vamos
aprender a utilizar os aspectos bsicos do Ambiente de Programao do VBA.
Se no tivssemos disponvel um Ambiente de Programao, teramos que lembrar da
sintaxe de todos os comandos, dos mtodos e propriedades dos objetos. Convenhamos
que isso praticamente impossvel, pois com o VBA temos acesso a milhares de
objetos ( isso mesmo: milhares de objetos, comandos e funes. Por enquanto estou
utilizando bastante o termo objeto, sem t-lo ainda explicado. Mais adiante
detalharei o conceito de classes, mdulos e objetos). Cada objeto pode ter dezenas
de propriedades, mtodos e colees. O ambiente de Desenvolvimento fornece uma
srie de facilidades para a criao de cdigo VBA. Por exemplo, ao digitar o nome
de um objeto e um ponto ser aberta, automaticamente, uma lista com todos os
mtodos e propriedades deste objeto. Ao invs de lembrar do nome dos
mtodos/propriedades, basta selecion-los em uma lista. Se selecionarmos um
mtodo, ao digitarmos o parnteses de abertura, ser exibida uma lista com os
argumentos esperados pelo mtodo, bem como o tipo (texto, nmero, 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 so apenas algumas das facilidades fornecidas pelo Ambiente
de Desenvolvimento do VBA.
Para conhecermos melhor o referido ambiente, vamos a um exemplo prtico. Vamos
abrir uma planilha, que contm uma macro chamada AplicaNegrito e editar essa
macro. Lembre que para editar uma macro, temos que acessar o cdigo VBA associado
macro. Isso feito no Editor do VBA.
Exemplo 3: Acessar o Editor VBA para alterar a macro AplicaNegrito, da planilha
C:\ExcelAvancado\Mdulo 5 Exerccio 03.xls.
Abra o Excel.
Abra a Planilha C:\ExcelAvancado\Mdulo 5 Exerccio 03.xls.
Como existem macros j criadas, o Excel pede uma confirmao, perguntando se voc
deseja ativar as macros existentes, conforme indicado na Figura 5.14. 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 conhecer alguns detalhes sobre o Editor do VBA.

Figura 5.14 Confirmao para ativao de macros, na abertura da planilha.


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.
Na Figura 5.15 temos a descrio de algumas partes da janela do editor VBA.
Figura 5.15 O Editor VBA.
No lado esquerdo da tela temos duas janelas:
Project VBA Project: Nessa janela so exibidos os vrios elementos que fazem
parte da Pasta de trabalho atual. Aqui so exibidas as planilhas e mdulos da
pasta de trabalho (arquivo .xls) carregado no Excel. Ao criarmos uma macro podemos
cria-la em uma determinada planilha. Os mdulos so utilizados para criar funes
e procedimentos que podem ser chamados em todas as planilhas da pasta de trabalho
atual. Aprenderemos mais sobre funes e procedimentos nas prximas lies.
Janela na parte de baixo: A janela abaixo da janela Project, exibe as propriedades
do elemento selecionado na janela Project. Por exemplo, ao selecionar Plan1, na
janela Project, na janela de baixo sero exibidas as propriedades de Plan1,
conforme indicado na Figura 5.16:

Figura 5.16 Propriedades da Planilha.


13. Feche o Editor do VBA e a planilha.
Nas prximas lies veremos mais algumas funcionalidades do Editor VBA.

Lio 08: VBA Declarao de Variveis


Agora vamos iniciar o estudo de uma srie de comandos e conceitos bsicos da
linguagem VBA. Esses comandos sero utilizados nas lies do Mdulo 6, onde
apresentaremos alguns exemplos prticos do uso do VBA para soluo de problemas
com o Excel.
Iniciaremos o nosso estudo de VBA pela definio do conceito de variveis a
aprendendo a declarar variveis no VBA.
Nota: A medida que os conceitos forem sendo apresentados, faremos alguns testes.
Para os testes utilizarei a macro AplicaNegrito. Para testar um determinado
comando vamos acessar o cdigo VBA da macro AplicaNegrito (conforme descrito na
lio anterior) e inserir os comandos a serem testados. Em seguida voltaremos para
a planilha e executaremos a Macro para testar os comandos. Para facilitar o
processo de execuo da Macro usaremos a combinao de teclas Ctrl+Shift+K, a qual
est associada macro.
Declarao de variveis e tipos de dados:
Uma varivel um espao na memria do computador, reservado para armazenar um ou
mais valores. Fazemos referncia a este espao utilizando nomes. Como o valor
armazenado pode variar, a medida que o cdigo VBA executado, estas estruturas
so chamadas de variveis.
No VBA, no obrigatrio a declarao de variveis. Porm recomendvel que
declaremos todas as variveis, de tal forma que o cdigo fique mais claro e de
fcil compreenso. Para declararmos uma varivel, utilizamos o comando Dim,
conforme exemplificado abaixo:
Dim x
Dim nome
Dim teste
Neste caso estamos apenas declarando o nome da varivel, sem declarar de que tipo
(texto,inteiro, data, etc) a varivel. Uma varivel declarada sem tipo
considerada do tipo Variant, o que na prtica significa que a varivel pode conter
qualquer tipo de valor. Pode parecer uma prtica interessante a no declarao do
tipo da varivel, porm isso altamente desaconselhvel. Se no declararmos o
tipo, conforme descrito anteriormente, a varivel poder conter qualquer valor.
Neste caso o que impede de um campo numrico conter valores de texto ou vice-
versa??
A sintaxe para o comando Dim a seguinte:
Dim nome_da_varivel As tipo_da_varivel
Tambm podemos declarar mais do que uma varivel, com um nico comando Dim. Para
isto, basta separar as variveis, com vrgula, conforme exemplificado abaixo:
Dim x,y,z As String
Dim nome as Double
Dim teste1, teste2 As Integer
IMPORTANTE: Observe que definimos o tipo de cada varivel. O Tipo define quais
dados podem ser armazenados em uma varivel. Por exemplo, variveis que armazenam
valores numricos, no devem aceitar caracteres de texto. Variveis que armazenam
datas, no devem aceitar datas invlidas, como por exemplo 30/02/2001. Toda
varivel no VBA, do tipo Variant, isto significa que a varivel pode ser de
qualquer tipo. O que define o tipo da varivel o valor que est armazenado no
momento. Existem funes que converso de tipo, conforme veremos mais adiante.
Tambm podemos utilizar variveis que no foram, explicitamente, declaradas com o
comando Dim. Com isso, a varivel criada na memria, no momento da sua
utilizao. Para fazer com que toda varivel tenha que ser, explicitamente,
declarada, antes de ser utilizada, devemos utilizar o seguinte comando na seo de
declarao do mdulo:
Option Explicit
Ao colocarmos este comando na seo de declarao do mdulo, estamos definindo que
toda varivel deve ser declarada, antes de ser utilizada em uma expresso. Se
tentarmos utilizar uma varivel no declarada, ser gerado um erro de compilao e
a execuo dos comandos suspensa. Na Listagem 1, temos um exemplo simples de
utilizao de variveis no declaradas explicitamente.
Listagem 1 Utilizao de variveis no declaradas.
Dim a As Integer
Dim b As Integer
a=5
b=2
c=a+b
Msgbox "A varivel C vale: " & c
Ao tentarmos executar este cdigo, tendo sido definida a opo "Option Explicit",
obteremos a mensagem de erro indicada na prxima figura. Este erro acontece porque
tentamos utilizar uma varivel c, varivel esta que no foi declarada.

O tipo Variant formado de pequenas unidades, chamadas subtipos. Cada subtipo,


identifica de que maneira os dados so armazenados em uma varivel do tipo Variant
Por exemplo, variveis do subtipo Integer so armazenadas de uma maneira diferente
de variveis do subtipo Long. Na Tabela a seguir temos uma descrio dos
principais subtipos.
Tabela - Subtipos do tipo Variant disponveis no VBA:
Subtipo Subtipo
Empty O Valor zero para variveis numricas ou uma String
de tamanho zero ( ), para variveis de texto.
Null A varivel no contm dados vlidos.
Boolean Contm variveis que somente podem assumir dois
valores:Verdadeiro ou Falso (True ou False).
Byte Valor inteiro, na faixa de 0 at 255.
Integer Valor inteiro, na faixa de -32768 at 32767.
Currency Valores na faixa de 923.337.203.685.447,5808 at
922.337.203.685.447,5807
Long Valor inteiro, na faixa de 2.147.483.648 at
2.147.483.647.
Date(Time) um nmero que representa a data entre 01 de Janeiro
do ano 100, at 31 de Dezembro de 9999 (Olha o bug do
ano 10000 chegando).
String Texto de tamanho varivel, pode conter,
aproximadamente, 2 bilhes de caracteres.
Object Pode conter um objeto qualquer, como um Controle
Activex, ou um Objeto COM+
Error Pode conter um nmero de erro.
Antes de fazermos alguns exemplos prticos, vamos aprender um pouco mais sobre o
uso de variveis no VBA. Vamos falar sobre operadores aritmticos e de comparao.
Mas isso j assunto para a prxima lio.

Lio 09: VBA - Clculos, Operadores Aritmticos e Exemplos


Fazendo clculos e comparaes com o VBA Operadores Aritmticos.
Para realizarmos clculos e comparaes entre variveis, podemos utilizar
operadores. Neste item trataremos sobre operadores aritmticos e operadores de
comparao.
Fazendo clculos com os Operadores aritmticos:
Podemos realizar clculos no VBA, utilizamos operadores aritmticos. Na Tabela a
seguir, temos uma descrio dos operadores que podemos utilizar:
Operadores Aritmticos do VBA:
Operador Smbolo Descrio
Adio + Soma o valor de duas ou mais variveis.
Subtrao - Subtrao entre duas ou mais variveis.
Multiplicao * Multiplica os valores de duas ou mais variveis.
Diviso / Divide o valor de duas ou mais variveis.
Inteiro da \ Retorna a parte inteira, da diviso entre dois
Diviso entre nmeros.
dois nmeros
Exponenciao ^x^y -> o valor do nmero x, elevado na potncia
y
Modulo Mod Retorna o resto de uma diviso de 2 nmeros.
Considere o pequeno trecho de cdigo a seguir, onde declaramos as variveis x, y e
z. Atribumos valores a essas variveis e em seguida fazemos algumas operaes. As
linhas que iniciam com um apstrofe so simplesmente comentrios. Toda linha que
iniciar com um apstrofe ser desconsiderada pelo VBA. Os comentrios so
importantes para documentao do cdigo.
Listagem Exemplo de uso de operadores aritmticos:
Exemplo de utilizao de variveis e operadores aritmticos
Curso: Excel Avanado em 120 Lies.
Autor: Jlio Battisti
Site: www.juliobattisti.com.br

Declarao das variveis.

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

Declarao das variveis.

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:

D um clique no boto OK.


Ser exibida a seguinte mensagem:

D um clique no boto OK.


Ser exibida a seguinte mensagem:

D um clique no boto OK.


Ser exibida a seguinte mensagem:

D um clique no boto OK.


Ser exibida a seguinte mensagem:

D um clique no boto OK.


Voc estar de volta planilha e a clula F2 estar formatada com Negrito.
Mantenha a planilha aberta pois iremos utiliza-la nas demais lies desse mdulo.
Neste exemplo utilizamos os operadores aritmticos, para realizar uma srie de
operaes com os valores atribudos s variveis a e b. Depois utilizamos a
funo MsgBox (que um comando interno do prprio VBA), para exibir os resultados
obtidos.
O uso da funo MsgBox, merece alguns comentrios. Primeiro, utilizamos a funo
MsgBox, para exibir mensagens em uma pequena janela, chamada de Janela Pop-Up (que
a janela exibida nas figuras desse exemplo). Podemos exibir texto e tambm
valores de variveis. Quando temos que exibir diversos componentes, como um pouco
de texto, em seguida o valor de uma varivel, depois mais texto, e assim por
diante, devemos utilizar o operador de concatenao: &. Este operador permite que
as diversas partes sejam exibidas como uma nica mensagem. Considere o exemplo da
seguinte linha de cdigo:
MsgBox "Os nmeros so: " & a & " e " & b & Chr(13)
Neste exemplo, primeiro exibido o texto: "Os nmeros so:" , logo em seguida o
valor da varivel a. Observe que as duas partes so concatenadas com o operador &.
Depois concatenamos o valor da varivel b, e finalmente utilizamos a funo
Chr(13). A funo Chr(nmero), envia o caractere correspondente ao nmero digitado
entre parnteses. Este nmero, o nmero do caractere no padro ASCII (American
Standard Caracter Interchange Information). No cdigo ASCII, cada caracter possui
um nmero associado. No caso o nmero 13, associado ao <ENTER>. Com isso estamos
enviando um <ENTER>, para a caixa de mensagem, o que equivale a uma troca de
linha. Assim utilizamos o Chr(13), para simular um <ENTER>, de tal maneira que os
dados no saiam todos emendados, na mesma linha.
Com o uso dos operadores aritmticos , realizamos uma srie de operaes sobre as
variveis existentes no cdigo da macro AplicaNegrito.
Vamos avanar um pouco mais no nosso estudo sobre operadores. Vamos tratar dos
operadores de comparao. Esse justamente o assunto da prxima lio.

Lio 10: Estrutura If...Then e os Operadores de Comparao


Comparando valores com os Operadores de comparao.
Em determinadas situaes, existe a necessidade de efetuarmos comparaes entre os
valores de duas ou mais variveis ou expresses. Com base no resultado da
comparao Verdadeiro ou Falso -, a execuo do cdigo VBA pode seguir caminhos
diferentes. Normalmente utilizamos comparaes, nas estruturas de controle do
cdigo, tambm conhecidas como laos de controle. Para que possamos estudar os
operadores de comparao, vamos apresentar uma das estruturas de controle mais
simples que existem no VBA, a estrutura If Then Else. Abaixo temos um exemplo do
funcionamento da estrutura If Then Else:

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

Conforme podemos ver, a estrutura If Then Else, bastante simples. Fazemos um


teste no incio da estrutura. Se o valor do teste for verdadeiro, executamos os
comandos na seqncia, caso contrrio, executamos os comandos aps o Else. Note
que utilizamos o operador de comparao maior do que: >, no caso x>y, estamos
testando se x maior do que y. Logo em seguida apresentaremos detalhes sobre os
operadores de comparao disponveis no VBA. Podemos utilizar laos If Then Else
mais complexos, como os do exemplo:

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:

Exemplo de utilizao de estruturas If e operadores de comparao.


Curso: Excel Avanado em 120 Lies.
Autor: Jlio Battisti
Site: www.juliobattisti.com.br

Selection.Font.Bold = True
Declarao das variveis.

Dim x,y,z,k As Integer

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

13. Aps digitar o cdigo feche o Editor do VBA.


14. Salve a Planilha.
15. Clique na clula F3.
16. Pressione Ctrl+Shift+K para executar a macro AtivaNegrito.
17. Ser exibida a seguinte mensagem:

18. D um clique no boto OK.


19. Ser exibida a seguinte mensagem:

20. D um clique no boto OK.


21. Ser exibida a seguinte mensagem:
22. D um clique no boto OK.
23. Ser exibida a seguinte mensagem:

24. D um clique no boto OK.


25. Voc estar de volta planilha.
26. Mantenha a planilha aberta pois iremos utiliza-la nas demais lies
desse mdulo.

O uso de Operadores de comparao, amplia o leque de possibilidades para nossos


programas em VBA. Devemos ter alguns cuidados quando comparamos variveis que
possuem valores de tipos diferentes, como por exemplo, nmero e texto. A Tabela a
seguir descreve o que acontece, quando comparamos variveis com valores de tipos
diferentes.

Comparando valores de tipos diferentes.

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.

Com a utilizao dos operadores aritmticos e de comparao, ampliamos bastante o


leque de opes, na criao de cdigos com o VBA. Na prxima lio, veremos alguns
detalhes sobre Escopo de variveis.

Você também pode gostar