Você está na página 1de 22

Excel - VBA

Docente: Ana Paula Afonso

Macrocomandos (Macros)
O que uma macro? So programas que executam
tarefas especficas, automatizando-as.
Quando uma macro activada, executa uma
sequncia de instrues.

Tipos de macros:
Macros de comandos

Macros de funes

1
Macros de comandos
Repetio de tarefas
frequentemente necessrio executar a
mesma tarefa, que podem ser clulas de um
intervalo, folhas de clculo de um livro ou
diferentes livros de uma aplicao.

Embora no seja possvel ao gravador de


macros gravar ciclos, consegue gravar a
tarefa principal de modo a ser possvel a sua
repetio.

Macros de comandos
Tarefas simples
No exemplo que segue criada uma macro que muda a cor das
clulas com valores negativos.

Passo 1: Criar a macro


Ferramentas / Macro / Gravar nova macro/ Nome
Passo 2: Formatar os nmeros
Formatar / Clulas/ Padres/
Passo 3: Terminar a gravao
Utilizar o boto 'Parar' na barra de ferramentas 'Terminar
gravao'.
Passo 4: Executar a macro
Ferramentas / Macro / Macros / Executar

2
Macros de comandos
Visualizar o conjunto de instrues que constituem a
macro (cdigo VBA): Ferramentas / Macros/ Macro/
Editar

Sub Pintar()
' Macro gravada em 04/6/2000
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

Macros de comandos
Automatize as seguintes tarefas:

1. Inserir o seu nome, turma, alinhados esquerda,e o nmero


da pgina, alinhado direita, no rodap da folha de clculo.
Atribua-lhe uma tecla de atalho.
2. Gravar ficheiro actual na disquete. Atribua-lhe um boto com
uma imagem elucidativa.
3. Configurar a pgina para impresso com os seguintes
parmetros:
Margem Ed=Margem Dt =2cm ; Cabealho =Rodap=3
cm
Tamanho do papel = A4, Orientao=Horizontal; Folha
sem grelha;
Atribua-lhe um boto com a descrio: Configurao de pgina.

3
Macros de Funes
Funes definidas pelo utilizador

Existem clculos bastante especficos que no


podem ser executados por nenhuma das funes
predefinidas. Quando ocorre esta situao
necessrio que o utilizador crie a sua prpria
funo.
Para definir uma funo necessrio:
Nome da funo
Argumentos
Frmulas

Macros de Funes
Funes definidas pelo utilizador

Para criar uma funo necessrio:

Passo1: utilizar o editor de texto do Visual Basic.


Ferramentas/Macro/Editor do Visual Basic
Passo2: inserir mdulo
Insert/Module
Passo3: iniciar a funo com a palavra Function e terminar
com a palavra End Function.

Exemplo do
Function IVA (Valor, Taxa)
clculo do IVA = Valor* Taxa
valor do Iva End Function

4
Macros de Funes
Funes definidas pelo utilizador
Crie funes que permitam efectuar as seguintes operaes:

1. Calcular a classificao final disciplina de INF II, em


que a frmula aplicada a seguinte:
a. Classificao= 80% * PAC + 20% * TRAB
2. Repetir a operao mas para uma situao em que so
desconhecidas as percentagens atribudas s PAC e ao
TRAB (Classificao= X% * PAC + Y%* TRAB)
3. Calcular o valor comercial de um artigo com IVA
4. Calcular o valor comercial de um artigo com desconto

Resumo
Activar o gravador de macros
Desactivar o gravador de macros
Operaes sobre macros:
Executar
Editar
Alterar
Eliminar
Atribuir uma tecla de atalho ou um boto

5
O editor do VBA

Explorador
do
Projecto
Janela
de
edio
do
cdigo
Propriedades em
da janela VBA

O editor do VBA
Explorador do projecto (Project Explorer )

Nesta janela possvel visualizar a


hierarquia dos projectos de VBA activos.

Neste caso est visvel um projecto que


Corresponde ao livro com que nos
Encontramos a trabalhar:
VBAProject (Exerccios)

Na pasta Modules est visvel um


Ficheiro (mdulo) onde so programadas
As macros.

6
O editor do VBA
Explorador do projecto (Properties )

Nesta janela possvel


visualizar e alterar um conjunto
de propriedades que definem
cada objecto que constitui o
projecto, neste caso, a folha3.

Coleces de Objectos e Objectos

O que so Objectos?
So elementos caracterizados por um conjunto de
propriedades e que apresentam um determinado
comportamento. P.ex.: uma folha de clculo um
objecto, tem um nome, um conjunto de linhas e
colunas, uma grelha que pode ser desactivada, pode
ser protegida contra escrita, a altura das linhas e a
largura das colunas pode ser modificada,...

7
Objectos: Propriedades e Mtodos

Propriedades
Constituem o conjunto de caractersticas que o definem. P.ex.:
nome, cor,dimenso, valor contido, ... (Luisa Domingues). As
propriedades determinam a aparncia e o comportamento dos
objectos.

Mtodos
So aces que os objectos podem executar.Cada objecto
pode ter associados vrios mtodos.
As aces desencadeadas pelos mtodos podem alterar as
propriedades dos objectos.
P.ex.: Fechar um livro de Excel

Objectos: Coleces

As coleces so conjuntos de objectos relacionados. Cada


objecto dentro de uma coleco um elemento dessa
coleco.
Uma coleco tambm um objecto, com as suas
propriedades e mtodos.

Por exemplo uma coleco que agrupa todas as folhas de


clculo de um determinado livro um objecto que existe em
Excel, denominado Worksheets. Possui vrias propriedades
p.ex.: Count, que devolve o nmero de elementos dessa
coleco (Jos Antnio Carrio).

8
Hierarquia dos principais Objectos em
Excel
Application
Workbooks
Worksheets
Range

O objecto Application contm a coleco Workbooks.


O Objecto Workbooks contm entre outros o objecto Worksheets,
que por sua vez contm entre outros o objecto Range.

Realizao de tarefas em VBA


Regras Prticas

1. Indica-se o objecto
2. Aplicam-se as propriedades e os mtodos inerentes a esse
objecto.
Objectos

Exemplos
Worksheets(Folha1).Range(C1).Value = 45
Application.Quit

Propriedade
Mtodo

9
Objectos

Application o objecto que representa o prprio Excel

Algumas das propriedades e mtodos mais importantes

Application
Exemplos de aplicaes de propriedades e mtodos

Sub Titulo()
Substitui o ttulo
EX. 1 Application.Caption = " Gesto de clientes"
Microsoft Excel Por
End Sub Gesto de clientes.

Sub Barra_de_estado() Torna invisvel a barra de


EX. 2 Application.DisplayStatusBar = False estado do Excel.
End Sub

Sub Encerrar()
Application.Quit Encerra o Excel.
EX. 3
End Sub

Sub Executa()
Executa a macro ou
EX. 4 Application.Run ("Folha1.Titulo") Procedimento Titulo.
End Sub

10
Objectos

Workbooks representa um ficheiro de Excel


Alguns dos mtodos mais importantes

WorkBooks
Exemplos de aplicaes de propriedades e mtodos

Sub Nome_livro()
EX. 1 Workbooks("livro1").Activate Activa o livro1
End Sub

Sub fecha()
EX. 2 Workbooks("Livro1").Close Encerra o livro1
End Sub

Sub grava()
Workbooks("Livro1").SaveAs ("Exemplos de VBA") Guarda o Livro1 com o
EX. 3 nome Exemplos de VBA
End Sub

11
Objectos

Worksheets uma folha do objecto Workbooks

Algumas das propriedades mais importantes

Worksheets
Exemplos de aplicaes de propriedades

Sub Numero_da_folha()
N = Worksheets(Facturas").Index A varivel N devolve o
EX. 1 MsgBox (N) nmero de ordem da folha
End Sub Facturas em relao s
Restantes folhas do livro.

Sub Altera_nome()
EX. 2 Worksheets(2).Name = Tabelas O nome da segunda folha
do livro alterado para
End Sub
Tabelas.

EX. 3 Sub Visibilidade() Torna invisvel a folha


Worksheets(Tabelas").Visible = False Tabelas.
End Sub

12
Worksheets

Alguns dos mtodos mais importantes

Worksheets
Exemplos de aplicaes de mtodos

Sub Activa_folha()
Worksheets(Tabelas").Activate Torna activa a folha
EX. 1 End Sub denominada Tabelas

Sub Elimina_folha()
EX. 2 Worksheets(Tabelas").Delete Elimina a folha
Tabelas.
End Sub

EX. 3 Sub Inicializa_celula() A clula referenciada pela


Worksheets(Tabelas").Cells(1, 4).Value = 4 Linha 1 e coluna 4 passa
End Sub A conter o valor 4.

13
Objectos
Range o objecto utilizado para representar uma ou
mais clulas de uma Worksheet
Algumas das propriedades mais importantes

Range
Exemplos de aplicaes de propriedades

A varivel N devolve
Sub Conta_clulas()
o total de clulas
N = Worksheets("segundo").Range("A1:B50").Count que constituem a
EX. 1 MsgBox (N) rea que vai desde
End Sub A1 at B50.

Sub Conta_Folhas() A varivel N devolve


EX. 2 N = Worksheets.Count o total de folhas que
MsgBox (N) constituem o livro
activo
End Sub
Todos os valores
Sub Nome_range() Pertencentes rea
Worksheets(tabelas").Range("Unidades").Value = 10 denominada
EX. 3 Unidades passam
End Sub
O valor 10

14
Range
Exemplos de aplicaes de propriedades

Sub Edita_Formula() A varivel F devolve


F = Worksheets(Tabelas").Cells(5,1).Formula a frmula que se
EX. 4 MsgBox (F) encontra na clula
A5.
End Sub

Sub Converte_em_texto() A varivel T


EX. 5 T = Worksheets("segundo").Range("A5").Text devolve o valor
MsgBox (T) que se encontra
na clula A5 no
End Sub
formato texto.
O titulo lista de valores
Sub Titulo () colocado na linha 1 da
EX. 6 Range("A2").Offset(-1, 0).Value = "Lista de valores" coluna A, o deslocamento
End Sub foi igual a 1 linha,
relativamente ao range A2.

Objectos

A propriedade ActiveCell devolve um objecto Range


que representa a clula que est activa e dessa forma
podem aplicar-se clula activa as propriedades do
objecto Range.

Ex.: Atribuir o valor 23 clula activa da folha 1


Worksheets(1).Activate Activa a folha 1
ActiveCell.Value = 23

15
Range
Exemplos de aplicao da propriedades
(aplicada a estruturas repetitivas)

Sub Pinta_negativos()
Este procedimento vai percorrer um
conjunto de clulas que se encontram
EX. 7 ' Atalho por teclado: Ctrl+p
na mesma coluna e se o respectivo
' contedo for negativo, apresenta o
Do While ActiveCell.Value <> " valor com a cor vermelha.

If ActiveCell.Value < 0 Then


Selection.Font.ColorIndex = 3 A instruo
End If ActiveCell.Offset(1, 0).Select

ActiveCell.Offset(1, 0).Select Provoca o deslocamento de uma linha


Loop e zero colunas relativamente clula
em que se encontra posicionado o
cursor.
End Sub

Objectos
Range - Alguns dos mtodos mais importantes

16
Range
Exemplos de aplicaes de mtodos

Sub Limpa_conteudo()
Range("B1:B5").ClearContents Elimina o contedo do
EX. 1 End Sub range B1:B5

Elimina o
Sub Limpa_conteudo1()
contedo
EX. 2 Worksheets(Tabelas").Range("Unidades").ClearContents do range
End Sub Unidades.

Sub Copia()
O contedo do range
Range("A1:B10").Copy
EX. 3 A1 a B10 copiado para o
Range("D1:E10").PasteSpecial Range D1 a D10.
End Sub

Range
Exemplos de aplicaes de mtodos
Sub Copia1()
Range("A1:B10").Select O contedo do range
EX. 4 Selection.Copy A1 a B10 copiado para o
Range("D1:E10").Select Range D1 a D10.
ActiveSheet.Paste
End Sub

Sub Elimina_linha()
Selection.EntireRow.Delete As linhas seleccionadas so totalmente
EX. 5 End Sub eliminadas.

Sub Inicializa_celula()
Cells(1, 4).Value = 555 A clula correspondente linha 1
EX. 6 coluna 4 inicializada a 555
End Sub

17
Controlos Personalizados
(Botes de comando)

Os botes de comando respondem a um nico


evento: o clique. O qual dever permitir a
execuo de um macrocomando (procedimento).

Existem diferentes tipos de controlo incluindo,


Caixa de verificao, Boto de opo, Boto, etc.

Barra de Ferramentas de Formulrios

As ferramentas que podem ser utilizadas para


desenhar os controlos encontram-se na barra de
ferramentas Formulrios:

Ver /Barras de Ferramentas/ Formulrios

18
Controlos Personalizados

Criar Controlos
Seleccionar o controlo e desenh-lo no local pretendido.

Formatao de controlos
Cada controlo tem as suas propriedades e para fazer a sua
alterao necessrio seguir os passos seguintes:
Passo1: Seleccionar o controlo
Passo2: Formatar/Controlo/Formatar controlo
Passo3: Indicar/Alterar as propriedades pretendidas na caixa de
dilogo que surge no ecr.

Utilizao de Controlos Personalizados


Botes de comando

Exemplo in Microsoft Office 2000 sem Fronteiras, Srgio Sousa e Maria Jos Sousa

19
Utilizao de Controlos Personalizados
Botes de comando

Passo1: Criar o quadro de despesas na folha de clculo


Passo2: Criar os botes de comando
Ver/Barras de Ferramentas/ Formulrios/Boto
Passo3: Atribuir os Procedimentos aos botes de Comando
Construir os seguintes procedimentos:
Inserir / Gravar / Imprimir / Limpar / Criar Grfico
/ Terminar

Procedimentos (VBA)
Exemplos
1. Insero de Dados

Sub inserir()
Dim salario, gerais, gestao As Long
salario = InputBox("Introduza a despesa Salrio", "Introduo de dados")
gerais = InputBox("Introduza a despesa Gerais", "Introduo de dados")
gestao = InputBox("Introduza a despesa Gesto", "Introduo de dados")
Application.Cells(7, 2) = salario
Application.Cells(8, 2) = gerais
Application.Cells(9, 2) = gesto
End Sub

Exemplo in Microsoft Office 2000 sem Fronteiras, Srgio Sousa e Maria Jos Sousa

20
Procedimentos (VBA)
Exemplos
2. Limpar 3. Terminar
Sub limpar() Sub Terminar()
Range("B7:B9").Select Application.Quit
Selection.ClearContents End Sub
End Sub

4. Ttulo da aplicao
Sub Titulo()
Application.Caption = " Gesto de despesas"
End Sub

Procedimentos (VBA)
Exerccios

Construa procedimentos que permitam:

1. Gravar a folha de clculo


2. Imprimir o mapa de despesas
3. Construir um grfico Circular em folha prpria
4. Copiar a tabela de despesas para outra folha.

21
Bibliografia
Microsoft Office 2000 sem fronteiras,Srgio
Sousa, Maria Jos Sousa
Manual de VBA, Lusa Domingues (ISCTE)
Microsoft Excel 2000 VBA Fundamentals,
Reed Jacobson
O Guia Prtico do Excel 2002, Ana Paula
Afonso

22

Você também pode gostar