Escolar Documentos
Profissional Documentos
Cultura Documentos
Macros
Macros
Autor:
Leonardo Breyer
APOSTILA DE EXCEL
- AVANADO -
Copyright 2000-2001
Leonardo Breyer
2
NDICE
INTRODUO .......................................................................................................................................................1
.................................................................................................................................................2
iniciando uma macro .......................................................................................................................................2
CRIANDO MACROS
Sintaxe de comandos......................................................................................................................................6
INSERINDO OBJETOS EM UM PLANILHA ....................................................................................................................8
CRIANDO MENUS PERSONALIZADOS ........................................................................................................................9
EXERCCIOS DE MACRO ...................................................................................................................................10
CRIANDO MDULOS..........................................................................................................................................11
PROGRAMANDO MDULOS ..................................................................................................................................11
EXERCCIO DE MDULO...................................................................................................................................12
TABELA DINMICA ............................................................................................................................................13
MENU TABELA DINMICA ......................................................................................................................................17
ALTERANDO UMA TABELA DINMICA.......................................................................................................................20
INTRODUO
O Excel 97 possui uma Linguagem de programao chamada de Visual Basic
para Aplicaes (VBA). Com ela voc poder automatizar seus trabalhos e ganhar
rendimento os recursos existentes em suas planilhas.
No Excel podemos tambm automatizar tarefa repetidas. A este recurso
chamamos de Macros. As macros so rotinas que utilizam o Visual Basic e que podem
ser criadas sem o conhecimento de programao mas, utilizam lgica.
Alm disso um dos melhores, talvez o melhor, recurso que o MS-Excel
apresenta para os seus usurios a Tabela Dinmica, que permite a apresentao
dos dados de diversas formas, a partir de uma mesma base de informao.
Uma Tabela Dinmica (ou Pivot Table Report na verso do MS-Excel 97 em
ingls), uma tabela interativa de planilha, utilizada para resumir e analisar dados de
uma lista ou tabela j existente.
Colunas ou linhas de sumarizao ou dados, podem ser invertidos,
automaticamente, pelo usurio, criando novas verses de relatrio em frao de
segundo. Um exemplo prtico deste tipo de funcionalidade estruturar um relatrio de
vendas por Vendedor e por Produto. Caso queira visualizar os dados por Produto e
por Vendedor (ou Cliente), ser necessrio a elaborao de um outro relatrio, cdigo
adicional, etc. Com a Tabela Dinmica do MS-Excel basta inverter, com o auxilio do
mouse, a posio destas duas colunas, e pronto, o resultado est disponvel para
consulta.
APOEXCEL_AVANC
CRIANDO MACROS
A partir de agora iremos demonstrar como funciona o gravador de macro de
Excel. Se voc j utilizou o gravador de macro do Word, por exemplo, ver que este
no muito diferente. Para iniciar a gravao o usurio aciona o gravador e, em
seguida, executa as tarefas na planilha. Neste momento o gravador estar gravando
todas as aes executadas na planilha(Click de mouse, digitao etc), certas ou
erradas e, depois, finalizar o gravador.
Ao trmino deste processo, foi criada uma Macro(Mdulo) que, contm uma
srie de linhas de comandos(Cdigos, Instrues) sobre as aes executadas.
Taxas
Abril
Maio
Junho
5.000,00 6.250,00 7.062,50
22%
25%
13%
Receita
% Crescimento
8%
5%
3%
7%
Despesas Gerais
Materiais
Sal rios
Benefcios Adicionais
Outros
400
250
7,5
350
% Crescimento Ms:
20%
500
312,5
9,38
437,5
565
353,13
10,59
494,38
APOEXCEL_AVANC
Copiar para
E5
D9 e E9
D10 e E10
D11 e E11
D12 e E12
EXECUTANDO MACRO
APOEXCEL_AVANC
APOEXCEL_AVANC
Pasta de Trabalho
Planilhas
Intervalos
Grficos
Botes
Workbooks
Worksheets
Ranges
Charts
Buttons
NOTA:
Quando programamos objetos em Visual Basic no Excel, temos que,
obrigatriamente, escrever os comandos em ingls, diferentemente de quando
escrevemos frmulas.
Os objetos no Microsoft Excel possuem propriedades. A seguir, como
exemplo, listamos resumidamente algumas propriedades do objeto intervalo:
APOEXCEL_AVANC
Propriedade
Descrio
Columns
Frmula
Height
Retorna a altura de um
pontos(1/72 de polegadas)
intervalo
em
retornar
SINTAXE DE COMANDOS
Quando nos referimos a uma propriedade, o objeto cuja propriedade
desejamos definir ou retornar valor vm na frente do comando, seguido de um ponto e,
depois, do nome da propriedade.
Exemplos:
Cell.Columns.Heighs = 16
MsgBox(Mensagem a ser Exibida, Tipo)
O objeto separado da propriedade por um ponto. Ao utilizar propriedade no
Visual Basic, voc realiza uma das seguintes aes.
-
APOEXCEL_AVANC
Tipo
Tamanho(Memria utilizada)
Boolean
Byte
Currency
Date
Double
Integer
Long
String
2 Bytes
1 Byte
8 Bytes
8 Bytes
8 Bytes (ponto flutuante, dupla preciso)
2 Bytes
4 Bytes
1 Byte(por caracter)
NOTA:
importante de, sempre que criarmos uma varivel ou uma
funcionalidade(regra de negcio) descrever um comentrio ou uma observao para
que, no caia no esquecimento e facilite a qualquer pessoa que for efetuar alteraes
ou melhorias na Aplicao.
Para inserir uma ou mais linhas de comentrio em uma programao
no Visual Basic devemos iniciar a linha com o caracter PLIC
Exemplo:
Sub Exemplo()
'
' Exemplo Macro
' Esta rotina copia e cola uma rea selecionada na Planilha Vendas,
Pasta Executa Macro
If C4 > 100 then
Range("C8:D15").Select
Selection.Copy
Range("G8:H15").Select
ActiveSheet.Paste
Range("J8").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Endif
End Sub
Desta forma, o Visual Basic, ir ignorar as linha que iniciam com o caracter
PLIC( ) executando somente as demais linhas
APOEXCEL_AVANC
A figura abaixo lista alguns dos Objetos que podem ser criados no Excel e so
exibidos na Barra de Ferramentas:
Modo Estrutura
Propriedades
Exibir Cdigo
Caixa de Seleo
Boto
Caixa de Listagem
Boto Alternar
Barra de Rolagem
Caixa Texto
Boto de Opo
Caixa de Combinao
Boto de Rotao
Rtulo
Imagem
Mais Controles
APOEXCEL_AVANC
APOEXCEL_AVANC
EXERCCIOS DE MACRO
1. Crie uma macro obedecendo o seguinte pseudo-cdigo abaixo:
Incio Funo
Se mensagem Sair do Sistema GRAVANDO as alteraes igual a
foco em Menu ento
Salve a Planilha
Feche a aplicao
Fim se
Fim Funo
Impresso
Relatrio
Cancelar
Sair
APOEXCEL_AVANC
10
CRIANDO MDULOS
Semelhante Macro, o recurso de Mdulo possui as mesmas funcionalidade
de e recursos de uma programao de Macros. Ento, a diferena bsica por conta
do modo de execuo.
A Macro executamos pela Barra de Menus ou, ento, associando-a a um
Boto de Controle que inserimos em uma Planilha.
O Mdulo executamos atravs da prpria clula do Excel e, se desejarmos,
poderemos executar passo-a-passo as linhas programadas do cdigo para
identificarmos um eventual erro, ou ento, verificar se as variveis criadas esto
armazenando os valores corretos.
PROGRAMANDO MDULOS
Iremos agora criar um Mdulo que Calcula os dias teis trabalhos para efeito
de Horas Extras.
1. Na Barra de Menu Ferramentas, Macro, Editor Visual Basic;
2. No modo programvel do VB, selecione na Barra de Menu Inserir, Mdulo;
3. Na janela de Mdulo digite o cdigo conforme figura abaixo:
APOEXCEL_AVANC
11
EXERCCIO DE MDULO
1. Baseado na figura abaixo crie um mdulo que calcule o percentual de
gastos em uma administrao residencial. A base de clculo ser o
salrio.
APOEXCEL_AVANC
12
TABELA DINMICA
Na introduo vimos as vantagens de utilizar uma Tabela Dinmica. Com
interatividade podemos resolver problemas utilizando o Assistente numa sequncia de
04 (quatro) caixas de dilogo interativas que nos guia pelas etapas de localizao e
recuperao dos dados que desejamos analisar. O Assistente de Tabela Dinmica
tambm permite que possamos definir como desejamos organizar uma Tabela
Dinmica utilizando rtulos de linha e de coluna, e como desejamos apresentar os
dados nos campos.
Podemos criar uma Tabela Dinmica a partir de dados fonte que residam em:
Uma lista ou um banco de dados do MS-Excel.
Um banco de dados externo, como uma tabela ou arquivo criado em um aplicativo,
ou sistema de gerenciamento de banco de dados externo ao MS-Excel, como por
exemplo, MS-SQL Server, MS-Access, Oracle, Sybase etc.
Vrios intervalos de consolidao de dados em planilhas do MS-Excel.
Outra Tabela Dinmica na mesma pasta de trabalho.
Uma vez criada a Tabela Dinmica, voc pode organizar, reorganizar e
analisar os dados arrastando e soltando os campos na Tabela Dinmica. Tambm
possvel incluir subtotais, modificar a funo de resumo de um campo, alterando a
funo de soma pela mdia, valor mximo, mnimo, ou selecionar clculos
personalizados para a Tabela Dinmica.
Observao:
Se voc deseja criar uma Tabela Dinmica utilizando dados externos,
utilize o Microsoft Query e os controladores da conectividade de banco de
dados (ODBC - Open Database Connectivity) adequados e defina as fontes de
dados que deseja utilizar. Neste artigo estaremos apresentando uma conexo
com uma base de dados em MS-Access.
APOEXCEL_AVANC
13
APOEXCEL_AVANC
14
NOTA:
Quando voc selecionar a opo Vrios intervalos de consolidao na
primeira etapa, os nomes de campo apresentados nesta etapa sero genricos.
APOEXCEL_AVANC
15
APOEXCEL_AVANC
16
Tabela Dinmica:
Possui resumidamente as Ferramentas da Barra de Menu
APOEXCEL_AVANC
17
Mostrar pginas:
Copia cada pgina de um campo de pgina para uma nova
planilha da pasta de trabalho atual. Voc pode ento passar para uma
planilha diferente para imprimir ou para aprofundar a anlise dos
dados.
Desagrupar:
Separa um conjunto de itens agrupados. Cada ocorrncia do
grupo ser substituda pelos itens nele contidos.
Agrupar:
Agrupa itens em uma Tabela dinmica por categoria para criar
um item nico a partir de mltiplos itens. Este recurso poder ser til,
por exemplo, quando voc quiser agrupar meses em trimestres para
fins de anlise, elaborao de grficos ou impresso.
Ocultar detalhe:
Oculta os dados de detalhe retraindo um item externo de um
campo de linha ou de coluna em uma Tabela dinmica. Este recurso
poder ser til quando voc quiser isolar segmentos de dados para
anlise, impresso ou elaborao de grficos.
Mostrar detalhe:
Exibe os dados de detalhe que foram ocultados com o
subcomando Ocultar detalhe, expandindo um campo de linha ou um
campo de coluna em uma Tabela dinmica. Este comando
equivalente a um clique duplo sobre um item cujo detalhe foi ocultado.
APOEXCEL_AVANC
18
Atualizar dados:
Atualiza os dados de uma Tabela dinmica depois que os
dados fonte forem alterados. O MS-Excel extrai o intervalo de dados
fonte especificado originalmente e depois substitui os dados da Tabela
dinmica. Use este comando se os dados na tabela ou no arquivo de
banco de dados de origem forem alterados e voc quiser refletir as
alteraes no conjunto de resultados atual.
Selecionar rtulo:
Seleciona a rea de rtulo da linha selecionada.
Selecionar dados:
Seleciona a rea de dados da linha selecionada.
APOEXCEL_AVANC
19
Assistente
APOEXCEL_AVANC
20
Aps isso ser exibida a Tela de Lay-out da Tabela Dinmica conforme figura
abaixo:
Nossa modificao consistir em colocar o Campo Nome do Produto no LayOut da Tabela Dinmica na rea de Linha conforme figura abaixo:
APOEXCEL_AVANC
21
APOEXCEL_AVANC
22
APOEXCEL_AVANC
23
APNDICE
Com o objetivo de facilitar o entendimento de programar em Visual Basic,
abaixo visualizamos a sintaxe de alguns comandos:
PROGRAMANDO TECLAS
Tecla
Cdigo
BACKSPACE
BREAK
CAPS LOCK
CLEAR
DELETE ou DEL
SETA PARA BAIXO
END
ENTER(Teclado numrico)
ENTER
ESC
HOME
INSERT
SETA PARA A ESQUERDA
NUM LOCK
PAGE DOWN
PAGE UP
SETA PARA A DIREITA
TAB
SETA PARA CIMA
{BACKSPACE} ou {BS}
{BREAK}
{CAPSLOCK}
{LIMPAR}
{DELETE} ou {DEL}
{DOWN}
{END}
{ENTER}
~
{ESCAPE} ou {ESC}
{HOME}
{INSERT}
{LEFT}
{NUMLOCK}
{PGDN}
{PGUP}
{RIGHT}
{TAB}
{UP}
LOOPS E CONDIES
Exemplo de Sintaxe para Loop:
Do While Condio
Comandos
Loop
Do Loop Condio
Comandos
While
For Condio
Comandos
Next
For Each Condio
Comandos
Next
Do Until Condio
Comandos
Loop
APOEXCEL_AVANC
24
If Condio Then
Comando
ElseIf Condio Then
Comando
End If
APOEXCEL_AVANC
Cdigo
Range(Inicio:Fim)
MsgBox(Texto)
Selection.Font.ColorIndex = 3
Selection.Copy
ActiveSheet.Paste