Você está na página 1de 72

VISUAL BASIC

FOR

APPLICATIONS MS EXCEL

2010 / 2011

Joaquim Pires Moreira


piresmoreira.dyndns.org

VBA - Excel
Cada ficheiro do Excel pode conter um projecto VBA e um
programa constitudo por vrios ficheiros

Caractersticas do VBA

Quando guarda um ficheiro de Excel guarda


automaticamente o projecto VBA associado
OBJECTIVO

Automatizao de tarefas
que envolvam objectos

Podem ser acedidos


atravs do VBA

Joaquim Pires Moreira

VBA - Excel
Tudo o que feito manualmente como criar, abrir e fechar
ficheiros, configurar pginas, definir limites, efectuar
clculos, preencher linhas e colunas etc pode ser

Caractersticas do VBA

automatizado atravs de programao.


Ambiente de
desenvolvimento

Facilitador de
programao evitando
memorizao

Como aceder ao ambiente de desenvolvimento?

Joaquim Pires Moreira

VBA - Excel
Como aceder ? (Excel 2003)

Caractersticas do VBA

Ou pela barra de ferramentas


do Visual Basic

Joaquim Pires Moreira

VBA - Excel

Caractersticas do VBA

Como aceder ? (Excel 2007)

Joaquim Pires Moreira

VBA - Excel

Caractersticas do VBA

Como aceder ? (Excel 2007)

Joaquim Pires Moreira

VBA - Excel

Caractersticas do VBA

Como aceder ? (Excel 2007)

Joaquim Pires Moreira

VBA - Excel
O ambiente de desenvolvimento est associado a Macros,
pelo que poder ser necessrio disponibilizar as Macros

Caractersticas do VBA

Excel 2003

Joaquim Pires Moreira

VBA - Excel
O ambiente de desenvolvimento est associado a Macros,
pelo que poder ser necessrio disponibilizar as Macros

Caractersticas do VBA

Excel 2007

Joaquim Pires Moreira

VBA - Excel
O ambiente de desenvolvimento est associado a Macros,
pelo que poder ser necessrio disponibilizar as Macros

Caractersticas do VBA

Excel 2007

Joaquim Pires Moreira

VBA - Excel
O ambiente de desenvolvimento est associado a Macros,
pelo que poder ser necessrio disponibilizar as Macros

Caractersticas do VBA

Excel 2007

Ateno:
Activar todas as macros poder permitir macros malficas

Joaquim Pires Moreira

VBA - Excel
Ambiente de Programao do VBA

Caractersticas do VBA

Explorador Projecto

Atalho: ALT+F11

Janela de Edio de Cdigo

Propriedades
Joaquim Pires Moreira

VBA - Excel
Ambiente de Programao do VBA

Folha1 Cdigo nesta

Caractersticas do VBA

Explorador Projecto

folha apenas pode ser


utilizado nesta folha
Module1 Cdigo num
Modulo pode ser utilizado
em qualquer folha

Joaquim Pires Moreira

VBA - Excel
Ambiente de Programao do VBA

Caractersticas do VBA

Mudar nome ao Projecto


(Ex.: MeuProjecto)

Joaquim Pires Moreira

VBA - Excel
Ambiente de Programao do VBA

Caractersticas do VBA

Colocar Password no Projecto

Joaquim Pires Moreira

VBA - Excel
Ambiente de Programao do VBA

Caractersticas do VBA

Cores do VBA

Joaquim Pires Moreira

VBA - Excel
A Primeira Macro - Regras
1. Identificar e validar a soluo optimizada para o problema
1.1 Retroceder o ponto 1
2. Pressionar o boto gravar macro da barra de ferramentas
Visual Basic

Caractersticas do VBA

3. Dar o nome macro (sem espaos)

4. Efectuar todos os passos identificados em 1 sem efectuar


mais nenhum clique.
Joaquim Pires Moreira

VBA - Excel
A Primeira Macro - Regras
5. Pressionar o boto de Terminar Gravao

Caractersticas do VBA

6. Inserir uma shape (Forma) e atribuir a macro criada

Pressionar lado direito do


rato e seleccionar
Atribuir Macro
Ponto provisrio
Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Um objecto um elemento caracterizado por um


conjunto de propriedades e que tem subjacente um
determinado comportamento.
Cada objecto tem as suas propriedades
que podem ser outros objectos

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

VS

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Para referenciar, ou alterar, uma propriedade de


um objecto, numa instruo VBA, deve indicar o
nome do objecto seguido de um ponto e do
nome da propriedade de
acordo com a sintaxe:

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Para executar um mtodo de um objecto dever


indicar o nome do objecto seguido de um ponto
e do nome do mtodo pretendido.

Existem mtodos que necessitam de


argumentos e nesse caso deve indicar-se tal
como em qualquer funo do Excel, incluindo-os
entre parnteses.

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Os objectos mais utilizados no Excel so:

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Pode ser utilizado para alterar as


propriedades da aplicao.

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

O WORKBOOK corresponde ao segundo objecto na


hierarquia e representa um ficheiro aberto no Excel.

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

Programao em VBA

VBA - Excel

Joaquim Pires Moreira

VBA - Excel

Objectos; Mtodos e Propriedades


so separadas por pontos ( )

Programao em VBA

Para referenciar um objecto poder utilizar o nome ou


o nmero.
Exemplo:
Worksheets(Folha2).name = Tabelas
Worksheets(2).name = Tabelas

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Application.workbooks(Tabelas).worksheets(
Stock).Range(A1).value = Lista stocks

worksheets(Stock).Range(A1).value =
Lista stocks

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Funes teis em VBA

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Funes teis em VBA

Joaquim Pires Moreira

VBA - Excel

Programao em VBA

Funes teis em VBA

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

A interaco de uma folha de excel com o utilizador


realizada atravs de controlos, que depois de
accionados executam um programa em VBA

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Os controlos permitem estabelecer a interaco entre o


utilizador e a folha de calculo

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Os controlos permitem estabelecer a interaco entre o


utilizador e a folha de calculo

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Os controlos permitem estabelecer a interaco entre o


utilizador e a folha de calculo

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Os controlos permitem estabelecer a interaco entre o


utilizador e a folha de calculo

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Os controlos permitem estabelecer a interaco entre o


utilizador e a folha de calculo

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Os controlos permitem estabelecer a interaco entre o


utilizador e a folha de calculo

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Existem 2 modos de trabalho em Visual Basic

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Propriedades dos objectos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Eventos dos controlos

Joaquim Pires Moreira

Controlos variveis operadores VBA

VBA - Excel
Eventos dos controlos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Eventos dos controlos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Eventos dos controlos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Eventos dos controlos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Principais Eventos dos controlos

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Declarao de variveis

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Declarao de variveis

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Declarao de variveis

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Declarao de variveis

Joaquim Pires Moreira

VBA - Excel

Controlos variveis operadores VBA

Declarao de variveis

Joaquim Pires Moreira

VBA - Excel
Operadores
Controlos variveis operadores VBA

Smbolos necessrios para executar operaes matemticas,


tratamento de texto, comparao e operaes lgicas

Joaquim Pires Moreira

VBA - Excel
Operadores Aritmticos
Controlos variveis operadores VBA

Smbolos necessrios para executar operaes matemticas

Joaquim Pires Moreira

VBA - Excel
Operadores Relacionais
Controlos variveis operadores VBA

Uma expresso
relacional traduz
uma comparao
realizada entre dois
valores do mesmo
tipo bsico.
Retornam sempre
um resultado
Booleano (True ou
False)
Joaquim Pires Moreira

VBA - Excel
Operadores Lgicos
Controlos variveis operadores VBA

Sempre que a
execuo de uma
aco ou sequncia
de aces est
sujeita a uma
condio. Retornam
sempre um resultado
Booleano (True ou
False)

Joaquim Pires Moreira

VBA - Excel
Operadores Lgicos
Controlos variveis operadores VBA

Sempre que a
execuo de uma
aco ou sequncia
de aces est
sujeita a uma
condio. Retornam
sempre um resultado
Booleano (True ou
False)

Joaquim Pires Moreira

VBA - Excel
Estruturas de Controlo

Controlos variveis operadores VBA

Estruturas de Deciso

IF <condio> THEN
<instrues>
ELSE
<instrues>
END IF

SELECT CASE <varivel>


CASE IS <condio>
<instrues>
CASE IS <condio>
<instrues>

CASE ELSE
<instrues>
END SELECT
Joaquim Pires Moreira

VBA - Excel
Estruturas de Controlo

Controlos variveis operadores VBA

Estruturas de Repetio

FOR <incio> TO <fim> STEP <incremento>


<instrues>
END FOR
WHILE <condio>
<instrues>
WEND
DO
<instrues>
LOOP UNTIL <condio>
Joaquim Pires Moreira

VBA - Excel

Funes de Interao

Controlos variveis operadores VBA

Entrada de dados

Possibilita a entrada de dados pelo utilizador

Joaquim Pires Moreira

VBA - Excel

Funes de Interao

Controlos variveis operadores VBA

Sada de dados

Possibilita a sada de dados pelo utilizador

Joaquim Pires Moreira