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

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

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.

Funes definidas pelo utilizador

Macros de Funes

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

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 clculo do valor do Iva

Macros de Funes

Function IVA (Valor, Taxa) IVA = Valor* Taxa End Function

Funes definidas pelo utilizador


Crie funes que permitam efectuar as seguintes operaes:

Macros de Funes

1. 2.

Calcular a classificao final disciplina de INF II, em que a frmula aplicada a seguinte:
a. Classificao= 80% * PAC + 20% * TRAB

3. 4.

Repetir a operao mas para uma situao em que so desconhecidas as percentagens atribudas s PAC e ao TRAB (Classificao= X% * PAC + Y%* TRAB) Calcular o valor comercial de um artigo com IVA 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

O editor do VBA

Explorador do Projecto Janela de edio do cdigo em VBA

Propriedades da janela

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.

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,...

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).

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


Mtodo Propriedade

Objectos
Application o objecto que representa o prprio Excel
Algumas das propriedades e mtodos mais importantes

Exemplos de aplicaes de propriedades e mtodos


Sub Titulo() Application.Caption = " Gesto de clientes" End Sub Sub Barra_de_estado() Application.DisplayStatusBar = False End Sub Sub Encerrar() Application.Quit End Sub Sub Executa() Application.Run ("Folha1.Titulo") End Sub
Substitui o ttulo Microsoft Excel Por Gesto de clientes. Torna invisvel a barra de estado do Excel.

Application

EX. 1

EX. 2

EX. 3

Encerra o Excel.

EX. 4

Executa a macro ou Procedimento Titulo.

10

Objectos
Workbooks representa um ficheiro de Excel
Alguns dos mtodos mais importantes

Exemplos de aplicaes de propriedades e mtodos

WorkBooks

EX. 1

Sub Nome_livro() Workbooks("livro1").Activate End Sub Sub fecha() Workbooks("Livro1").Close End Sub Sub grava() Workbooks("Livro1").SaveAs ("Exemplos de VBA") End Sub

Activa o livro1

EX. 2

Encerra o livro1

EX. 3

Guarda o Livro1 com o nome Exemplos de VBA

11

Objectos
Worksheets uma folha do objecto Workbooks

Algumas das propriedades mais importantes

Exemplos de aplicaes de propriedades

Worksheets

EX. 1

Sub Numero_da_folha() N = Worksheets(Facturas").Index MsgBox (N) End Sub Sub Altera_nome() Worksheets(2).Name = Tabelas End Sub

A varivel N devolve o nmero de ordem da folha Facturas em relao s Restantes folhas do livro. O nome da segunda folha do livro alterado para Tabelas.

EX. 2

EX. 3

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

Torna invisvel a folha Tabelas.

12

Worksheets

Alguns dos mtodos mais importantes

Exemplos de aplicaes de mtodos

Worksheets

EX. 1

Sub Activa_folha() Worksheets(Tabelas").Activate End Sub

Torna activa a folha denominada Tabelas

EX. 2

Sub Elimina_folha() Worksheets(Tabelas").Delete End Sub

Elimina a folha Tabelas.

EX. 3

Sub Inicializa_celula() Worksheets(Tabelas").Cells(1, 4).Value = 4 End Sub

A clula referenciada pela Linha 1 e coluna 4 passa 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

Exemplos de aplicaes de propriedades


A varivel N devolve o total de clulas que constituem a rea que vai desde A1 at B50.

Range

EX. 1

Sub Conta_clulas() N = Worksheets("segundo").Range("A1:B50").Count MsgBox (N) End Sub

EX. 2

Sub Conta_Folhas() N = Worksheets.Count MsgBox (N) End Sub Sub Nome_range() Worksheets(tabelas").Range("Unidades").Value = 10 End Sub

A varivel N devolve o total de folhas que constituem o livro activo Todos os valores Pertencentes rea denominada Unidades passam O valor 10

EX. 3

14

Exemplos de aplicaes de propriedades


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

Range

EX. 5 T = Worksheets("segundo").Range("A5").Text

Sub Converte_em_texto() MsgBox (T) End Sub

A varivel T devolve o valor que se encontra na clula A5 no formato texto. O titulo lista de valores colocado na linha 1 da coluna A, o deslocamento foi igual a 1 linha, relativamente ao range A2.

Sub Titulo () EX. 6 Range("A2").Offset(-1, 0).Value = "Lista de valores" End Sub

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 ActiveCell.Value = 23 Activa a folha 1

15

Exemplos de aplicao da propriedades


(aplicada a estruturas repetitivas)
Sub Pinta_negativos()
EX. 7

Range

' Atalho por teclado: Ctrl+p ' Do While ActiveCell.Value <> " If ActiveCell.Value < 0 Then Selection.Font.ColorIndex = 3 End If ActiveCell.Offset(1, 0).Select Loop End Sub

Este procedimento vai percorrer um conjunto de clulas que se encontram na mesma coluna e se o respectivo contedo for negativo, apresenta o valor com a cor vermelha. A instruo

ActiveCell.Offset(1, 0).Select
Provoca o deslocamento de uma linha e zero colunas relativamente clula em que se encontra posicionado o cursor.

Objectos
Range - Alguns dos mtodos mais importantes

16

Exemplos de aplicaes de mtodos


Sub Limpa_conteudo() Range("B1:B5").ClearContents End Sub

Range

EX. 1

Elimina o contedo do range B1:B5

EX. 2

Sub Limpa_conteudo1() Worksheets(Tabelas").Range("Unidades").ClearContents End Sub

Elimina o contedo do range Unidades.

EX. 3

Sub Copia() Range("A1:B10").Copy Range("D1:E10").PasteSpecial End Sub

O contedo do range A1 a B10 copiado para o Range D1 a D10.

Exemplos de aplicaes de mtodos


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

Range

EX. 4

EX. 5

Sub Elimina_linha() Selection.EntireRow.Delete End Sub Sub Inicializa_celula() Cells(1, 4).Value = 555 End Sub

As linhas seleccionadas so totalmente eliminadas.

EX. 6

A clula correspondente linha 1 coluna 4 inicializada a 555

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
Sub limpar() Range("B7:B9").Select Selection.ClearContents End Sub

3. Terminar
Sub Terminar() Application.Quit 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