Buscar

Excel_VBA2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Avançado
8 OneClick
Trabalhando
com VBA
as edições anteriores da revista One Click, falamos
um pouco a respeito da criação de macros e alguns
aspectos básicos da utilização do Visual Basic
Apllication no desenvolvimento de funções programadas e
outras aplicações que necessitam de recursos avançados.
Como você já sabe, o VBA é uma linguagem de programa-
ção que permite a resolução de problemas mais complexos
dentro do Excel. No entanto, isso acaba exigindo uma maior
dedicação por parte do usuário, pois tal linguagem requer
um conhecimento mínimo em lógica de programação. Mas
você deve estar se perguntando: será que vale a pena
N
Descubra a linguagem de programação do Microsoft Office e torne-se um
expert no desenvolvimento de funções, macros e planilhas eletrônicas
Retornar à planilha Excel
Salvar a planilha
Instruções do VBA
Planilhas e módulos ativos
Comandos de execução do programa
Área de trabalho
Visão geral do ambiente do VBA
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
aprender a utilizar esse recurso em minhas planilhas eletrô-
nicas mesmo não conhecendo nada de programação? É cla-
ro que sim pois, com a prática, você poderá criar sistemas
complexos de cadastro de produtos, clientes e fornecedo-
res, desenvolver planilhas para serem vendidas a empre-
sas de pequeno e médio porte, além de outras soluções
que vão depender apenas do seu nível de criatividade.
Nesta edição, você aprenderá alguns aspectos avançados
sobre esta poderosa ferramenta disponível no Excel para
a criação de códigos VBA e poderá aumentar o seu nível
de conhecimento dentro do aplicativo.
trabalhando VBA.p65 5/2/2004, 19:558
9OneClick
Objetos no VBA
Antes de compreender o que
é VBA, vamos entender o que
são objetos. Temos vários ob-
jetos dentro de um aplicativo,
por exemplo, uma barra de
ferramentas, uma planilha
aberta, uma caixa de texto,
etc. Tudo isso é considerado
um objeto. Portanto, o objeto
é algo controlável por meio
da linguagem VBA, sendo usa-
do para a execução de tarefas
do Excel.
Toda vez que é informado ao
VBA o que desejamos execu-
tar em sua interface, não nos
referimos diretamente a um
objeto, mas a uma coleção de
objetos. Assim, temos de nos
referir à coleção de objetos à
qual ele pertence e depois ao
item desta coleção o qual de-
sejamos alterar. Por exemplo:
WorkSheets (Pasta1.xls”)
Range (“A1:C3”).Select
Workbooks (1)
Os objetos no VBA formam
uma hierarquia e, abaixo des-
ses níveis, temos outros obje-
tos, tais como:
-Workbooks;
- AddIns;
Na janela do Visual Basic, você pode
visualizar três ícones que alteram o
modo de visualização de sua estrutura:
 Exibir códigos: Exibe a janela
de módulo que contém o código
em VBA que está associado ao ob-
jeto selecionado.
 Exibir objeto: Vai alternar en-
tre a janela do editor do Visual
Basic e a janela original da aplica-
ção com o objeto selecionado.
 Alternar pastas: Alterna a exi-
bição da janela Explorer do proje-
to entre a hierarquia dos objetos e
uma lista simples dos mesmos.
Já suas pastas serão representadas por
um tipo de ícone diferente, observe:
VBA Project: Permite a abertura
de todos os objetos de uma pasta de
trabalho. (Pasta 1) é o nome do arqui-
vo que está sendo editado no mo-
mento. Ao gravar, será substituído
pelo nome do arquivo. Podemos
visualizar objetos tais como planilhas,
formulários, módulos, entre outros.
 Pasta de trabalho: É a referên-
cia da pasta de trabalho que está
aberta no momento, e também vai
conter todos os eventos (procedi-
mentos) pertencentes a essa pasta,
tais como abrir, fechar, inicializar, etc.
 Plan1: Exibe a folha de código com
as rotinas para a planilha específica.
 Módulos: Abre uma tela com os
códigos existentes para a criação
de rotinas (macros) diversas para
esta pasta de trabalho.
 Módulos de Classe: Vai abrir
uma tela (página) com os módulos
(rotinas) de classe desta aplicação.
Os ícones
de sua janela
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
- MenuBars;
- ToolBar;
- Windows.
Para nos referirmos a eles, é
necessário digitar a que cole-
ção os mesmos pertencem e
qual é o objeto, veja:
Apllication.Woorkbooks(“
Minha Planilha”)
Na maioria das vezes, fazemos
este tipo de referência a uma
planilha ou às suas células,
portanto os objetos ativos po-
dem ser:
- ActiveCell;
- ActiveDialog;
- ActiveMenuBar;
- ActivePrinter;
- ActiveWindow;
- ActiveChart;
- ActiveX;
- ActivePanel;
- ActiveSheet;
- ActiveWorkbook.
Exemplo:
Sub AlteraExibição()
With Active Window
 .DisplayGridlines = False
 .DisplayHeadings = False
 .Zoom = 75
End With
End Sub
Logo depois de criar o seu projeto no VBA, tudo o que você mais de-
seja é testá-lo, não é mesmo? Para isso, basta clicar no botão Executar
 localizado na barra de ferramentas do editor do programa e pres-
sionar a seqüência de teclas Alt + F11 para voltar à janela do Excel e
verificar o resultado final do seu trabalho. Assim, você conseguirá
muito mais agilidade e praticidade no momento de criar macros,
programas e outras aplicações que utilizam códigos e funções avan-
çadas em sua execução
Dica:
trabalhando VBA.p65 5/2/2004, 19:559
Avançado
10 OneClick
3 Como podemos notar, não há nenhum projeto carregado. Clique duas ve-
zes na planilha 1 para abrir um novo projeto.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
O editor do VBA
Com certeza, você deve conhecer um amigo ou até mesmo um
parente que passou anos exercendo uma mesma função dentro de
uma empresa e ficou se perguntando como ele nunca enjoou de rea-
lizar a mesma tarefa todo esse tempo. Pra falar a verdade, não pode-
mos dizer que ele nunca enjoou de fazer a mesma coisa todos os
dias. A realidade é que ele acabou se acostumando com essa rotina.
O mesmo acontece com os usuários de computador que passam ho-
ras usando programas para desenvolver seus trabalhos e atividades
diárias, e não fazem idéia do potencial que se esconde por trás das
ferramentas Microsoft Office. Um dos exemplos mais comuns é o edi-
tor do VBA que a maioria dos usuários nunca nem se quer teve a curi-
osidade de abrir e conhecer suas funções. Então, o que você acha de
dar uma espiadinha na janela desse incrível editor? Vamos lá?
2 Será aberta automaticamente pelo programa uma janela que o levará ao ambien-
te de codificação de programas, que também é acessado com as teclas Ctrl + F11.
1 Para acessar o editor do VBA no Excel, clique no menu Ferramentas, esco-
lha Macros e, em seguida, selecione Editor do Visual Basic.
Pronto, agora é só salvar o seu trabalho e clicar no botão Executar
para testar a funcionalidade do programa. Viu como é fácil?
2 Em seguida, com a janela aberta na tela do seu computador,
digite as seguintes linhas de código:
Sub CalcPay ()
On Error GoTo HandleError
Dim hours
Dim hourlyPay
Dim payPerWeek
hours = InputBox(“Digite o número de horas trabalhadas”,
“Horas trabalhadas”)
hourlyPay = InputBox (“Digite o valor da hora”, “ Valor ”)
payPerWeek = CCur (hours * hourlyPay)
MsgBox “ Valor: ” & Format (payPerWeek,
“S##,##0.00”, , “ Total Pay ”
HandleError:End Sub
1 Acesse o editor do VBA, clique no menu Ferramentas/Macros e,
em seguida, selecione a opção Editor do Visual Basic.
3
Como programar
Para se tornar um expert em VBA, é necessário primei-
ramente que todo usuário inicie o seu trabalho criando
programas com códigos e instruções simples. Isso certa-
mente irá facilitar e melhorar a assimilação dos coman-
dos utilizados pela linguagem e o ajudará a aprimorar
suas técnicas de programação.
No exemplo a seguir, você aprenderá a confeccionar
uma simples macro que calcula o número de horas tra-
balhadas de um funcionário de uma empresa. Confira!
trabalhando VBA.p65 5/2/2004, 19:5610
11OneClick
Os comandos do VBA
O Visual Basic Apllication ou VBA, como é mais conhecido, possui um número muito grande de comandos e instruções que
são utilizados para codificar e executar uma determinada tarefa no Excel. Neste exemplo, vamos demonstrar algumas das
muitas utilizações de dois comandos específicos: o Active e o Select. Acompanhe:
1 2 O comando fez com que uma certa quantidade de células da planilha fi-
cassem selecionadas, tudo isso graças à instrução Range, que demarca o
espaço entre as células A1 até B6, como mostra a figura.
4 Execute o programa. Como você pode perceber, o comando fez com que
o cursor se posicionasse diretamente na célula B1. Você pode incluir esse
comando em um programa para encontrar uma célula vital.
Select: seleciona células da planilha por meio de um Range, ou seja, de um
intervalo de seleção. A sintaxe para o comando é a seguinte: Range
(“A1:B6”). Select. Para testar, insira um novo módulo e digite o código acima.
3 Active: posiciona o cursor em uma determinada célula da sua planilha.
Sua sintaxe é a seguinte: Range (“B1”).Active. Para testar o comando,
substitua o código do Select pelo citado neste passo.
trabalhando VBA.p65 5/2/2004, 19:5611
12 OneClick
Avançado
Programando em VBA
Criar um programa em qualquer lingua-
gem de programação é uma tarefa que re-
quer um pouco de estudo e dedicação. Por
exemplo, se você tem um cliente que quer
implantar uma solução simples para cadas-
trar os clientes, fornecedores ou até mesmo
compradores da sua empresa e fazer o con-
trole do seu fluxo de caixa, então o primei-
1 Crie uma planilha qualquer no Excel e, em seguida, acesse o menu
Ferramentas, Macro e Gravar nova Macro.
3 Em seguida, vamos acessar o menu Ferramentas, Macro e clicar no
editor do Visual Basic para prosseguir.
5 O próximo passo é incluir o comando ActiveCell.FormulaR1C1 = “Teste
VBA” no seu programa.
2 Digite um nome para a sua macro (neste caso, usaremos “teste”) e confir-
me com um simples clique no botão OK.
4 Na tela do VBA, dê um duplo clique na pasta Módulo e depois escolha a
opção Módulo para abrir a tela de edição.
6 Clique no botão Executar e veja o que acontece com a planilha. Esse é
apenas um exemplo básico do que pode ser feito em VBA.
ro passo é estudar as informações que de-
vem ser disponibilizadas nessa planilha.
É importante lembrar que você passará
mais tempo planejando o programa do
que criando a sua codificação. Isso prevenirá
futuros erros no sistema e eventuais falhas
no programa, ou seja, vale a pena gastar um
pouco mais de tempo desenvolvendo o
projeto e menos dias na sua confecção.
Agora é o momento de você começar a
criar o nosso primeiro programa no VBA.
Este exemplo é muito básico e poderá ser
executado através do comando
ActiveCell.R1C1. A primeira parte desse co-
mando torna ativa uma determinada célula.
A segunda parte, RC1, representa a célula
que será ativada, sendo que R1 (Row 1) sig-
nifica linha 1 e, C1 (Column 1), coluna 1.
trabalhando VBA.p65 5/2/2004, 19:5612
13OneClick
Criando uma macro
que verifica o CPF
Trabalhar com macros no VBA é uma tare-
fa bem simples e rápida de ser executada.
No exemplo a seguir, vamos criar uma macro
que verifica se os números de CPF (Cadastro
de Pessoa Física) de uma planilha de dados
e analisar se os códigos digitados são válidos.
O primeiro passo é abrir a janela do edi-
tor do VBA, pressionando as teclas Alt
+ F11 ou selecionado o menu Ferra-
menta/Macro/Editor do Visual Basic.
Resto1 = (Soma1 Mod11)
 If (Resto1 <= 1) Then
 DV1 = 0
 Else
 DV1 = 11 – Resto1
 End If
Soma2 = ((d1 * 11) + (d2 * 10) + (d3
* 9) + (d4 * 8) + (d5 * 7) + (d6 * 6) + (d7
* 5) + (d8 * 4) + (d9 * 3) + (DV1 * 2)
Resto2 = (Soma2 Mod11)
 If (Resto2 <= 1) Then
 DV2 = 0
 Else
 DV2 = 11 – Resto2
 End If
If ((DV1 <> d10) Or (DV2 <> d11))
Then
 TestaCPF = “Inválido”
Else
 TestaCPF = “Válido”
End If
End If
End Function
De volta à janela do Excel, digite nas células
que armazenarão os resultados de sua verifica-
ção a seguinte fórmula: =TestaCPF(Célula).
1
Em seguida, com a janela do editor aberta,
digite as instruções a seguir:
Public Function TestaCPF(CPF As
String) As String
Dim d1, d2, d3, d4, d5, d6, d7, d8,
d9, d10, d11 As Integer
Dim Soma1, Soma2, Resto As
Integer
Dim DV1, DV2 As Integer
If Not (IsNull (CPF)) Then
 d1= Val (Mid$ (CPF, 1,1))
 d2= Val (Mid$ (CPF, 2,1))
 d3= Val (Mid$ (CPF, 3,1))
 d4= Val (Mid$ (CPF, 4,1))
 d5= Val (Mid$ (CPF, 5,1))
 d6= Val (Mid$ (CPF, 6,1))
 d7= Val (Mid$ (CPF, 7,1))
 d8= Val (Mid$ (CPF, 8,1))
 d9= Val (Mid$ (CPF, 9,1))
 d10= Val (Mid$ (CPF, 10,1))
 d11= Val (Mid$ (CPF, 11,1))
Soma1 = ((d1 * 10) + (d2 * 9) + (d3 *
8) + (d4 * 7) + (d5 * 6) + (d6 * 5) + (d7 *
4) + (d8 * 3) + (d9 * 2))
2
3
Agora salve as instruções, clicando no
menu Arquivo/Salvar e pressione as teclas
Alt + F11 para retornar ao Excel.
4
5
6
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
É importante lembrar que cada célula digitada
na instrução fará referência à célula cujo CPF
foi digitado. Exemplo: =TestaCPF(A3).
Pronto, agora você já sabe criar um pro-
graminha que verifica os números de
CPF e retorna se estes são válidos ou
não. E poderá utilizá-lo para facilitar e melhorar a
sua rotina de trabalho no Excel.
trabalhando VBA.p65 5/2/2004, 19:5613

Outros materiais