Você está na página 1de 137

Excel: Macros e Visual

Basic for Applications


Probabilidade e Estatstica Computacional
Este texto fornece os passos bsicos para programao
Faculdade de Estatstica - UFPA
29/02/2012

Excel Macros e Visual Basic for Applications

ndice

MACROS................................................................................................................................................ 6
O QUE UMA MACRO? .......................................................................................................................... 7
CRIAR MACROS..................................................................................................................................... 7
Gravar uma Macro ........................................................................................................................... 7
Exerccio ...................................................................................................................................................... 9
Procedimento BackGround do Excel............................................................................................................ 10

Programao em Visual Basic for Applications ............................................................................... 11


EXECUTAR UMA MACRO...................................................................................................................... 13
Tecla de Atalho Shortcut Key ....................................................................................................... 13
Boto na Toolbar ............................................................................................................................ 14
Associar uma Macro a um Boto ................................................................................................................. 14
Dissociar uma Macro de um Boto .............................................................................................................. 16

Run................................................................................................................................................. 17
Comando no Menu .......................................................................................................................... 18
Associao de uma Macro a um Comando do Menu ..................................................................................... 18
Dissociao................................................................................................................................................. 20

Editor de Visual Basic for Applications ........................................................................................... 21


REMOVER MACROS ............................................................................................................................. 22
Remoo de Macros em Ambiente Excel .......................................................................................... 22
Remoo de Macros no Editor de VBA ............................................................................................ 22
EDITOR DE VISUAL BASIC FOR APPLICATIONS ....................................................................... 23
PROJECT EXPLORER ............................................................................................................................ 25
PROPERTIES WINDOW.......................................................................................................................... 27
JANELA DE EDIO ............................................................................................................................. 28
OBJECT BROWSER ............................................................................................................................... 29
HELP ON-LINE .................................................................................................................................... 29
AS CORES DO VBA ............................................................................................................................. 30
FUNES E SUBROTINAS ............................................................................................................... 31
SUBROTINAS ....................................................................................................................................... 33
Definio de SubRotinas ................................................................................................................. 33
Trabalhar no Editor de VBA Criar uma SubRotina ....................................................................... 34
Execuo de uma SubRotina ........................................................................................................... 35
FUNES ............................................................................................................................................ 35
Definio de Funes...................................................................................................................... 35
Definio do tipo de parmetros e do tipo da funo ....................................................................... 36
Trabalhar no Editor de VBA Criar uma Funo ........................................................................... 37
Execuo de uma Funo................................................................................................................ 38
Execuo dentro de uma Clula ................................................................................................................... 39
Execuo dentro de uma Rotina ................................................................................................................... 41

DIFERENAS ENTRE FUNES E ROTINAS ............................................................................................. 43


REGRAS PARA A PASSAGEM DE PARMETROS ....................................................................................... 43

FACULDADE DE ESTATSTICA
UFPA

2 / 137

Excel Macros e Visual Basic for Applications


VARIVEIS ......................................................................................................................................... 44
MANUSEAMENTO COM VARIVEIS ....................................................................................................... 44
O que so variveis? ....................................................................................................................... 45
Assignao de valores a variveis: .................................................................................................. 46
Utilizao de variveis como se fossem valores: .............................................................................. 46
TIPOS DE VARIVEIS ............................................................................................................................ 47
DECLARAO DE VARIVEIS ............................................................................................................... 48
VARIVEIS VANTAGENS DA UTILIZAO ........................................................................................... 48
VARIVEIS DO TIPO OBJETO ................................................................................................................ 49
Declarao da Varivel Objeto ....................................................................................................... 49
Atribuio de uma varivel Objeto .................................................................................................. 49
Utilizao Genrica da Varivel Objeto .......................................................................................... 50
Utilizao Especifica da Varivel Objeto ........................................................................................ 50
VARIVEIS DECLARAO OPCIONAL E O TIPO VARIANT .................................................................... 52
Os Prs e Contras da Utilizao do tipo Variants ............................................................................ 52
Prs ............................................................................................................................................................ 52
Contras ....................................................................................................................................................... 52

Variveis Declarao Forada..................................................................................................... 53


VARIVEIS TIPOS DEFINIDOS PELO UTILIZADOR - ESTRUTURAS ........................................................... 54
Definio do Tipo ........................................................................................................................... 54
Utilizao das Estruturas de Dados................................................................................................. 55
VARIVEIS ARRAYS ......................................................................................................................... 56
O que um Array ? ......................................................................................................................... 56
Array Uni-Dimensional ............................................................................................................................... 56
Array Bi-Dimensional ................................................................................................................................. 57

Declarao de um array ................................................................................................................. 58


Arrays Uni-dimensionais ............................................................................................................................. 58
Arrays Bi-dimensionais ............................................................................................................................... 58

Utilizao de um Array ................................................................................................................... 59


Para aceder ao elemento .............................................................................................................................. 59
Atribuio de valores .................................................................................................................................. 59

Option Base e Array Bounds ........................................................................................................... 60


CONSTANTES..................................................................................................................................... 61
O QUE SO CONSTANTES ? ................................................................................................................... 62
INPUTBOX E MSGBOX ..................................................................................................................... 63
O QUE SO ?........................................................................................................................................ 64
INPUTBOX .......................................................................................................................................... 64
O que faz ..................................................................................................................................... 64
Sintaxe............................................................................................................................................ 64
Parmetros ..................................................................................................................................... 64
MSGBOX ............................................................................................................................................ 66
O que faz ..................................................................................................................................... 66
Sintaxe............................................................................................................................................ 66
Parmetros ..................................................................................................................................... 67
Valores Produzidos ..................................................................................................................... 70
DOMNIO DAS VARIVEIS, CONSTANTES E ROTINAS............................................................. 71
O QUE O DOMINIO ? ........................................................................................................................... 72
DOMNIO DAS VARIVEIS .................................................................................................................... 72
mbito do Procedimento ................................................................................................................. 73
mbito do Mdulo .......................................................................................................................... 74
mbito do Projeto ........................................................................................................................... 75
DOMNIO DAS CONSTANTES ................................................................................................................. 76
mbito do Procedimento ................................................................................................................. 76
FACULDADE DE ESTATSTICA
UFPA

3 / 137

Excel Macros e Visual Basic for Applications


mbito do Mdulo .......................................................................................................................... 77
mbito do Projeto ........................................................................................................................... 77
DOMNIO DE SUBROTINAS E FUNES ................................................................................................. 78
ESTRUTURAS DE CONTROLE ........................................................................................................ 79
O QUE SO ESTRUTURAS DE CONTROLE? .............................................................................................. 80
QUAIS AS ESTRUTURAS .................................................................................................................... 80
IF-THEN-ELSE ..................................................................................................................................... 81
Funo IF do Excel......................................................................................................................... 81
Sintaxe da Estrutura If-Then-Else.................................................................................................... 81
Aplicao Prtica ........................................................................................................................... 82
A instruo adicional ElseIf ........................................................................................................... 84
Aplicao Prtica ........................................................................................................................................ 84

FOR NEXT ........................................................................................................................................ 85


Sintaxe............................................................................................................................................ 85
Aplicao Prtica ........................................................................................................................... 85
A Funo das Variveis:.............................................................................................................................. 86
Construo do Ciclo: ................................................................................................................................... 86
Traduo Integral ........................................................................................................................................ 87

Funcionamento do Ciclo: ................................................................................................................ 87


Perigos associados utilizao do ciclo For-Next:.......................................................................... 87
Outra Aplicao ............................................................................................................................. 88
WHILE-WEND ..................................................................................................................................... 89
Sintaxe............................................................................................................................................ 89
Aplicao Prtica ........................................................................................................................... 89
A Funo das Variveis:.............................................................................................................................. 90
Construo do Ciclo: ................................................................................................................................... 90
Traduo Integral ........................................................................................................................................ 91

Funcionamento do Ciclo ................................................................................................................. 91


Perigos associados utilizao do ciclo While-Wend ...................................................................... 91
Outra Aplicao ............................................................................................................................. 92
DO LOOP .......................................................................................................................................... 93
Sintaxe............................................................................................................................................ 93
Aplicaes Prticas ........................................................................................................................ 93
SELECT CASE ...................................................................................................................................... 96
Sintaxe............................................................................................................................................ 96
Aplicao Prtica ........................................................................................................................... 96
Construo da Estrutura .............................................................................................................................. 97

FOR EACH NEXT ............................................................................................................................ 99


Sintaxe............................................................................................................................................ 99
Aplicaes Prticas ........................................................................................................................ 99
Utilizando Arrays ...................................................................................................................................... 100
Construo do Ciclo.............................................................................................................................. 101
Utilizando Colees de Objetos ................................................................................................................. 102

COLEES DE OBJETOS E OBJETOS ..........................................................................................103


O QUE SO OBJETOS ? ........................................................................................................................104
OBJETOS: PROPRIEDADES, MTODOS E EVENTOS.................................................................................104
Propriedades .................................................................................................................................104
Mtodos .........................................................................................................................................104
Eventos ..........................................................................................................................................105
OBJETOS MAIS UTILIZADOS NO EXCEL ................................................................................................106
Propriedades ............................................................................................................................................. 106
Mtodos.................................................................................................................................................... 107
Propriedades ............................................................................................................................................. 108
Mtodos.................................................................................................................................................... 109
Propriedades ............................................................................................................................................. 110

FACULDADE DE ESTATSTICA
UFPA

4 / 137

Excel Macros e Visual Basic for Applications


Mtodos.................................................................................................................................................... 111
Propriedades ............................................................................................................................................. 112
Mtodos.................................................................................................................................................... 113

OBJETOS SINGULARES VS
COLEES DE OBJETOS .....................................................................114
INDEXAO DE COLEES POR NMERO OU NOME ...............................................................................115
Indexao com Base em Nmeros ..................................................................................................115
Indexao com Base no Nome ........................................................................................................116
Vantagem ................................................................................................................................................. 116

O Objeto Range uma excepo ....................................................................................................117


Tratamento como objeto: ........................................................................................................................... 117
Tratamento como coleo de objetos: ........................................................................................................ 117

REFERNCIA IMPLCITA ......................................................................................................................118


Declarao implcita da aplicao:................................................................................................118
Declarao implcita do WorkBook:...............................................................................................119
Declarao implcita da WorkSheet: ..............................................................................................119
Nvel de referncia a privilegiar .....................................................................................................120
MISCELLANEOUS ............................................................................................................................121
A INSTRUO WITH ...........................................................................................................................122
Aplicao Prtica ..........................................................................................................................122
OUTRAS FUNES TEIS DO VBA ......................................................................................................123

FACULDADE DE ESTATSTICA
UFPA

5 / 137

Excel Macros e Visual Basic for Applications

Macros

FACULDADE DE ESTATSTICA
UFPA

6 / 137

Excel Macros e Visual Basic for Applications

O QUE UMA MACRO?


Uma macro um pequeno programa que contm uma lista de instrues a realizar no
Excel. Como sendo um repositrio de operaes, uma macro pode executar um conjunto de
tarefas atravs de um nico procedimento o qual pode ser invocado rapidamente.
As instrues que formam o corpo da macro so escritas num cdigo prprio para que o
computador as possa entender, essa linguagem designada por VBA Visual Basic for
Applications.

CRIAR MACROS
Existem duas possibilidades de criao de macros:
Atravs do Gravador de Macros
Utilizando o editor e programando em Visual Basic for Applications

Gravar uma Macro


1. Tools / Macro / Record New Macro. O Excel exibir a caixa de dilogo da fig.1.

Fig.1 caixa de dilogo para a gravao de macros.

FACULDADE DE ESTATSTICA
UFPA

7 / 137

Excel Macros e Visual Basic for Applications

2. O nome da Macro ser constitudo por um conjunto de caracteres que identificaro a


Macro e a sua funcionalidade.
3. Shortcut Key composto por uma combinao de teclas que podero ser utilizadas
para executar uma macro.
4. Opte por armazenar a macro numa das seguintes alternativas: This Workbook, New
Workbook ou Personal Workbook, sendo que cada uma corresponde a macros de
mbito diferente. Assim devero armazenar a macro na opo ThisWorkBook para que
ela esteja ativa sempre que o documento estiver aberto, e para que ela esteja
armazenada no prprio ficheiro no correndo o risco de ficar armazenada nas Macros
do Excel. (na rede do ISCTE impossvel gravar a macro no Personal WorkBook.)
5. No campo Description, introduza um comentrio funo este poder ser importante
para que no seja esquecido o respectivo objetivo e funcionalidade.
6. Clique em OK para iniciar a gravao da macro neste momento ser exibida uma
toolbar semelhante da figura 2, e o cone do rato ser transformado numa cassete,
indicando o estado de gravao.

Fig.2 Toolbar exibida para a gravao de macros.

7. Na toolbar Stop Record, existem dois botes: Stop Recording e Relative Reference O
boto de Stop Recording termina a gravao da macro, o boto de Relative Reference
seleciona o modo de gravao da macro se feito com base em referncias relativas
(boto selecionado) ou referncias absolutas.
8. No caso da toolbar Stop Record desaparecer, poder voltar a exibi-la fazendo no menu
a sequncia: View / Toolbars / Stop Record (selecione a toolbar). Caso a toolbar no
aparea listada a gravao de macros no est ativa.

Nota: Tome ateno aos passos que d quando est a gravar pois tudo ser registado, o que
significa que quando for executar a macro, esses procedimentos sero efectuados.

FACULDADE DE ESTATSTICA
UFPA

8 / 137

Excel Macros e Visual Basic for Applications

EXERCCIO
Objetivo: Gravar uma macro testando a diferena entre a execuo de macros com
referncias absolutas e relativas.
1 Fase: Macro com referncias Absolutas
1.
2.
3.
4.
5.

Acione a gravao da macro. Atribua-lhe o Short Key Ctrl+P


Certifique-se que o boto Relative Reference est desativado.
Clique na clula B3.
Escreva ISCTE
Formate a clula para Bold, Itlico, tamanho 18, Small Caps, (utilize o Format /
Font)
6. Na clula B4 escreva: Av. Foras Armadas
7. Na clula B5 escreva: 1700 Lisboa
8. Pare a gravao da macro. A macro est criada.
9. Apague tudo o que escreveu nas clulas da coluna B.
10. Clique na clula L8.
11. Carregue simultaneamente nas teclas Ctrl e P
12. O que aconteceu ?

2 Fase: Macro com referncias Relativas


1.
2.
3.
4.
5.

Selecione a clula D5.


Acione a gravao da macro. Atribua-lhe o Short Key Ctrl+R
Selecione o boto Relative Reference.
Escreva ISCTE na clula que havia sido selecionada.
Formate a clula para Bold, Itlico, tamanho 18, Small Caps, (utilize o Format /
Font)
6. Na clula D6 escreva: Av. Foras Armadas
7. Na clula D7 escreva: 1700 Lisboa
8. Pare a gravao da macro. A macro est criada.
9. Apague tudo o que escreveu nas clulas da coluna D.
10. Clique na clula L8.
11. Carregue simultaneamente nas teclas Ctrl e R
12. O que aconteceu ? Porqu ?

FACULDADE DE ESTATSTICA
UFPA

9 / 137

Excel Macros e Visual Basic for Applications

PROCEDIMENTO BACKGROUND DO EXCEL


O Excel quando se grava uma macro cria um objeto designado por module no workbook
onde regista todas as operaes gravadas em linguagem Visual Basic for Applications VBA. Este module no aparece no Excel com as restantes Sheets.
Para ser visualizado necessrio abrir o Editor de Visual Basic for Applications:
1. Tools / Macro / Macros
2. Seleciona-se a Macro e Clica-se no boto Edit
3. Poder visualizar na rea do lado direito o cdigo VBA que est subjacente s macros
que entretanto gravou. A poder executar as mesmas tarefas que num editor de texto
normal: escrever, apagar, copiar, mover, mas instrues de VBA.
4. Tente fazer a leitura do que est escrito e compreenda o procedimento da macro.
5. Para regressar ao Excel basta File / Close and return to Microsoft Excel.

FACULDADE DE ESTATSTICA
UFPA

10 / 137

Excel Macros e Visual Basic for Applications

Programao em Visual Basic for Applications


1. Para aceder ao editor de Visual Basic for Applications: Tools / Macro / Visual Basic
Editor (para se familiarizar mais com o editor consulte o capitulo Editor Visual Basic
for Applications e o capitulo Funes e SubRotinas)

Figura 3 Editor de Visual Basic for Applications

2. Para inserir um mdulo faa Insert / Module isto porque as macros que construir
devero ser escritas dentro de um mdulo (repare na Figura 3 que o Module 1 est
selecionado na janela de projeto e do lado direito tem-se uma rea de edio onde
poder-se-o escrever as macros a executar)

FACULDADE DE ESTATSTICA
UFPA

11 / 137

Excel Macros e Visual Basic for Applications

3. Pode agora programar os procedimentos manualmente ou com recurso a algumas


funcionalidades do Editor:
a) Insert / Procedure insere um procedimento para o qual dever indicar o tipo de
procedimento.
b) Quando estiver a introduzir as variveis haver de ser exibida a lista de tipos de
variveis possvel.
4. Sempre que precisar de construir uma macro mais ou menos complicada, se no
conhecer muito de VBA poder comear por gravar no EXCEL pequenas macros com
operaes muito simples e depois no editor de VBA tentar compreender a sua
funcionalidade e assim construir uma macro cada vez mais complexa, completa e
adequada s suas exigncias.
5. Poder em cada macro fazer uma chamada a uma outra macro, bastando para tal
escrever o respectivo nome.
6. No Editor de Visual Basic for Applications poder encontrar ajuda para o
desenvolvimento do seu procedimento. Assim:

6.1. Clique no cone do Object Browser ou View/Object Browser ou F2


6.2. Na Caixa de Drop-Down onde aparece referido <All Libraries>, selecione a
aplicao para a qual pretende ajuda neste caso Excel. Convm referir que poder
utilizar as funes de toda e qualquer aplicao.
6.3. Na rea intitulada por Classes aparecem todos os objetos especficos para o
manuseamento da aplicao selecionada. A classe especial designada por Globals
refere-se s funes que esto disponveis na aplicao independentemente dos
objetos selecionados.
6.4. Selecione um dos objetos e visualize do lado direito os Members of <Elemento
selecionado>

6.5. Para cada membro da classe dispe de um help on-line que o esclarece sobre a
respectiva funo e funcionamento, dando exemplo que poder testar. Para tal basta
clicar sobre o boto de Help da janela do Object Browser.

FACULDADE DE ESTATSTICA
UFPA

12 / 137

Excel Macros e Visual Basic for Applications

EXECUTAR UMA MACRO


A execuo de uma macro pode ser concretizada de diversas formas:

Tecla de Atalho Shortcut Key


Boto na Toolbar
Run
Comando no Menu
Editor de Visual Basic for Applications

Tecla de Atalho Shortcut Key


A associao a teclas de atalho realizada quando da criao da macro.

FACULDADE DE ESTATSTICA
UFPA

13 / 137

Excel Macros e Visual Basic for Applications

Boto na Toolbar

ASSOCIAR UMA MACRO A UM BOTO


1. View / Toolbars / Customize
2. Na janela do Customize selecione o Commands Tab
3. Selecione a categoria Macro (visualizar a caixa de dilogo exibida na Figura 4)

Fig.4 caixa de dilogo para assignao de boto a macros

FACULDADE DE ESTATSTICA
UFPA

14 / 137

Excel Macros e Visual Basic for Applications

4. Na rea respeitante aos Commands sero exibidos dois itens: Custom Menu Item e
Custom Button. Selecione este segundo e arraste-o com o rato at Toolbar onde o
pretende inserir. Ateno s poder inserir o boto quando o ponteiro do rato ficar com a
forma I. Nesse momento libertar o boto do rato utilizado para o arrastamento e
verificar que ser criado um novo boto.

5. Na janela de Customize poder ainda utilizar dois botes que se encontram na rea do
Selected Command:
a) Description que exibe um texto explicando o que o comando selecionado faz.
b) Modify Selection semelhante ao clique sobre o boto criado, exibe uma srie
de tarefas possveis para configurao do boto ( ver operaes seguintes).

Fig.5 Menu para configurao do boto da toolbar

FACULDADE DE ESTATSTICA
UFPA

15 / 137

Excel Macros e Visual Basic for Applications

6. Clique sobre o boto Modify Selection- abrindo um menu de tarefas possveis para a
configurao do boto Ver Figura 5
a) No ltimo agrupamento de configuraes possveis existe uma opo designada
por Assign Macro. Esta opo permite indicar qual a macro que dever ser
executada sempre que se clica no boto.
b) No terceiro agrupamento existem 4 estilos diferentes de exibir o boto: s com
texto, com texto e imagem ou somente com imagem. Se selecionar o estilo Texto
e Imagem, ser exibido no boto para alm da imagem o nome associado ao
boto.
c) Na opo Name indique o nome que pretende ver associado ao boto, por default
aparece o nome da macro. (repare que aparece um & atrs da letra que aparece a
sublinhado)
d) Para alterar a imagem associada ao boto poder: optar por uma imagem
diferente, alterar a que est a visualizar ou a construir a sua. Para isso clique
sobre a tarefa de Change Button Image, selecione o logotipo pretendido, se
nenhum o satisfizer e pretender criar o seu selecione o logotipo que representa
um quadrado vazio. Para o poder (re)desenhar a imagem, na lista de tarefas
disponibilizada pelo boto Modify Selection opte por Edit Button Image e crie a
sua imagem que poder reeditar.

DISSOCIAR UMA MACRO DE UM BOTO


1. Tools / Customize
2. Arraste o boto da toolbar at ao documento
3. Solte-o

FACULDADE DE ESTATSTICA
UFPA

16 / 137

Excel Macros e Visual Basic for Applications

Run
1. Tools / Macro / Macros
2. Na caixa de dilogo Macros seleciona-se a macro pretendida na lista da Macro Name
(Figura 6)
3. Clique sobre o boto Run

Fig.6 Janela para seleo da macro a executar

FACULDADE DE ESTATSTICA
UFPA

17 / 137

Excel Macros e Visual Basic for Applications

Comando no Menu

ASSOCIAO DE UMA MACRO A UM COMANDO DO


MENU
1. View / Toolbars / Customize
2. Na janela do Customize encontra-se no Commands Tab
3. Selecione a categoria Macro
4. Na area respeitante aos Commands ser exibido um item de Custom Menu Item,
selecione-o e arraste-o com o rato at a uma posio do menu que lhe interesse por
exemplo pode introduzir numa das listas de opes do menu (File, View,) ou ento
criar como uma nova opo do Menu..

Fig.7 Caixa de dilogo para atribuir uma macro a um comando do menu

5. Se pretender criar uma nova lista no menu dever :


FACULDADE DE ESTATSTICA
UFPA

18 / 137

Excel Macros e Visual Basic for Applications

a) Selecionar a categoria New Menu


b) Na rea dos Commands ser exibida a opo New Menu, que dever arrastar at
barra dos menus
c) Poder alterar o seu nome clicando no boto de Modify Selection
d) Esta nova lista ter o mesmo comportamento que a outras

Fig.8 Caixa de dilogo para criar um novo menu na barra dos menus

6. Na janela de Customize poder ainda utilizar dois botes que se encontram na rea do
Selected Command:
c) Description que exibe um texto explicando o que o comando selecionado faz.
d) Modify Selection semelhante ao clique sobre o menu ou comando de menu
criado, exibe uma srie de tarefas possveis para configurao (Ver o item 6 do
captulo Associar uma Macro a um Boto)

FACULDADE DE ESTATSTICA
UFPA

19 / 137

Excel Macros e Visual Basic for Applications

DISSOCIAO
1. Tools / Customize
2. Arraste o Menu ou Comando do Menu at ao documento e solte-o

FACULDADE DE ESTATSTICA
UFPA

20 / 137

Excel Macros e Visual Basic for Applications

Editor de Visual Basic for Applications


1. Tools / Macro / Visual Basic Editor - para aceder ao Editor
2. Posicionando-se no corpo de uma macro, na janela do lado direito inferior, poder
executar a macro atravs de: Run / Run Sub-UserForms (figura 9) ou boto Run.

Fig.9 Execuo de uma macro no Editor de Visual Basic for Applications

FACULDADE DE ESTATSTICA
UFPA

21 / 137

Excel Macros e Visual Basic for Applications

REMOVER MACROS
A remoo das macros poder ser feita:
no ambiente Excel, ou
no Editor de VBA

Remoo de Macros em Ambiente Excel


1. Tools / Macro / Macros
2. Seleciona-se a Macro a remover
3. Clica-se no boto Delete
4. Pede a confirmao e apaga se confirmar

Remoo de Macros no Editor de VBA


2. Tools / Macro / Visual Basic Editor - para aceder ao Editor
3. Podem-se apagar as macros que se encontrem na janela do lado direito inferior e que
tm inicio com a palavra Sub e fim com as palavras End Sub (Ver capitulo de funes e
procedimentos)

FACULDADE DE ESTATSTICA
UFPA

22 / 137

Excel Macros e Visual Basic for Applications

Editor de Visual
Basic for
Applications

FACULDADE DE ESTATSTICA
UFPA

23 / 137

Excel Macros e Visual Basic for Applications

Para aceder ao editor de Visual Basic for Applications: Tools / Macro / Visual Basic Editor

Figura 10 Editor de Visual Basic for Applications

Encontrar o cran dividido em trs grandes reas: Project Explorer, Properties Window e
do lado direito a janela de edio de texto.

FACULDADE DE ESTATSTICA
UFPA

24 / 137

Excel Macros e Visual Basic for Applications

PROJECT EXPLORER
Se a janela no estiver visvel ative-a atravs do View / Project Explorer ou utilizando o
boto ou combinaes de letras associadas a esta tarefa.
Nesta janela poder visualizar a hierarquia dos projetos de Visual Basic for Applications
ativos nesse momento.
Entre eles dever encontrar um cujo nome corresponde ao nome do WorkBook do Excel
com que est a trabalhar. E.g. VBAProject (Book1). dentro deste projeto que dever
trabalhar para que todas as funcionalidades que implemente estejam nele ativas sempre que
necessrio.

Figura 11 Janela do Project Explorer

FACULDADE DE ESTATSTICA
UFPA

25 / 137

Excel Macros e Visual Basic for Applications

Assim se fizer o desdobramento do seu VBAProject, encontrar um folder cuja designao


Microsoft Excel Objects, e um outro designado Modules (se este no aparecer significa
que o seu projeto ainda no possui qualquer macro implementada. Para criar este folder
dever fazer: Insert / Module).
No folder do Microsoft Excel Objects, encontrar todos os objetos que fazem parte do seu
documento: as WorkSheets e o WorkBook (que no fundo o conjunto de WorkSheets). Se
clicar duplamente em cada um destes objetos, uma nova janela ser visualizada na rea da
direita, em cada uma dessas reas poder definir a ao a ser executada em funo dos
eventos de cada objeto.
No Folder Modules, aparecer o conjunto de ficheiros (mdulos) onde poder programar as
suas macros. Clicando duplamente em cada um dos mdulos indicados poder visualizar as
macros, que o compem, na janela da direita.

FACULDADE DE ESTATSTICA
UFPA

26 / 137

Excel Macros e Visual Basic for Applications

PROPERTIES WINDOW
Se a janela das propriedades no estiver visvel ative-a atravs do View / Properties
Window ou utilizando o boto ou combinaes de letras associadas a esta tarefa.

Figura 12 Janela de propriedades

Nesta janela poder visualizar e alterar as propriedades que definem cada objeto: o nome neste caso.

FACULDADE DE ESTATSTICA
UFPA

27 / 137

Excel Macros e Visual Basic for Applications

JANELA DE EDIO
A janela de edio exibir a cada momento o cdigo em Visual Basic for Applications
associado ao elemento selecionado na janela do Project Explorer.

Figura 13 Janela de edio

FACULDADE DE ESTATSTICA
UFPA

28 / 137

Excel Macros e Visual Basic for Applications

OBJECT BROWSER
No Editor de Visual Basic for Applications poder encontrar ajuda para o desenvolvimento
do seu procedimento. Assim:
Clique no cone do Object Browser ou View/Object Browser ou F2
Na Caixa de Drop-Down onde aparece referido <All Libraries>, selecione a aplicao
para a qual pretende ajuda neste caso Excel. Convm referir que poder utilizar as
funes de toda e qualquer aplicao.
Na rea intitulada por Classes aparecem todos os objetos especficos para o
manuseamento da aplicao selecionada. A classe especial designada por Globals
refere-se s funes que esto disponveis na aplicao independentemente dos objetos
selecionados.
Selecione um dos objetos e visualize do lado direito os Members of <Elemento
selecionado>
Para cada membro da classe dispe de um help on-line que o esclarece sobre a
respectiva funo e funcionamento, dando um exemplo que poder testar. Para tal basta
clicar sobre o boto de Help da janela do Object Browser.

HELP ON-LINE
O Editor de Visual Basic for Applications, disponibiliza ao utilizador um sistema de ajuda
constante. Assim, quando se constroiem procedimentos, na janela de edio, medida que
a linguagem escrita o editor abre oportunamente listas de opes para ajudar a escrever o
cdigo.

FACULDADE DE ESTATSTICA
UFPA

29 / 137

Excel Macros e Visual Basic for Applications

AS CORES DO VBA
Na Janela de Edio so programados, armazenados e exibidos os procedimentos VBA
criados.
Porm, o texto envolvido em cada procedimento dotado de uma srie de cores diferentes,
sendo que cada uma tem significado diferente.

Cor

Significado

Azul

Palavras-Chave da linguagem. Ex: Sub, End Sub, Function, If, Then,


Else, While, Loop,

Vermelho

Sempre que escreve na janela uma linha em linguagem VBA, o editor


vai rectificar a sintaxe da linguagem por forma a indicar se existe ou
no algum erro de escrita. Se for detetado um erro a linha fica a
vermelho e exibida uma mensagem de erro, seno todas as palavras
so reconhecidas, coloridas da cor da respectiva categoria e alteradas
para letras maisculas ou minsculas, conforme esteja pr-definido.

Preto

Nome de variveis, procedimentos, valores, operadores,

Verde

Comentrio introduzidos no seio dos procedimentos. Estes


comentrios servem para o utilizador poder associar algumas
explicaes aos procedimentos realizados. De referir que as palavras
com esta cor so ignoradas no procedimento, i.e., no produzem
qualquer efeito na sua execuo. Para introduzir comentrios bastar
que o caractere anteceda o texto a introduzir.

Amarelo

Um sombreado amarelo poder aparecer sobre a linha que identifica


um procedimento. Esta cor simboliza a ocorrncia de um erro na
execuo do respectivo procedimento e o estado de execuo do
mesmo, i.e., o procedimento iniciou a execuo, durante a qual
detetou um erro e agora est parado, mas ainda em execuo. Quando
isto acontecer no dever voltar a dar ordem de execuo do
procedimento, sem antes parar (Stop) a execuo mal sucedida.

FACULDADE DE ESTATSTICA
UFPA

30 / 137

Excel Macros e Visual Basic for Applications

Funes e
SubRotinas

FACULDADE DE ESTATSTICA
UFPA

31 / 137

Excel Macros e Visual Basic for Applications

Como foi referido anteriormente, quando se grava uma macro no Excel, este tem um
comportamento em background que realiza a respectiva codificao para Visual Basic for
Applications. Este resultado bem visvel quando procedemos edio de uma macro no
Editor de Visual Basic for Applications. Cada macro que se cria tem um comportamento
concreto e autnomo relativamente a outras macros implementadas, e tem como objetivo
executar um determinado nmero de instrues1 que respondam s exigncias do utilizador.
Cada macro criada d origem a um procedimento ou rotina. Existem dois tipos de rotinas:
as subrotinas ou rotinas Sub, e
as funes.

Entenda-se instruo como uma tarefa a executar que corresponde a uma linha de cdigo.

FACULDADE DE ESTATSTICA
UFPA

32 / 137

Excel Macros e Visual Basic for Applications

SUBROTINAS
Definio de SubRotinas
As SubRotinas so aquelas cuja definio delimitada pelas palavras-chave Sub e EndSub.
Assim se reparar todas as macros que grava no Excel so deste tipo. Repare ainda como
que so definidas:
Sub <nome_da_macro> ( )
<corpo_da_macro>
End Sub
Estas SubRotinas so designadas pelo nome 2 que lhe atribumos e no recebem parmetros3
do exterior, tm como funo desempenhar um conjunto de tarefas que compem o seu
corpo. O corpo da macro, assim composto por um conjunto de instrues, sendo que cada
instruo diferente necessita de estar numa linha diferente. Contudo, quando se trata de
instrues demasiado grandes o editor faz a sua partio por diversas linhas, recorrendo ao
operador _, por forma a facilitar a leitura.

O nome da rotina pode ser qualquer um desde que no contenha espaos, comece por caracteres alfa

Para ter a noo do que so parmetros recorde-se do funcionamento das funes do Excel, que para
executarem determinada funo necessitavam de receber parmetros que colocamos entre parntesis
separados por virgulas.

FACULDADE DE ESTATSTICA
UFPA

33 / 137

Excel Macros e Visual Basic for Applications

Trabalhar no Editor de VBA Criar uma SubRotina


Para criar uma SubRotina necessrio que exista um mdulo onde se possa escrever.
Uma vez posicionado nesse mdulo poder:
Escrever a macro integralmente, ou
Recorrer ao Insert / Procedure para que o Visual Basic for Applications lhe crie a
estrutura (Figura 14)

Figura 14 Caixa de Dilogo para a criao de uma nova rotina

Assim dever indicar o tipo de rotina a criar Sub e o nome que pretende dar
macro (ou rotina ou procedimento ou SubRotina) 4. Automaticamente ele criar a
estrutura da rotina, neste caso ficaria:
Sub Macro1( )
End Sub

Nomes alternativos para fazer referncia a um conjunto de instrues.

FACULDADE DE ESTATSTICA
UFPA

34 / 137

Excel Macros e Visual Basic for Applications

Execuo de uma SubRotina


SubRotina e Macro so duas designaes para a mesma realidade, portanto tudo o que foi
referido relativamente a Macros vlido tambm para as SubRotinas. (Consultar captulo
das Macros)
Neste contexto a execuo de SubRotinas segue o mesmo mecanismo das macros. Porm
neste momento j se pode referir uma nova forma de executar as macros ou SubRotinas
dentro de outras rotinas, i.e., quando se escreve dentro de uma rotina o nome de outra a
execuo da rotina tem continuidade na execuo da rotina que est a ser invocada.

FUNES
Definio de Funes
Funes so rotinas cuja definio comea com a palavra-chave Function e termina com as
palavras End Function. Todas as funes que utiliza no Excel so deste tipo de rotina. A
sua definio tem a estrutura seguinte:
Function <Nome da Funo> ( <parametro1>, <parametro2>,)

<Nome da Funo> = <Valor / Expresso>

End Function
A funo identificada pelo nome, pelo nmero e tipo de parmetros recebidos, e tem
como objetivo executar um conjunto de instrues e produzir um valor final. Isto , sempre
que se pretender executar uma funo sabido priori que ela produzir um valor.
Recorde-se como exemplo a funo SUM, esta recebe por parmetro um conjunto de
valores que se pretendem somar, sabe-se que o resultado da aplicao dessa funo ao
conjunto de valores ser o respectivo somatrio.
Para definir o valor produzido por uma funo basta no seu interior, atribuir ao nome da
funo um determinado valor ou expresso.

FACULDADE DE ESTATSTICA
UFPA

35 / 137

Excel Macros e Visual Basic for Applications

Definio do tipo de parmetros e do tipo da funo


Todos os elementos de input e output de uma funo tm um tipo de dados atribudo.
Assim os parmetros devero ser definidos com o tipo de dados respectivo e a funo
dever ser definida do tipo de dados que ela envie para o exterior.
Aps isto poder-se- refinar a definio de uma funo:
Function <Nome da Funo> ( <parametro1> As <Tipo>, ) As <Tipo>

<Nome da Funo> = <Valor / Expresso>

End Function

Nota: Se os tipos no forem definidos ser assumido por default como sendo do tipo
Variant

FACULDADE DE ESTATSTICA
UFPA

36 / 137

Excel Macros e Visual Basic for Applications

Trabalhar no Editor de VBA Criar uma Funo


Para criar uma Funo necessrio que exista um modulo onde se possa escrever.
Uma vez posicionado nesse mdulo poder:
Escrever a macro integralmente, ou
Recorrer ao Insert / Procedure para que o Visual Basic for Applications lhe crie a
estrutura (Figura 15)

Figura 15 Caixa de Dilogo para a criao de uma nova rotina - funo

Nesta caixa de dilogo dever indicar o tipo de rotina a criar Function e o nome
que pretende dar funo. Automaticamente o Visual Basic for Applications criar
a estrutura da rotina, que neste caso ficaria:

Function IVA( )
End Function

FACULDADE DE ESTATSTICA
UFPA

37 / 137

Excel Macros e Visual Basic for Applications

Execuo de uma Funo


Uma vez que uma funo produz um valor ela poder ser executada:
dentro de uma clula numa WorkSheet, semelhana de qualquer uma outra funo do
Excel
dentro de qualquer outra funo ou SubRotina.

Com base na seguinte funo, analisemos as formas de execuo com mais pormenor:

Figura 16 Janela de Edio com a funo IVA

FACULDADE DE ESTATSTICA
UFPA

38 / 137

Excel Macros e Visual Basic for Applications

EXECUO DENTRO DE UMA CLULA


1. Posicione-se na clula onde pretende inserir a funo
2. Insert / Function
3. Selecione a categoria User Defined repare que aparece listada a funo que acabou de
criar IVA (Figura 17)

Figura 17 Caixa de Dilogo para introduo da funo

FACULDADE DE ESTATSTICA
UFPA

39 / 137

Excel Macros e Visual Basic for Applications

4. Clique em OK e de imediato uma janela de ajuda vir auxiliar a utilizao da sua


funo (Figura 18)

Figura 18 Caixa de Dilogo para apoio utilizao da funo

5. Introduza os parmetros e clique em OK (Figura 19)

Figura 19 Caixa de Dilogo para apoio utilizao da funo introduo de valores

Em suma:
Qualquer funo poder ser chamada a partir da WorkSheet do Excel, sendo que a sua
chamada ser realizada semelhana de qualquer outra funo: numa clula
= <nome da funo> (<Param_1> , <Param_2>)

FACULDADE DE ESTATSTICA
UFPA

40 / 137

Excel Macros e Visual Basic for Applications

EXECUO DENTRO DE UMA ROTINA


Quando dentro de uma rotina se faz referncia ao nome de uma outra rotina a execuo da
primeira passa pela execuo daquela que est a ser invocada.
No exemplo que se segue, a funo Valor_Liquido faz uma chamada funo IVA por
forma a que, o valor por esta produzido, seja adicionado varivel Valor, e assim produzir
o output final da funo Valor_Liquido.

Figura 20 Funo Valor_Liquido ao ser executada d ordens de execuo funo IVA

FACULDADE DE ESTATSTICA
UFPA

41 / 137

Excel Macros e Visual Basic for Applications


Um outro exemplo poder elucidar melhor:

Figura 21 A Subrotina Ident_Maior ao ser executada d ordens de execuo funo Ver_Maior

FACULDADE DE ESTATSTICA
UFPA

42 / 137

Excel Macros e Visual Basic for Applications

DIFERENAS ENTRE FUNES E ROTINAS


As funes so similares s subrotinas, existem simplesmente trs diferenas:
1. As Funes Comeam com a palavra-chave Function e terminam com as palavras End
Function
2. As Funes podem ser chamadas a partir de frmulas introduzidas numa WorkSheet
3. As funes retornam valores para as frmulas ou subrotinas que as chamarem

REGRAS PARA A PASSAGEM DE PARMETROS


Regra 1: Como uma funo retorna um valor, esta dever ser utilizada numa expresso.
Quando uma funo utilizada do lado direito de uma assignao, ou como argumento de
uma outra rotina, dever-se- passar os parmetros dentro de parntesis
Regra 2: Pode-se chamar uma funo ou subrotina com a palavra-chave Call, neste caso
dever-se-o colocar todos os parmetros entre parntesis.
Regra 3: Quando uma rotina chamada de forma isolada e sem a palavra-chave Call, no
se deve utilizar parntesis.

FACULDADE DE ESTATSTICA
UFPA

43 / 137

Excel Macros e Visual Basic for Applications

Variveis

MANUSEAMENTO COM VARIVEIS


FACULDADE DE ESTATSTICA
UFPA

44 / 137

Excel Macros e Visual Basic for Applications

O que so variveis?
As variveis constituem repositrios temporrios de dados, podendo ser utilizadas para
diversos fins.

Figura 22 Manuseamento de Variveis

FACULDADE DE ESTATSTICA
UFPA

45 / 137

Excel Macros e Visual Basic for Applications

Assignao de valores a variveis:


Quando se pretende atribuir valores a variveis dever-se- indicar o nome da varivel, o
operador "=" e o valor que se pretende que a varivel armazene.
<Nome_Varivel> = <Valor>
Pela observao do procedimento Adio - Figura 22- podemos verificar que as variveis
Parcela_1 e Parcela_2 armazenam os valores introduzidos pelo utilizador atravs das
InputBox (Ver captulo "InputBox e MsgBox"). Tambm varivel Total vai ser atribudo o
valor resultante da adio das duas parcelas - Total = Parcela_1 + Parcela_2.

Utilizao de variveis como se fossem valores:


O nome da varivel representa o contedo da mesma, i.e., sempre que mencionar o nome
da varivel o seu contedo que ser considerado.
No exemplo da figura 22, pode-se constatar que na expresso:
Total = Parcela_1 + Parcela_2
Parcela_1 representa o primeiro valor introduzido e Parcela_2 representa o segundo valor,
no se trata de adicionar o nome de duas variveis, mas adicionar os contedos que elas
armazenam.

FACULDADE DE ESTATSTICA
UFPA

46 / 137

Excel Macros e Visual Basic for Applications

TIPOS DE VARIVEIS
O tipo de varivel est associado ao gnero de informao que esta tem hiptese de
armazenar
Boolean 2 bytes Permite armazenar valores Boolenaos True ou False
Byte 1 Byte permite armazenar nmeros sem sinal entre 0 e 255
Currency - 8 bytes permite armazenar moeda
Date 8 Bytes permite armazenar datas
Double 8 bytes permite armazenar um real desde -1.79769313486232E308 at 4.94065645841247E-324 para valores negativos, e desde 1.79769313486232E308
at 4.94065645841247E-324 para valores positivos.
Single 4 bytes permite armazenar um real desde -3.402823E38 at
-1.4011298E-45, para valores negativos e desde 3.402823E38 at
1.4011298E-45, para valores positivos
Integer 2 bytes - permite armazenar nmeros inteiros entre -32.768 e 32767
Long 4 bytes permite armazenar nmeros inteiros entre -2 147 483 648 e
2 147 483 648
Object 4 bytes utilizado para fazer referncia a um objeto do Excel
String 1 byte por caractere permite armazenar conjuntos de caracteres
Variant 16 bytes - permite armazenar qualquer tipo de dados
User-Defined permite armazenar valores de tipos diferentes

FACULDADE DE ESTATSTICA
UFPA

47 / 137

Excel Macros e Visual Basic for Applications

DECLARAO DE VARIVEIS
Dim I_Numero As Integer
Onde:
Dim Palavra chave que indica uma declarao de variveis (abreviatura de dimenso)
I_Numero - nome da varivel a utilizar
As palavra chave utilizada para separar o nome da varivel do tipo de dados
Integer tipo de dados atribudo varivel

possvel na mesma declarao de variveis declarar variveis de diversos tipos:

Dim var1 As Integer, var2 As Date, var3 As Double


Para declarar diversas variveis do mesmo tipo:

Dim var_1, var_2, var_3 As Currency

VARIVEIS VANTAGENS DA UTILIZAO


Simplificam a codificao, principalmente quando se necessita de utilizar um valor
especifico inmeras vezes
Com variveis o cdigo mais rpido

FACULDADE DE ESTATSTICA
UFPA

48 / 137

Excel Macros e Visual Basic for Applications

VARIVEIS DO TIPO OBJETO


Uma varivel objeto representa uma referncia a um objeto. Uma varivel de extrema
importncia que facilita a codificao e melhora a performance da subrotina.

Declarao da Varivel Objeto


Dim <Var_Objeto> As Object

Atribuio de uma varivel Objeto


Set <Var_Objeto> = <Objeto>

Onde:
Set palavra chave que indica a assignao de uma varivel objeto
<Var_Objeto> - Varivel Objeto
= - Operador de assignao
<Objeto> - Objeto a ser atribudo varivel

FACULDADE DE ESTATSTICA
UFPA

49 / 137

Excel Macros e Visual Basic for Applications

Utilizao Genrica da Varivel Objeto


A utilizao genrica do tipo Objeto serve para suportar qualquer tipo de objeto Excel
(WorkBook,WorkSheet,Range,)
Exemplo:
Dim Range_1 as Object
Range_1 = Worksheet(1).Range(A1)
Range_1.Value = 10

Utilizao Especifica da Varivel Objeto


Utiliza-se o tipo exato do objeto que se pretende atribuir varivel. Esse tipo especifico de
objetos coincide com o nome dos objetos em EXCEL.
Dim Range_1 As Range
Dim WB_1 As Workbook
Dim WS_1 As WorkSheet
Dim XL As Aplicativo

Exemplo:
Dim Range_1 as Range
Range_1 = Worksheet(1).Range(A1)
Range_1.Value = 10

FACULDADE DE ESTATSTICA
UFPA

50 / 137

Excel Macros e Visual Basic for Applications


Contudo estas declaraes tambm podem ser feitas da seguinte forma genrica:
Dim Range_1 As Object
Dim WB_1 As Object
Dim WS_1 As Object
Dim XL As Object

Ento qual o interesse de definir as variveis de forma especifica se o


podemos fazer de forma genrica?
Por uma questo de performance, se utilizar um objeto genrico, o VBA antes de executar
qualquer funo com o objeto tem que primeiramente o identificar (perdendo tempo) em
subrotinas simples essa diferena no substancial mas quando se trata de grandes
subrotinas j se denotam diferenas significativas.

FACULDADE DE ESTATSTICA
UFPA

51 / 137

Excel Macros e Visual Basic for Applications

VARIVEIS DECLARAO OPCIONAL E O


TIPO VARIANT
A declarao de variveis opcional, se as variveis no forem declaradas o VBA faz a sua
declarao por default. Assim sempre que a instruo do Dim omitida para uma varivel,
essa assume o tipo Variant.

Os Prs e Contras da Utilizao do tipo Variants

PRS

Diminui o nmero de linhas de cdigo

No necessrio estar preocupado se a varivel est ou no declarada porque o VBA


automaticamente o faz

CONTRAS

Aumenta o tempo de execuo o VBA primeiro precisa de reconhecer o tipo de dados


com os quais est a trabalhar.

Este tipo de dados consome mais memria (uma vez que tem que alocar espao para
qualquer tipo de dados que lhe seja atribudo) 16 bytes mais um byte por caractere se
for String => problemas de performance para subrotinas grandes.

No possvel saber o tipo de dados que uma determinada varivel contm


dificultando a deteco de erros.

FACULDADE DE ESTATSTICA
UFPA

52 / 137

Excel Macros e Visual Basic for Applications

Variveis Declarao Forada


Para que o VBA detecte um erro sempre que uma varivel no seja declarada dever fazer:

Tools/Options
Editor Tab
Ativar Require Variable Declaration

Ou ento, escrever no incio de cada mdulo Option Explicit


Neste caso sempre que seja detetada uma varivel que ainda no foi declarada d uma
mensagem de erro - Variable Not Defined

FACULDADE DE ESTATSTICA
UFPA

53 / 137

Excel Macros e Visual Basic for Applications

VARIVEIS TIPOS DEFINIDOS PELO


UTILIZADOR - ESTRUTURAS
Definio do Tipo
A primeira fase constituda pela definio do tipo:

Type Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
Criou-se um tipo de dados que representa uma estrutura com dados de diferentes tipos. Esta
definio dever ocorrer no incio do mdulo VBA.

Onde:
Type

Palavra-Chave que indica a definio de um tipo de


dados criado pelo utilizador.

Dados_Pessoais

Nome atribudo ao tipo de dados.

Nome As String

Primeiro elemento da estrutura de dados definida.

Idade As Integer

Segundo elemento da estrutura de dados definida.

DataNascimento As Date

Terceiro elemento da estrutura de dados definida.

BI As Long

Quarto elemento da estrutura de dados definida.

End Type

Palavra-Chave que indica o fim da definio da


estrutura de dados.

FACULDADE DE ESTATSTICA
UFPA

54 / 137

Excel Macros e Visual Basic for Applications

Utilizao das Estruturas de Dados


Como utilizar as estruturas de dados:
Sub Tipos_definidos_Utilizador()
Dim Pessoa As Dados_Pessoais
Pessoa.Nome = Francisco
Pessoa.DataNascimento = #8/7/73#
Pessoa.Idade = WorksheetFunction.Year(Date)_
WorksheetFunction.Year(Pessoa.DataNascimento)
Pessoa.BI = 103582915
MsgBox 5Pessoa.Nome & Chr(13) & , Idade & Pessoa.Idade & Chr(13) & _
, Data de Nascimento & Pessoa.DataNascimento & Chr(13) & _
, com o BI nmero _ & Pessoa.BI
End Sub

Ver captulo InputBox e MsgBox

FACULDADE DE ESTATSTICA
UFPA

55 / 137

Excel Macros e Visual Basic for Applications

VARIVEIS ARRAYS
O que um Array ?
Um Array uma varivel que representa um conjunto de variveis do mesmo tipo.
Os Arrays podem ser multi-dimensionais, onde todas as dimenses so indexadas
numericamente.

ARRAY UNI-DIMENSIONAL
0
1
2
3
4
5

Um array uni-dimensional constitudo por uma nica lista de elementos indexveis. Esta
lista tem um elemento inicial e um outro final sendo que a cada elemento da lista
corresponde um nico ndice, traduo do lugar que ocupa na lista, que o identifica
univocamente.

FACULDADE DE ESTATSTICA
UFPA

56 / 137

Excel Macros e Visual Basic for Applications

ARRAY BI-DIMENSIONAL
0

2
0
1
2
3

Um array bi-dimensional um pouco mais complexo e constitudo por um conjunto de


listas do mesmo comprimento, este formato normalmente conhecido como array ou
matriz. portanto constituda por linhas e colunas e cada elemento identificado por um
ndice composto pela intercepo dos nmeros da linha e da coluna.

FACULDADE DE ESTATSTICA
UFPA

57 / 137

Excel Macros e Visual Basic for Applications

Declarao de um array

ARRAYS UNI-DIMENSIONAIS
Dim ArrayNumerico(10) As Integer
Array_Numerico o nome da varivel array, o nmero entre parntesis indica o nmero de
elementos que o array pode armazenar, isto
Array_Numerico
0
1
2
3
4
5
6
7
8
9
Em que cada elemento do tipo Integer.

ARRAYS BI-DIMENSIONAIS
Dim Tabela_Textual (5, 4 ) As String
Tabela_textual o nome da varivel, os nmero entre parntesis indicam que a tabela ir ter
5 linhas e 4 colunas, podendo assim armazenar 20 elementos do tipo String.
Tabela_Textual
0

2
0
1
2
3

FACULDADE DE ESTATSTICA
UFPA

58 / 137

Excel Macros e Visual Basic for Applications

Utilizao de um Array

PARA ACEDER AO ELEMENTO


<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ])

ATRIBUIO DE VALORES
<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ]) = <Valor>

Exemplo 1:
Sub Pases()
Dim Pases(3) As String
Pases (0) = "Portugal"
Pases(1) = "Brasil"
Pases(2) = "Moambique"
MsgBox "Pases Armazenados:" & Chr(13) & Pases(0) & Chr(13) & Pases(1) &_ Chr(13)
& Pases(2)
End Sub

Aps a atribuio de valores a cada elemento do array, este passa a ter o contedo seguinte:
Pases
Portugal
Brasil
Moambique

0
1
2

Valor estes que sero exibidos atravs da MsgBox.

FACULDADE DE ESTATSTICA
UFPA

59 / 137

Excel Macros e Visual Basic for Applications

Exemplo 2:
Option Base 1
Sub Utilizacao_Array()
Dim Lotaria(3) As Integer
Lotaria(1)=int(10000*Rnd())
Lotaria(2)=int(10000*Rnd())
Lotaria(3)=int(10000*Rnd())
MsgBox Nmeros da lotaria: & Lotaria(1) & , & Lotaria(2) & , &_
Lotaria(3)
End Sub

Option Base e Array Bounds


A indexao de um array por default tem inicio em 0, sendo que os respectivos ndices vo
de 0 a dimenso-1. Para alterar a base de indexao por forma a ter inicio em 1 basta
colocar no inicio do mdulo Option Base 1
Contudo se pretender que um array comece noutro nmero que no seja 0 ou 1,
necessrio especificar os limites inferior e superior do ndice quando da declarao do
array.

Exemplo:
Sub Utilizacao_Array()
Dim Lotaria(4 To 5) As Integer
Lotaria(4)=int(10000*Rnd())
Lotaria(5)=int(10000*Rnd())
MsgBox Nmeros da lotaria: & Lotaria(4) & , & Lotaria(5)
End Sub

FACULDADE DE ESTATSTICA
UFPA

60 / 137

Excel Macros e Visual Basic for Applications

Constantes

FACULDADE DE ESTATSTICA
UFPA

61 / 137

Excel Macros e Visual Basic for Applications

O QUE SO CONSTANTES ?
Constantes so valores que no alteram durante a execuo de uma rotina. So declaradas
da mesma forma que as variveis, a nica diferena reside no fato da atribuio ser feita na
mesma instruo da declarao, e s poder ser feita uma nica vez.
Const <Nome_Constante> As <Tipo> = <Valor>
Const <Nome_Constante> As <Tipo> = <Expresso de clculo>

Figura 23 Manuseamento de Constantes

FACULDADE DE ESTATSTICA
UFPA

62 / 137

Excel Macros e Visual Basic for Applications

InputBox e
MsgBox

FACULDADE DE ESTATSTICA
UFPA

63 / 137

Excel Macros e Visual Basic for Applications

O QUE SO ?
Para haver interao entre o utilizador e uma macro ou programa necessrio que exista
um interface de comunicao. Este poder ser mais ou menos complexo e completo,
contudo existem dois elementos bsicos para estabelecer esta ligao: InputBox e MsgBox.
Neste contexto a InputBox uma funo que permite ao utilizador introduzir dados no
programa portanto um mecanismo de input. O MsgBox um mecanismo de Output e
permite ao utilizador visualizar os dados produzidos pelo programa.

INPUTBOX
O que faz
1. Exibe no cran uma janela com uma caixa text box para a insero de dados.
2. Espera que o utilizador introduza os dados e/ou acione um dos botes.
3. Como uma funo produz um valor final. Este consiste nos dados inseridos pelo
utilizador na forma textual - String.

Sintaxe
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
Numa primeira avaliao da funo, pode-se dizer que a mesma possui diversos
parmetros, mas somente o primeiro obrigatrio, sendo que todos os outros quando
ignorados assumem valores atribudos por default.

Parmetros
Parmetro
FACULDADE DE ESTATSTICA
UFPA

Comentrio
64 / 137

Excel Macros e Visual Basic for Applications

Prompt
(Obrigatrio )

Expresso textual exibida como mensagem na janela de input.


A dimenso mxima de 1024 caracteres.
Se se pretender construir uma mensagem com mais do que uma
linha poder utilizar o caractere Enter - Chr(13). A juno dos
elementos que constituem a mensagem realizada atravs do
operador &.
Exemplo:
"A Soma de 3 com 5 :" & Chr(13) & " 8 "

Title
(Facultativo)

Titulo da janela de input. Se este for omitido, aparecer por


default o nome da aplicao.

Default
(Facultativo)

Expresso inserida por default na caixa de insero de dados e


constituir a resposta por default se o utilizador no introduzir
outra.
Se este parmetro for omitido aparecer uma text box vazia.

Xpos
(Facultativo)

Nmero que identifica a distncia horizontal entre o lado


esquerdo do cran e a janela de input. Se este valor for omitido a
janela aparecer centrada horizontalmente.

Ypos
(Facultativo)

Nmero que identifica a distncia vertical entre o lado superior


do cran e a janela de input. Se este valor for omitido a janela
ficar posicionada a 1/3 da parte inferior do cran

HelpFile
(Facultativo)

Nome do ficheiro de Help que ser utilizado para dar apoio ao


preenchimento desta janela. Se for indicado este parmetro o
seguinte obrigatrio.

Context
(Facultativo)

Nmero do ndice do tpico de Help constante no ficheiro


HelpFile, e que corresponde janela em questo.

Ateno: Se pretender enviar mais que um parmetro optativo respeite a ordem


atravs de , (virgulas)
Exemplo:

InputBox(Introduza o Nome da Aplicao:, , Excel)


Na janela de input ser exibida a mensagem Introduza o Nome da Aplicao:, o ttulo da
caixa ser o definido por default e o valor na caixa de insero ser Excel.

FACULDADE DE ESTATSTICA
UFPA

65 / 137

Excel Macros e Visual Basic for Applications

MSGBOX
O que faz
1. Exibe no cran uma janela com uma mensagem.
2. Espera que o utilizador acione um dos botes.
3. Como uma funo produz um valor final. Devolve um nmero inteiro indicando o
boto que foi clicado.

Sintaxe
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
semelhana da InputBox , pode-se dizer que a mesma possui diversos parmetros, mas
somente o primeiro obrigatrio, sendo que todos os outros quando ignorados assumem
valores atribudos por default.

FACULDADE DE ESTATSTICA
UFPA

66 / 137

Excel Macros e Visual Basic for Applications

Parmetros
Parmetro
Prompt
(Obrigatrio )

Comentrio
Expresso textual exibida como mensagem na janela de input.
A dimenso mxima de 1024 caracteres.
Se se pretender construir uma mensagem com mais do que uma
linha poder utilizar o caractere Enter Chr(13)
Exemplo:
"A Soma de 3 com 5 :" & Chr(13) & " 8 "

Buttons
(Facultativo)

Nmero que identifica o tipo de botes que se pretende


visualizar na janela de output. Ver tabela seguinte.
Se for omitido assumir o valor 0 por default.

Title
(Facultativo)

Titulo da janela de input. Se este for omitido, aparecer por


default o nome da aplicao.

HelpFile
(Facultativo)

Nome do ficheiro de Help que ser utilizado para dar apoio ao


preenchimento desta janela. Se for indicado este parmetro o
seguinte obrigatrio.

Context
(Facultativo)

Nmero do ndice do tpico de Help constante no ficheiro


HelpFile, e que corresponde janela em questo.

Ateno: Se pretender enviar mais que um parmetro optativo respeite a ordem


atravs de , (virgulas)

Exemplo:

MsgBox(Erro de Sintaxe !!!, , Mensagem de Erro)


Na janela de output ser exibida a mensagem Erro de Sintaxe, o boto exibido ser o de
OK (por default) e o titulo da janela ser Mensagem de Erro.

FACULDADE DE ESTATSTICA
UFPA

67 / 137

Excel Macros e Visual Basic for Applications

Constante de VBA

Valor

VbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbDefaultButton4
VbApplicationModal

0
1
2
3
4
5
16
32
48
64
0
256
512
768
0

VbSystemModal

4096

Descrio
Exibe somente o boto de OK.
Exibe os botes OK e Cancel.
Exibe os botes Abort, Retry, e Ignore.
Exibe os botes Yes, No, e Cancel .
Exibe os botes Yes e No.
Exibe os botes Retry e Cancel.
Exibe o cone de Critical Message.
Exibe o cone de Warning Query.
Exibe o cone de Warning Message.
Exibe o cone de Information Message.
O primeiro boto o selecionado por default.
O segundo boto o selecionado por default.
O terceiro boto o selecionado por default.
O quarto boto o selecionado por default.
Application modal o utilizador s depois de responder
MsgBox que poder dar continuidade ao trabalho na
aplicao corrente.
System modal - o utilizador s depois de responder
MsgBox que poder dar continuidade ao trabalho em
qualquer aplicao em curso no sistema.

Pela anlise desta tabela poder constatar que existem diferentes agrupamentos de cdigos:
para definir o tipo de botes (0-5), para definir o tipo de cones (16,32,48,64), para definir o
boto selecionado por default (0,256,512,768) e para indicar o modo de execuo (0 e
4096). Poder adicionar os cdigos e assim fazer combinaes entre diversas opes destes
4 grupos, contudo nunca dever adicionar mais do que um cdigo por agrupamento.

Exemplos:
FACULDADE DE ESTATSTICA
UFPA

68 / 137

Excel Macros e Visual Basic for Applications

Para a instruo:
MsgBox "Erro de Sintaxe!!!", 2 + 48 + 512 + 4096, "Mensagem de Erro"

exibida a seguinte janela:

Figura 24 MsgBox

Para a instruo:
MsgBox "Erro de Sintaxe!!!", 5 + 64 + 256 + 4096, "Mensagem de Erro"
exibida a seguinte janela:

Figura 25 MsgBox

FACULDADE DE ESTATSTICA
UFPA

69 / 137

Excel Macros e Visual Basic for Applications

Valores Produzidos
Como j foi referido, a funo MsgBox produz um valor em funo do boto acionado,
assim produzir como output um dos valores constantes da tabela seguinte:

Constante de VBA
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo

FACULDADE DE ESTATSTICA
UFPA

Valor

Boto Acionado

1
2
3
4
5
6
7

OK
Cancel
Abort
Retry
Ignore
Yes
No

70 / 137

Excel Macros e Visual Basic for Applications

Domnio das
variveis,
constantes e
rotinas

FACULDADE DE ESTATSTICA
UFPA

71 / 137

Excel Macros e Visual Basic for Applications

O QUE O DOMINIO?
Scope ou domnio de um elemento refere-se rea na aplicao na qual esse mesmo
elemento pode ser acedvel e utilizado, ou seja onde que o elemento reconhecido.

DOMNIO DAS VARIVEIS


Refere-se rea onde a varivel permanece ativa, mantendo o valor que lhe vai sendo
atribudo.
Existem 3 nveis de domnio para as variveis:

mbito do Procedimento ou Procedimental


mbito do Modulo ou Modular
mbito do Projeto

As declaraes de tipos User Defined que so escritas no Declarations do mdulo tm


domnio de Projeto.

FACULDADE DE ESTATSTICA
UFPA

72 / 137

Excel Macros e Visual Basic for Applications

mbito do Procedimento
Estas variveis so declaradas no corpo do procedimento com recurso palavra chave Dim.
So variveis criadas quando da execuo do procedimento e automaticamente destrudas
quando o procedimento termina, sendo que s so reconhecidas no seio do procedimento
que as declarou. Assim sendo, qualquer tentativa realizada por um procedimento no
sentido de trabalhar com variveis definidas no corpo de um outro procedimento no ter
xito.

Exemplo
Sub Ambito_Procedimento()
Dim Var_1 As Integer
Var_1 = InputBox (Introduza um nmero Inteiro)
MsgBox Foi este o nmero que introduziu: & Var_1
Ambito_Procedimento_2
End Sub
Sub Ambito_Procedimento_2()
MsgBox Foi este o nmero que introduziu: & Var_1
End Sub

A execuo destas rotinas resultar no seguinte:


A primeira mensagem (MsgBox no Procedimento Ambito_Procedimento)exibir o
nmero introduzido pelo utilizador que fora armazenado na varivel Var_1.
A segunda mensagem, oriunda da instruo MsgBox do Procedimento
Ambito_Procedimento_2 no exibir o valor introduzido, porque a varivel Var_1 nele
referida considerada como uma varivel interna do processo, e portanto criada dentro do
procedimento Ambito_Procedimento_2. Como tal, embora possua o mesmo nome que a
varivel da rotina Ambito_Procedimento_1 no existe qualquer ligao entre elas, so duas
variveis distintas.
Neste caso se se pretendesse que o valor da primeira varivel fosse reconhecido no
procedimento chamado, ter-se-ia de o passar por parmetro.

FACULDADE DE ESTATSTICA
UFPA

73 / 137

Excel Macros e Visual Basic for Applications

mbito do Mdulo
Uma varivel como mbito do Mdulo pode ser acedida por todas as rotinas existentes
no mdulo onde a varivel declarada.
Para declarar uma varivel do nvel modular, dever declar-la com a palavra chave Dim
na seo Declarations do respectivo mdulo VBA. Neste caso qualquer varivel a
declarada ser considerada de nvel modular por default, para tornar esse fato mais explicito
poder-se- utilizar a palavra chave Private na declarao:
Ex:
Private Var_2 As String

Exemplo:
Dim Var_1 As Integer ou Private Var_1 As Integer
Sub Ambito_Modulo()
Var_1 = InputBox (Introduza um nmero Inteiro)
Ambito_Modulo_2
End Sub
Sub Ambito_Modulo_2()
MsgBox Foi este o nmero que introduziu: & Var_1
End Sub

Neste caso como a varivel reconhecida no mdulo por qualquer rotina nele existente,
desde que seja referida sempre pelo mesmo nome, o procedimento Ambito_Modulo_2 ir
exibir o valor introduzido pelo utilizador no procedimento Ambito_Modulo.

FACULDADE DE ESTATSTICA
UFPA

74 / 137

Excel Macros e Visual Basic for Applications

mbito do Projeto
As variveis assim definidas tm o mbito correspondente a todo o projeto, isto podem
ser acedidas e alteradas em todos e quaisquer mdulos. Para declarar variveis deste
tipo dever faz-lo na seo Declarations de qualquer mdulo, para tal dever utilizar a
palavra chave Public.

Exemplo:
No Module_1 tem-se:
Public Var_1 As Integer
Sub Ambito_Projeto()
Var_1 = InputBox (Introduza um nmero Inteiro)
Ambito_Projeto _2
End Sub

No Module_2 tem-se:
Sub Ambito_Projeto _2()
MsgBox Foi este o nmero que introduziu: & Var_1
End Sub

A execuo do procedimento Ambito_Projeto no Module_1 mandou executar o


procedimento Ambito_Projeto do Module_2, e o valor atribudo varivel Var_1 foi
acedido posteriormente noutro procedimento de outro mdulo, dado tratar-se de uma
varivel global.

FACULDADE DE ESTATSTICA
UFPA

75 / 137

Excel Macros e Visual Basic for Applications

DOMNIO DAS CONSTANTES


semelhana das variveis tambm as constantes tm 3 nveis de domnio:

mbito do Procedimento ou Procedimental


mbito do Modulo ou Modular
mbito do Projeto

mbito do Procedimento
Estas constantes so declaradas no corpo do procedimento com recurso palavra chave
Const. S tm existncia dentro do procedimento onde so declaradas.

Exemplo:
Sub Ambito_Procedimento()
Const Taxa_Desc As Single = 0.05
Dim Desconto As Double
Desconto = InputBox (Introduza o montante das Compras) * Taxa_Desc
MsgBox O desconto de : & Desconto
End Sub

FACULDADE DE ESTATSTICA
UFPA

76 / 137

Excel Macros e Visual Basic for Applications

mbito do Mdulo
Uma constante com mbito do Mdulo pode ser utilizada por todas as rotinas existentes
no mdulo onde definida.
Para declarar uma constante a nvel modular, dever declar-la com a palavra chave Const
na seo Declarations do respectivo mdulo VBA. Neste caso qualquer constante a
declarada ser considerada de nvel modular por default, para tornar esse fato mais explcito
poder se utilizar a palavra chave Private na declarao:
Ex:
Private Const Const_1 As String

mbito do Projeto
As constantes assim definidas tm o mbito correspondente a todo o projeto, isto
podem ser utilizadas em todos e qualquer mdulo. Para definir constantes deste tipo dever
faz-lo na seo Declarations de qualquer mdulo, para tal dever utilizar a palavra
chave Public.
Ex:
Public Const Const_1 As String

FACULDADE DE ESTATSTICA
UFPA

77 / 137

Excel Macros e Visual Basic for Applications

DOMNIO DE SUBROTINAS E FUNES


Estas s tm dois nveis de escopo: o nvel do projeto e o nvel do mdulo.
Por default as rotinas so de mbito do projeto sem qualquer indicao adicional. Contudo
poder tornar este fato mais explicito pela introduo da Palavra-Chave Public, que em
termos operacionais no adicionar qualquer funcionalidade, mas em termos de leitura dar
uma maior percepo.

Exemplo:
Public Sub Ambito_Procedimento()
Const Taxa_Desc As Single = 0.05
Dim Desconto As Double
Desconto = InputBox (Introduza o montante das Compras) * Taxa_Desc
MsgBox O desconto de : & Desconto
End Sub

Para que uma rotina tenha o mbito do mdulo onde est definida, dever ser antecedida
pela palavra chave Private.

FACULDADE DE ESTATSTICA
UFPA

78 / 137

Excel Macros e Visual Basic for Applications

Estruturas de
Controle

FACULDADE DE ESTATSTICA
UFPA

79 / 137

Excel Macros e Visual Basic for Applications

O QUE SO ESTRUTURAS DE CONTROLE?


O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da
execuo da rotina. Estas estruturas do ao programador um poder enorme para construir
rotinas bastante complexas e flexveis.

QUAIS AS ESTRUTURAS
VBA Control
If -Then - Else

Testa uma condio e executa um determinado conjunto de


instrues consoante o resultado dessa avaliao

For Next

Executa uma determinada tarefa um determinado nmero de


vezes.

While-Wend

Executa uma determinada tarefa enquanto que uma


determinada condio permanea verdadeira, i.e., com o
valor True.

Do Loop

Executa uma determinada tarefa enquanto que a avaliao de


uma condio permanea True ou ento at que seja True.

Select - Case

Seleciona um dos segmentos de cdigo a processar mediante


a avaliao consecutiva de condies.

For Each Next

Realiza uma determinada tarefa repetitiva em cada objeto de


uma coleo ou em cada item de um array.

FACULDADE DE ESTATSTICA
UFPA

80 / 137

Excel Macros e Visual Basic for Applications

IF-THEN-ELSE
Funo IF do Excel
Recorrendo funo IF do Excel, recorde:
=IF( <condio>, <se condio verdadeira>, <se condio falsa> )
A funo IF tinha o seguinte comportamento:
1. Avalia a condio, que dever ser uma expresso booleana colocada como primeiro
parmetro;
2. Se a condio for verdadeira, ento (then) realiza as operaes colocadas no segundo
parmetro;
3. Caso contrrio (else), realiza as operaes que formam o terceiro parmetro
A estrutura IF do VBA tem o mesmo tipo de funcionamento, o que difere a sintaxe.

Sintaxe da Estrutura If-Then-Else


If <Condio> Then
<se condio verdadeira>
[ Else
<se condio falsa> ]
End If
A palavra Else opcional num If-Then-Else Statement, sendo que no caso de ser omitida, a
avaliao negativa da condio implica uma sada automtica da Instruo If.

FACULDADE DE ESTATSTICA
UFPA

81 / 137

Excel Macros e Visual Basic for Applications

Aplicao Prtica

Figura 26 Aplicao Prtica com um IF

A rotina Aposta recebe uma aposta do utilizador e mediante o Sorteio a realizar pela
respectiva funo, verifica se o jogador ganhou ou no a aposta, comunicando-lhe esse fato.

FACULDADE DE ESTATSTICA
UFPA

82 / 137

Excel Macros e Visual Basic for Applications

Para uma maior clarificao do funcionamento do IF, atenda ao quadro seguinte:

If

Palavra chave que indica o inicio de uma instruo If-Then-Else

Nsorteio = NAposta

A condio a testar. Serve para determinar a sequncia a dar execuo


da rotina. Da avaliao desta condio pode-se obter um de dois valores
True ou False, sendo que depende deste resultado o caminho a prosseguir.
Se for True executar as instrues que seguirem a palavra-chave Then
at encontrar a palavra chave Else, no executando mais nada dentro do
IF, caso contrrio executar o cdigo que se seguir palavra chave Else
at ao End If.

Then

Palavra chave que determina o fim da condio teste. Todas as instrues


que tm inicio nesta palavra-chave at palavra-chave Else sero
executadas se a condio for verdadeira.

Instrues a executar se a condio for verdadeira.


MsgBox Parabns!!
Acertou em cheio! O
nmero sorteado foi o
&NSorteio
Else

Palavra-chave que determina o trmino de execuo das instrues


quando o resultado da avaliao for True, e que determina o inicio das
instrues a executar se o resultado da condio for False.

MsgBox Continue a Instrues a executar se a condio for falsa.


Tentar!! O nmero
sorteado foi o
&NSorteio
End If

Palavra-chave que indica o fim do controle de If-Then-Else e como tal


onde se deve retomar as instrues para prosseguir a execuo do
procedimento.

FACULDADE DE ESTATSTICA
UFPA

83 / 137

Excel Macros e Visual Basic for Applications

A instruo adicional ElseIf


Esta instruo prope uma condio alternativa se o teste da condio anterior tiver tido um
resultado negativo.

APLICAO PRTICA
Pretende-se criar uma macro que classifique etariamente um indivduo em funo da sua
idade. A classificao pretendida a seguinte:

Idade

Classe Etria

Menos de 3 anos
Dos 3 aos 12
Dos 13 aos 17
Dos 18 aos 25
Dos 26 aos 65
Mais de 65

Beb
Criana
Adolescente
Jovem
Adulto
Idoso

Figura 27 Aplicao Prtica com ElseIf

FACULDADE DE ESTATSTICA
UFPA

84 / 137

Excel Macros e Visual Basic for Applications

FOR NEXT
Permite a execuo de uma tarefa durante um determinado nmero de vezes.

Sintaxe
For <Inicializao do Contador> To <Valor > [ Step <Valor a Incrementar>]
<Instrues a realizar em cada iterao>
Next

Aplicao Prtica
Pretende-se criar uma rotina que recebendo a base e a potncia calcule o valor respectivo.

Figura 28 Procedimento que calcula a potncia de um nmero

A instruo For-Next tem como funo calcular a potncia. O mesmo efeito poderia ser
obtido recorrendo expresso Resultado = Base ^ Potncia, contudo para fins de
demonstrao de funcionamento este exemplo bastante simples.

FACULDADE DE ESTATSTICA
UFPA

85 / 137

Excel Macros e Visual Basic for Applications

A FUNO DAS VARIVEIS:


Varivel
Base
Potncia
Contador

Resultado

Funo
Elemento a elevar.
Nmero de vezes a multiplicar a base.
Conta o nmero de vezes que a base j foi multiplicada, uma
varivel que ser automaticamente incrementada em cada looping do
ciclo.
Varivel que armazena o resultado sucessivo por cada vez que se
multiplica.

CONSTRUO DO CICLO:
For

Palavra-chave que indica o inicio do ciclo For-Next

Contador = 1 To Potncia Expresso que contm a inicializao do contador, indicando


o valor de inicio e de fim. Assim, o nmero de vezes que o
ciclo executado ser: Valor_Fim Valor_Inicio +1.
A palavra To utilizada para separar o valor do contador no
momento inicial do valor no momento final. (Traduo: O
contador iniciar-se- a um e atingir o valor mximo
traduzido pela varivel Potncia)
Step 1

Palavra chave utilizada para especificar o valor a incrementar


ou decrementar ao contador do ciclo por cada vez que o loop
concretizado. Normalmente o valor a incrementar um,
contudo qualquer outro valor pode ser utilizado, desde
nmeros decimais, a nmeros negativos (Provocando assim a
decrementao). A palavra-chave Step opcional, sempre
que for omitida assumido 1 como o valor a incrementar por
default.

Resultado = Resultado *
Base

Instruo a realizar de cada vez que o ciclo for executado.


Neste caso a instruo nica, contudo poder-se-o adicionar
outras instrues.

Next

Palavra Chave que indica o fim de um ciclo For-Next .


Sempre que a execuo do ciclo chega instruo Next
incrementa a varivel contador e volta ao inicio do ciclo.

FACULDADE DE ESTATSTICA
UFPA

86 / 137

Excel Macros e Visual Basic for Applications

TRADUO INTEGRAL
For Contador = 1 To Potncia Step 1
Resultado = Resultado * Base
Next
Para o nmero de vezes, a iniciar em 1 at que atinja, o valor Potncia, pela incrementao
de 1 na execuo de cada ciclo, dever multiplicar sucessivamente o resultado acumulado,
pela base.

Funcionamento do Ciclo:
A primeira execuo do ciclo distingue-se das restantes por a ela estar associada a
inicializao do contador, sendo o restante procedimento semelhante a qualquer outra
execuo.
No inicio de cada execuo do ciclo, a varivel contador comparada com o valor final de
execuo. Se o Step for um valor positivo (incrementar) e o valor do contador for superior
ao valor final significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o
cdigo acabar a execuo da instruo For-Next e seguir na linha de cdigo que esteja
situada imediatamente a seguir, caso contrrio executa uma vez mais o ciclo e incrementa a
varivel contador. Por outro lado, se o Step contiver valor negativo (decrementar) e o
valor do contador for inferior ao valor final significa que o ciclo j foi realizado o nmero
de vezes pretendido, e ento o cdigo acabar a execuo da instruo For-Next e seguir
na linha de cdigo que esteja situada imediatamente a seguir, caso contrrio executa uma
vez mais o ciclo e decrementa a varivel contador.

Perigos associados utilizao do ciclo For-Next:

No definir o limite de execuo (no atribuir valor varivel que o define)


Definir erroneamente o Step, por forma a que nunca seja obtido o valor que determina o
fim da execuo
estas condies implicaro que o ciclo no tenha fim Ciclos Infinitos

FACULDADE DE ESTATSTICA
UFPA

87 / 137

Excel Macros e Visual Basic for Applications

Outra Aplicao
Pretende-se criar uma rotina para calcular um fatorial.

Figura 29 Procedimento que calcula o fatorial

FACULDADE DE ESTATSTICA
UFPA

88 / 137

Excel Macros e Visual Basic for Applications

WHILE-WEND
A estrutura While-Wend tem um funcionamento similar ao For-Next. Realiza um looping
um determinado nmero de vezes, at que uma determinada condio seja verdadeira.

Sintaxe
While <Condio>
<Instrues a realizar em cada iterao>
Wend

Aplicao Prtica

Figura 30 Procedimento Lotaria Viciada

A instruo While-Wend tem como funo gerar nmeros aleatrios entre 1 e 10 por forma
a encontrar o nmero da aposta, e saber qual o nmero de lanamentos necessrios para que
aquele valor fosse obtido.

FACULDADE DE ESTATSTICA
UFPA

89 / 137

Excel Macros e Visual Basic for Applications

A FUNO DAS VARIVEIS:


Varivel

Funo

Num_Lotaria

Nmero sorteado. Este ser inicializado a 0 por forma a que no


corresponda a nenhum valor introduzido pelo utilizador e assim possa
realizar o primeiro sorteio.

Aposta

Nmero em que o utilizador pretende apostar.

Num_Lanc

Nmero de lanamentos realizados at obter o resultado da aposta.


Este valor tem de ser incrementado cada vez que realizado um
sorteio.

CONSTRUO DO CICLO:
While

Palavra-chave que indica o inicio do ciclo WhileWend

Num_Lotaria <> Aposta

Condio teste utilizada para determinar o


terminus da realizao do ciclo. Se esta condio
for Verdadeira executa as instrues que esto
dentro do While-Wend, se for Falsa a execuo
do ciclo terminada tendo o programa sequncia
nas instrues que seguem a palavra chave Wend.

Num_Lotaria = Int ( 9 * Rnd() + 1 )

Instruo a realizar de cada vez que o ciclo


executado. Tem como funo gerar nmeros
aleatrios entre 1 e 10.

Num_Lanc = Num_Lanc +1

Instruo a realizar de cada vez que o ciclo


executado. Tem como funo fazer a contagem
de quantos lanamentos foram realizados at se
obter o valor da aposta.

Beep

Instruo a realizar de cada vez que o ciclo


executado. Tem como funo apitar em cada
sorteio.

Wend

Palavra Chave que indica o fim de um ciclo


While-Wend.

FACULDADE DE ESTATSTICA
UFPA

90 / 137

Excel Macros e Visual Basic for Applications

TRADUO INTEGRAL
While Num_Lotaria <> Aposta
Num_Lotaria = Int ( 9 * Rnd() + 1 )
Num_Lanc = Num_Lanc +1
Beep
Wend
Enquanto o nmero sorteado no for igual ao valor da aposta, o sorteio continua, o que
implica sortear um nmero contabilizar o nmero de sorteios realizados e apitar para que o
utilizador tenha a percepo do que est a ser realizado.

Funcionamento do Ciclo
Existe uma fase de inicializao das variveis envolvidas na condio Teste para garantir
o correto funcionamento do ciclo.
Avalia a condio teste e se for verdadeira executa todas as instrues at palavra-chave
Wend voltando de novo avaliao da condio, se for falsa prossegue a execuo da
rotina nas instrues que se localizam depois da palavra-chave Wend.

Perigos associados utilizao do ciclo While-Wend

M ou inexistncia de inicializao das variveis envolvidas na condio-teste.


Garantir que as variveis envolvidas na condio teste podero ter valores diferentes
por cada vez que o ciclo seja executado.
Garantir que em algum momento a condio teste falsa e o ciclo termina a sua
execuo.

A no verificao destas condies implicar que o ciclo no tenha fim Ciclos


Infinitos

FACULDADE DE ESTATSTICA
UFPA

91 / 137

Excel Macros e Visual Basic for Applications

Outra Aplicao
Pretende-se realizar um jogo de geografia. Tente compreender o seu funcionamento.

Figura 31 Corpo do jogo

Figura 32 Funo Auxiliar

FACULDADE DE ESTATSTICA
UFPA

92 / 137

Excel Macros e Visual Basic for Applications

DO LOOP
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas possibilidades
que esto limitadas quela estrutura:

Do Loop permite posicionar a condio teste no inicio ou fim do loop, a condio no


fim do Loop evita uma inicializao prvia do valor das variveis envolvidas na
condio teste, dado que essa inicializao pode ser feita no decurso do ciclo com
valores reais.

Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma
expresso for verdadeira ou at que (until) a condio seja verdadeira (facilidade
conseguida atravs do operador Not)

Sintaxe
Poder ser:
Do [{While | Until} <condio>]
<Instrues a realizar em cada iterao>
Loop

Ou ento:
Do
<Instrues a realizar em cada iterao>
Loop[{While | Until} <condio>]

Aplicaes Prticas
Utilizando a condio teste no inicio do Loop e com a palavra While
FACULDADE DE ESTATSTICA
UFPA

93 / 137

Excel Macros e Visual Basic for Applications

Figura 33 Condio teste no inicio com While

Utilizando a condio teste no inicio do Loop e com a palavra Until

Figura 34 Condio teste no inicio com Until

Utilizando a condio teste no fim do Loop e com a palavra Until

FACULDADE DE ESTATSTICA
UFPA

94 / 137

Excel Macros e Visual Basic for Applications

Figura 35 Condio teste no fim com Until

Utilizando a condio teste no fim do Loop e com a palavra While

Figura 36 Condio teste no fim com While

FACULDADE DE ESTATSTICA
UFPA

95 / 137

Excel Macros e Visual Basic for Applications

SELECT CASE
Permite a escolha de um percurso mediante a avaliao de n condies. de extrema
utilidade para evitar os Ifs encadeados, dando um maior grau de legibilidade e
simplicidade ao cdigo construdo.

Sintaxe
Select Case <Expresso a ser avaliada>
[Case <Valor da Expresso> [Instrues a realizar]]
...[Case Else [Instrues a realizar na situao residual]]
End Select

Aplicao Prtica
Recordem o processo resolvido com recurso a If Then Else ElseIf (figura 23)
FACULDADE DE ESTATSTICA
UFPA

96 / 137

Excel Macros e Visual Basic for Applications


Mais facilmente seria resolvido com recurso estrutura Select Case

Figura 37 Aplicao da estrutura Select Case rotina Classe_Etaria

CONSTRUO DA ESTRUTURA
FACULDADE DE ESTATSTICA
UFPA

97 / 137

Excel Macros e Visual Basic for Applications


Select Case

Palavras-Chave que indicam o inicio de um controle


Select Case

Idade

Expresso sujeita a teste, i.e., varivel cujo contedo


est a ser avaliado. Esta varivel vai ser comparada
sucessivamente
pelos
valores
alternativos
apresentados nas instrues Case <Valor>, se
encontrar o valor nalguma dessas opes Case
executar as linhas de cdigo que a tero inicio at
opo de Case seguinte. Caso o valor da varivel a
ser comparada no corresponda a nenhum valor
apresentado nas opes Case, existe uma opo Case
especial - Case Select - para os restantes valores,
neste caso sero executadas todas as instrues que
se localizem entre o Case Else e o Case Select.

Case Is<3 ou
Case Is<=12 ou
Case Is<=17 ou
Case Is<=25 ou
Case Is<=65 ou

Expresses Case. Se o valor da varivel for igual a


qualquer um dos valores apresentados em cada uma
destas expresses, o fluxo de execuo ter
continuidade na linha abaixo da expresso case que
faz o matching, at que uma nova expresso case
seja encontrada. Sendo que nessa altura termina o
controle Select Case dando continuidade ao
programa nas instrues que se seguirem ao End
Select.

Case Else

Ser a instruo Case residual, selecionada somente


se nenhuma das outras o tiver sido. Neste caso sero
realizadas todas as instrues de cdigo que se lhe
seguirem at expresso End Select. Findo o qual
seguir todas as instrues aps o controle Select
case.

End Select

Palavra-Chave que indica o fim do controle Select


Case.

FACULDADE DE ESTATSTICA
UFPA

98 / 137

Excel Macros e Visual Basic for Applications

FOR EACH NEXT


A estrutura For-each-next de longe a mais potente do VBA. De fato permite executar uma
determinada instruo em todos os elementos de uma coleo de objetos, ou em todos os
elementos de um array.
Esta estrutura quando aplicada em arrays no funciona para a atualizao dos valores do
array, mas somente para a extrao do seu contedo. Contudo quando aplicada a colees
de objetos pode s-lo para alterao das suas propriedades ou extrao de valores.

Sintaxe
For Each <Varivel do tipo dos elementos do grupo> In <Grupo>
<Instrues a realizar para cada elemento do grupo>
Next

Aplicaes Prticas

FACULDADE DE ESTATSTICA
UFPA

99 / 137

Excel Macros e Visual Basic for Applications

UTILIZANDO ARRAYS
Pretende-se inicializar um array com um conjunto de 5 pases e posteriormente visualizar
os elementos introduzidos.

Figura 38 Exemplo no-funcional

Repare que o exemplo, poder estar conceptualmente correto, mas no funciona devido
restrio do For-Each-Next para a alterao de valores de arrays tarefa impossvel de
realizar. A alternativa poderia ser, a exibida na figura 39:

Figura 39 Alterao da sub-rotina Inicializa_Array

FACULDADE DE ESTATSTICA
UFPA

100 / 137

Excel Macros e Visual Basic for Applications

Construo do Ciclo
For Each

Palavras-Chave que indicam o inicio de um controle


For-Each

Pais

Varivel qual vo ser atribudos sucessivamente


todos os elementos do grupo de objetos. Este grupo
pode ser constitudo por uma array ou uma coleo
de objetos. Sendo que se se tratar de um array esta
varivel dever ser do tipo Variant. Se se tratar de
uma coleo, esta varivel poder assumir o tipo
Variant, o tipo Object genrico ou o tipo Object
especifico que corresponde ao tipo de objetos a que a
coleo remete.

In

Palavra-chave que separa a varivel do grupo.

Array_Pais

Grupo de elementos a tratar. Poder ser um array ou


uma coleo de objetos. O ciclo ser executado
tantas vezes quantos os elementos constantes do
grupo. Na primeira iterao, a varivel assume o
valor do primeiro item do grupo, como tal em cada
loop este valor ser atualizado pelo item seguinte.

MsgBox Pais

Instruo a realizar em cada volta do ciclo. Sendo


que em cada volta a varivel Pais ter um elemento
diferente.

Next

Palavra-chave que indica o fim do loop. Neste


momento o programa ter continuao na instruo
For Each correspondente se a varivel no
corresponder ao ltimo item do grupo, caso contrrio
sair da instruo For Each-Next prosseguindo a
execuo da rotina na linha de cdigo abaixo do
Next.

FACULDADE DE ESTATSTICA
UFPA

101 / 137

Excel Macros e Visual Basic for Applications

UTILIZANDO COLEES DE OBJETOS

Figura 40 Rotina para atribuir nomes s WorkSheets do Excel

Figura 41 Rotina para demonstrar o manuseamento de ranges

FACULDADE DE ESTATSTICA
UFPA

102 / 137

Excel Macros e Visual Basic for Applications

Colees de
Objetos e Objetos

FACULDADE DE ESTATSTICA
UFPA

103 / 137

Excel Macros e Visual Basic for Applications

O QUE SO OBJETOS ?
Objetos so elementos caracterizados por um conjunto de propriedades, e que tm
subjacente um determinado comportamento. Por exemplo, uma janela do windows um
objeto, caracterizada por um nome, um ttulo, uma dimenso, um posicionamento dentro do
cran,, e tem um comportamento inerente, pode ser aberta, fechada, minimizada,
maximizada, escondida, redimensionada,
Seguindo esta lgica podemos identificar alguns objetos do ambiente de trabalho Windows:
o boto, o grfico, o menu, o documento, a imagem, a textbox, a frmula, o workbook, a
worksheet, a clula, o conjunto de clulas de uma worksheet,

OBJETOS: PROPRIEDADES, MTODOS E


EVENTOS
Propriedades
As propriedades dos objetos constituem o conjunto de caractersticas que o definem. Por
exemplo: nome, cor, dimenso, designao, valor contido,

Mtodos
Os mtodos traduzem o comportamento de um objeto. Estes mtodos representam
procedimentos que executam uma determinada tarefa, que pode ser complementada atravs
da passagem de argumentos ou parmetros.

FACULDADE DE ESTATSTICA
UFPA

104 / 137

Excel Macros e Visual Basic for Applications

Eventos
Eventos ou acontecimentos, representam todas as atividades que envolvam o objeto e que
normalmente direta ou indiretamente so despoletadas pelo utilizador. Por exemplo: abrir
ou fechar um workbook, clicar sobre um boto ou worksheet, alterar o contedo de um
elemento,
Estes eventos servem para que possamos ativar uma determinada tarefa quando da sua
ocorrncia.

Exemplo:
Suponha que pretende executar uma macro quando abre o seu workbook.
1 Crie a macro que pretende executar.
2 No Editor de Visual Basic, na janela de Projeto Project Window selecione o objeto
ThisWorkBook. Na janela de edio repare nas duas caixinhas que se encontram na parte
superior. A do lado esquerdo indica general clique nela e selecione o elemento workbook,
na caixinha da direita selecione o evento Open.
3 Automaticamente aparecer um procedimento na janela de edio cujo nome ser
Workbook_Open, tudo o que escrever no seu contedo ser executado quando o documento
for aberto, neste caso indique o nome da macro que criou anteriormente.

FACULDADE DE ESTATSTICA
UFPA

105 / 137

Excel Macros e Visual Basic for Applications

OBJETOS MAIS UTILIZADOS NO EXCEL


Os Objetos mais utilizados no Excel so: Application, WorkBook, WorkSheet e Range

Application
Application o objeto de topo hierrquico, representa o prprio Excel.

PROPRIEDADES
Propriedades
Caption

Meno exibida na barra de ttulos do Excel

DisplayAlerts

TRUE as mensagens de alerta so exibidas durante a


execuo da subrotina. False caso contrrio.

Path

Nome da diretoria onde o Excel est instalado.

ScreenUpdating

True altera o cran consoante a subrotina que executa.


Caso contrrio, o cran no alterado durante a execuo da
subrotina.

WindoWorkSheetState

O estado da janela da aplicao:


XlNormal janela tamanho normal
XlMaximized janela tamanho maximizado
XlMinimized janela com tamanho minimizado

DisplayStatusBar

Mostra ou esconde a StatusBar.


True exibe

DisplayFormulaBar

Mostra ou esconde a Barra de Formulas


True exibe

FACULDADE DE ESTATSTICA
UFPA

106 / 137

Excel Macros e Visual Basic for Applications

MTODOS
Mtodos
Calculate

Implica o clculo de todas as frmulas de todas as WorkSheet e


WorkBookS abertos.
Argumentos : no tem

Help

Exibe um tpico do Help de um determinado ficheiro de Help.


Argumentos :
Helpfile: nome do ficheiro, incluindo a path se necessrio
Helpcontextid: nmero que faz referncia ao ndice de help

Quit

Fecha aplicao Excel. (se a propriedade Display alerts estiver com o


valor False, o Excel no propor a gravao de alteraes nos
ficheiros)
Argumentos : no tem

Run

Utilizado para correr uma subrotina de VB ou uma Macro do XL


Argumentos :
Macro: nome da macro ou subrotina a executar
Argumentos que a subrotina necessita para ser executada
arg1:=<valor 1>, arg2:=<valor>,

FACULDADE DE ESTATSTICA
UFPA

107 / 137

Excel Macros e Visual Basic for Applications

WorkBook
O Objeto WorkBook, na hierarquia de objetos segue de imediato o objeto application e
representa um ficheiro de Excel.

PROPRIEDADES
Propriedades
Name

Nome do ficheiro. No permite a alterao do nome, para isso


necessrio proceder ao Save/As

Path

Diretoria onde o ficheiro se encontra

Saved

True se no houve nenhuma alterao no ficheiro desde a


ltima gravao
False caso contrrio
Exemplo:
If not(ativeWorkbook.Saved) Then
AtiveWorkbook.Save
End If

FACULDADE DE ESTATSTICA
UFPA

108 / 137

Excel Macros e Visual Basic for Applications

MTODOS
Mtodos
Ativate

Ativa um documento aberto. Equivalente a ir ao Window e selecionar um


documento aberto, trazendo-o para a janela principal do Excel.
Argumentos: no tem

Close

Fecha um documento.
Argumentos:
SaveChanges se True, o documento gravado antes de ser
fechado; False caso contrrio
FileName se o argumento SaveChanges estiver a TRUE, o
WorkBook gravado com o nome aqui indicado
RoutWorkBook se TRUE e o WorkBook tiver endereos
para envio atribudos, envia o ficheiro por e-mail antes de fechar,
caso contrrio no.

Protect

Protege um documento contra qualquer tipo de alterao


Argumentos:
Password: Password a utilizar na proteo
Structure: True protege tambm a estrutura
WindoWorkSheet: True a estrutura do WorkBook na janela
protegida

Save

Grava o WorkBook.
Argumentos: No Tem

SaveCopyAs

Cria uma cpia do documento em questo


Argumentos:
FileName: nome da cpia pretendida para o ficheiro

FACULDADE DE ESTATSTICA
UFPA

109 / 137

Excel Macros e Visual Basic for Applications

WorkSheet
Na hierarquia situa-se abaixo do objeto WorkBook, uma vez que um WorkBook
constitudo por um conjunto de WorkSheets.

PROPRIEDADES
Propriedades
Index

ndice de uma WorkSheet num WorkBook

Name

Nome da WorkSheet.

UsedRange

Traduz o range na WorkSheet que contm dados.

Visible

True est visvel


False est escondida, mas o utilizador pode vizualiz-la
recorrendo ao Menu Format
XlVeryHidden est escondida e ningum a pode visualizar, a
menos que volte a aplicar uma subrotina que a coloque visvel.

FACULDADE DE ESTATSTICA
UFPA

110 / 137

Excel Macros e Visual Basic for Applications

MTODOS
Mtodos
Ativate

Ativa uma determinada WorkSheet. Equivalente a estarmos a


trabalhar num WorkBook e clicarmos nela para visualizarmos
o seu contedo.
Argumentos: No Tem

Calculate

Provoca o clculo de todas as frmulas constantes da


WorkSheet
Argumentos: No Tem

Delete

Apaga uma WorkSheet do WorkBook.


Argumentos: No Tem

Protect

Protege uma WorkSheet contra qualquer tipo de alterao


Argumentos:
Password: Password a utilizar na proteo
DrawingObjects: True- protege os objetos grficos
Contents True- protege as clulas e contedos
Scenarios True protege os cenrios afetos WorkSheet
UserInterfaceOnly True protege os interfaces contra
alteraes apesar de poder alterar as subrotinas

Cell

Referncia uma clula, atravs dos seus ndices numricos.


Argumentos:
Nmero da Linha
Nmero da Coluna
Ex: Clula C5 ser representado por Cells( 5, 3)

FACULDADE DE ESTATSTICA
UFPA

111 / 137

Excel Macros e Visual Basic for Applications

Range
Objeto utilizado para representar uma ou mais clulas de uma WorkSheet.

PROPRIEDADES
Propriedades
Count
Dependents
Name
Value
Formula
Text

Nmero de Clulas num Range. Read-Only


Retorna um range, que contm todos os dependentes (valores
indexados pelas frmulas)do range em questo. Read-Only
Nome de um range. Read/Write
Valor constante de um range (clula ou conjunto de clulas).
Read/Write
Traduz a frmula contida num range como uma string.
Read/Write
Busca o contedo de uma clula mas em formato de texto.

FACULDADE DE ESTATSTICA
UFPA

112 / 137

Excel Macros e Visual Basic for Applications

MTODOS
Mtodos
Calculate
ClearContents

Copy

OffSet

EntireRow

Select

Cell

Provoca o clculo da frmula constantes do range


Argumentos: No Tem
Apaga o contedo (frmulas e valores) de uma clula,
deixando os formatos.
Argumentos: No Tem
Copia o contedo de um range para um outro de igual
dimenso ou ento para o clipboard.
Argumentos:
Destination range para o qual os valores vo ser copiados (na
ausncia deste parmetro a cpia feita para o clipboard)
Provoca um deslocamento de um determinado nmero de
linhas e de colunas, tendo como base o range ao qual este
mtodo est a ser aplicado.
Argumentos:
RowOffset nmero de linhas que se desloca
ColumnOffset nmero de colunas que se desloca
Faz referncia (s) linha(s) indicadas por um determinado
range.
Argumentos: No Tem
Seleciona o range em questo.
Argumentos:
Replace- (Opcional)
Referncia uma clula, atravs dos seus ndices numricos.
Argumentos:
Nmero da Linha
Nmero da Coluna
Ex: Clula C5 ser representado por Cells( 5, 3)

FACULDADE DE ESTATSTICA
UFPA

113 / 137

Excel Macros e Visual Basic for Applications

OBJETOS SINGULARES VS
DE OBJETOS

COLEES

Objeto Singular refere um nico objeto que pode ser referenciado pelo nome.
Colees de Objetos constituem conjuntos de objetos singulares que so referenciados
pelo ndice que os identifica na coleo.

As colees de objetos tambm podem ser considerados como objetos.


Exemplo:
WorkBooks(Book1.XLS) um conjunto de objetos do tipo WorkSheet, mas tambm
um objeto do tipo WorkBook.

FACULDADE DE ESTATSTICA
UFPA

114 / 137

Excel Macros e Visual Basic for Applications

INDEXAO DE COLEES POR NMERO OU


NOME

Perante uma coleo de objetos necessrio identificar cada um dos diferentes itens que a
compem para que a eles seja possvel aceder.
Por analogia poder-se- mencionar o exemplo do array, este uma varivel plural, dado
que composto por um conjunto de variveis. Quando se pretende aceder a uma posio do
array utiliza-se o nome do array e o ndice da posio requerida.
Assim, a indexao de colees pode ser realizada com base:
em nmeros ou
em nomes.

Indexao com Base em Nmeros


Os nmeros prendem-se com a ordem pela qual o objeto est inserido na coleo (comea
em 1).

Exemplo:
WorkSheets(3).Name=Terceiro

FACULDADE DE ESTATSTICA
UFPA

115 / 137

Excel Macros e Visual Basic for Applications

Indexao com Base no Nome


Seleciona-se um objeto numa coleo pelo nome que est associado ao objeto.

Exemplo:
WorkSheets(Sheet3).Name=Terceiro

VANTAGEM
No necessrio saber a ordem pela qual foi inserido na coleo

DESVANTAGEM
Alterao do nome da sheet provoca erros

Exemplo:
WorkSheets(Sheet3).Name=Terceiro
WorkSheets(Sheet3).Visible=False o objeto no reconhecido

FACULDADE DE ESTATSTICA
UFPA

116 / 137

Excel Macros e Visual Basic for Applications

O Objeto Range uma excepo


O objeto range referido da mesma forma para ser utilizado como um objeto singular ou
coleo de objetos.

TRATAMENTO COMO OBJETO:


Range(A1).Value=1
Equivalente a colocar na primeira clula da Sheet o valor 1.

TRATAMENTO COMO COLEO DE OBJETOS:


Range (A1:F20).Value= 1
Equivalente a colocar em todas as clulas do range A1 a F20 o valor 1.

Ou ento:
Range (A1:F20).Name= Conjunto
Range (Conjunto).Value= 1
Onde, na primeira instruo se atribui ao range A1:F20 o nome Conjunto, e na ltima
instruo se utiliza essa designao para referenciar o respectivo conjunto de clulas e
atribuir-lhe o valor 1.

FACULDADE DE ESTATSTICA
UFPA

117 / 137

Excel Macros e Visual Basic for Applications

REFERNCIA IMPLCITA
Quando se faz referncia a uma clula da worksheet, pode-se faz-lo de diversas formas
equivalentes. No quadro seguinte exibida a equivalncia entre a expresso mais completa
e a mais reduzida, sendo que ambas tm a mesma funo (colocar na clula A1 o valor 1):

Aplication.Workbooks(1).Worksheets(1).Range(A1).Value=1
Range(A1).Value=1
A diferena entre ambas as formas de acesso est no fato da segunda forma
(Range(A1).Value = 1) admitir que se est a trabalhar no workbook e na worksheet que
nesse momento esto ativas no Excel, enquanto que na primeira forma so indicadas as
referncias identificadoras do workbook e da worksheet onde se pretende trabalhar.
Assim, pode-se afirmar que a segunda forma faz uma aluso implcita aplicao, ao
workbook e worksheet onde se trabalha.

Declarao implcita da aplicao:


Para fazer a aluso implicita da aplicao, basta no a indicar, e por default o Excel assume
que se est a trabalhar no seu contexto:

Workbooks(1).Worksheets(1).Range(A1).Value=1

FACULDADE DE ESTATSTICA
UFPA

118 / 137

Excel Macros e Visual Basic for Applications

Declarao implcita do WorkBook:


Omitir a referncia ao workbook, semelhante a assumir o workbook ativo como ambiente
de trabalho. Neste contexto, as expresses abaixo indicadas assumem por default que se
est a trabalhar no Excel, e no workbook que nesse momento estiver ativo.

AtiveWorkbook.Worksheets(1).Range(A1).Value=1
Worksheets(1).Range(A1).Value=1

Declarao implcita da WorkSheet:


O mesmo se aplica relativamente s worksheets.

AtiveSheet.Range(A1).Value=1
Range(A1).Value=1

FACULDADE DE ESTATSTICA
UFPA

119 / 137

Excel Macros e Visual Basic for Applications

Nvel de referncia a privilegiar


Temos aqui representados 7 nveis de codificao:
Ento, se existem tantas formas de referenciar uma clula, qual a forma a previligiar?

Aplication.Workbooks(1).Worksheets(1).Range(A1).Value=1
Workbooks(1).Worksheets(1).Range(A1).Value=1
AtiveWorkbook.Worksheets(1).Range(A1).Value=1
Worksheets(1).Range(A1).Value=1
Ativesheet.Range(A1).Value=1
Range(A1).Value=1
Range(A1)=1

O ideal seria escrever na forma completa, mas existem algumas desvantagens:

cdigo muito denso dificuldades em escrever e ler

maior probabilidade de ocorrncia de erros quando no se sabe precisamente o


contexto em que a aplicao vai ser executada perigoso descrever uma path certinha

FACULDADE DE ESTATSTICA
UFPA

120 / 137

Excel Macros e Visual Basic for Applications

Miscellaneous

FACULDADE DE ESTATSTICA
UFPA

121 / 137

Excel Macros e Visual Basic for Applications

A INSTRUO WITH
A instruo With permite abreviar referncias a objetos. No faz sentido utiliz-lo quando
se pretende utilizar s uma propriedade ou mtodo, mas quando pretendemos utilizar
bastantes.

Aplicao Prtica

Figura 38 Rotina para demonstrar o manuseamento de objetos sem a instruo With

Ou Ento:

Figura 39 Rotina para demonstrar o manuseamento de objetos com a instruo With

FACULDADE DE ESTATSTICA
UFPA

122 / 137

Excel Macros e Visual Basic for Applications

OUTRAS FUNES TEIS DO VBA


Abs
CurDir
Date
Exit Do
Exit For
Exit Function
Exit Sub
Fix
Int
Is Array
IsDate
IsEmpty
IsError
IsNull
IsNumeric
IsObject
Len
Now
Shell
Sqr
Str
StrComp
Time
TypeName
Cint
Cbool
Cdate
CLng
CStr

Valor absoluto de um nmero.


Diretoria MS-DOS corrente.
Data do sistema.
Interrompe a execuo de uma ciclo Do Loop
Interrompe a execuo de um ciclo For Next ou For
Each Next
Provoca a interrupo da execuo de uma funo.
Provoca a interrupo da execuo de uma sub-rotina.
Arredonda um nmero decimal positivo para baixo, e um
negativo para cima. Ex 3,9 ->3 e 3,9 -> -3
Arredonda para cima um nmero decimal positivo ou
negativo. Ex 3,9 ->4 e 3,9 -> -4
True se a expresso um array. False caso contrrio.
True se a expresso do tipo Date. False caso contrrio.
True se nenhum valor foi atribudo varivel.
True se a expresso contiver um erro.
True se a expresso representar o valor NULL.
True se a expresso for numrica.
True se se tratar de um objeto.
Retorna a dimenso de uma String.
Retorna o valor da data e da hora atual.
Corre um programa executvel.
Retorna a raiz quadrada de um nmero.
Retorna a representao String de um nmero.
Realiza a comparao de strings, produzindo True ou
False conforme sejam ou no iguais.
Produz a hora atual.
Retorna o tipo de dados de uma varivel.
Converte uma expresso de forma numrica ou textual
para um valor de tipo inteiro.
Converte uma expresso de forma numrica ou textual
para um valor de tipo booleano.
Converte uma expresso de forma numrica ou textual
para um valor de tipo data.
Converte uma expresso de forma numrica ou textual
para um valor de tipo Long.
Converte uma expresso de forma numrica ou textual
para um valor de tipo String.

FACULDADE DE ESTATSTICA
UFPA

123 / 137

Excel Macros e Visual Basic for Applications


Muitas outras funes do Excel podem ser usadas no VBA, mas com o nome da funo em ingls. Na tabela
que segue so apresentados os nomes adotados na verso em portugus do Excel e a respectiva funo em
ingls do VBA. A funo PROCV, por exemplo, recebe o nome de VLOOKUP, ficando como

Application.WorksheetFunction.VLOOKUP(param1,param2,param3,param4)
Um uso: MsgBox Application.WorksheetFunction.VLookup(1, Range("a1:n8"), 2, False)

FACULDADE DE ESTATSTICA
UFPA

124 / 137

VBA
DCOUNT
DCOUNTA
DSTDEVP
DSTDEV
DGET
DMAX
DAVERAGE
DMIN
DPRODUCT
DSUM
DVAR
DVARP
GETPIVOTDATA
NOW
YEAR
DATE
PROPER
DATEVALUE
DAY
WEEKDAY
DAYS360
EDATE
EOMONTH
YEARFRAC
TODAY
HOUR
MONTH
MINUTE
WORKDAY
SECOND
TIME

EXCEL
BDCONTAR
BDCONTARA
BDDESVPA
BDEST
BDEXTRAIR
BDMX
BDMDIA
BDMN
BDMULTIPL
BDSOMA
BDVAREST
BDVARP
INFODADOSTABELADINMICA
AGORA
ANO
DATA
PRI.MAISCULA
DATA.VALOR
DIA
DIA.DA.SEMANA
DIAS360
EDATE
EOMONTH
FRAOANO
HOJE
HORA
MS
MINUTO
DIATRABALHO
SEGUNDO
TEMPO

DESCRIO
Conta as clulas que contm nmeros em um banco de dados
Conta clulas no vazias em um banco de dados
Calcula o desvio padro com base na populao inteira de entradas selecionadas de um banco de dados
Estima o desvio padro com base em uma amostra de entradas selecionadas de um banco de dados
Extrai de um banco de dados um nico registro que corresponde a um critrio especfico
Retorna o valor mximo de entradas selecionadas de um banco de dados
Retorna a mdia de entradas selecionadas de um banco de dados
Retorna o valor mnimo de entradas selecionadas de um banco de dados
Multiplica os valores em um campo especfico de registros que correspondem ao critrio em um banco de dados
Adiciona os nmeros na coluna de campos de registros do banco de dados que correspondem ao critrio
Estima a varincia com base em uma amostra de entradas selecionadas de um banco de dados
Calcula a varincia com base na populao inteira de entradas selecionadas de um banco de dados
Retorna os dados armazenados em uma tabela dinmica
Retorna o nmero de srie da data e da hora atuais
Converte um nmero de srie em um ano
Retorna o nmero de srie de uma data especfica
Primeira letra de cada palavra em maiscula
Converte uma data na forma de texto para um nmero de srie
Converte um nmero de srie em um dia do ms
Converte um nmero de srie em um dia da semana
Calcula o nmero de dias entre duas datas com base em um ano de 360 dias
Retorna o nmero de srie da data que o nmero indicado de meses antes ou depois da data inicial
Retorna o nmero de srie do ltimo dia do ms antes ou depois de um nmero especificado de meses
Retorna a frao do ano que representa o nmero de dias entre data_inicial e data_final
Retorna o nmero de srie da data de hoje
Converte um nmero de srie em uma hora
Converte um nmero de srie em um ms
Converte um nmero de srie em um minuto
Retorna o nmero de dias teis inteiros entre duas datas
Converte um nmero de srie em um segundo
Retorna o nmero de srie de um horrio especfico

Excel Macros e Visual Basic for Applications

TIMEVALUE
NETWORKDAYS
BESSELI
BESSELJ
BESSELK
BESSELY
BIN2DEC
BIN2HEX
BIN2OCT
COMPLEX
CONVERT
DEC2BIN
DEC2HEX
DEC2OCT
DELTA
ERF
ERFC
GESTEP
HEX2BIN
HEX2DEC
HEX2OCT
IMABS
IMAGINARY
IMARGUMENT
IMCONJUGATE
IMCOS
IMDIV
IMEXP
IMLN
IMLOG10
IMLOG2
IMPOWER

VALOR.TEMPO
DIATRABALHOTOTAL
BESSELI
BESSELJ
BESSELK
BESSELY
BIN2DEC
BIN2HEX
BIN2OCT
COMPLEX
CONVERT
DEC2BIN
DEC2HEX
DEC2OCT
DELTA
ERF
ERFC
GESTEP
HEX2BIN
HEX2DEC
HEX2OCT
IMABS
IMAGINARY
IMARGUMENT
IMCONJUGATE
IMCOS
IMDIV
IMEXP
IMLN
IMLOG10
IMLOG2
IMPOWER

FACULDADE DE ESTATSTICA
UFPA

Converte um horrio na forma de texto para um nmero de srie


Converte um nmero de srie em um nmero representando onde a semana cai numericamente em um ano
Retorna a funo de Bessel In(x) modificada
Retorna a funo de Bessel Jn(x)
Retorna a funo de Bessel Kn(x) modificada
Retorna a funo de Bessel Yn(x)
Converte um nmero binrio em um decimal
Converte um nmero binrio em um hexadecimal
Converte um nmero binrio em um octal
Converte coeficientes reais e imaginrios e um nmero complexo
Converte um nmero de um sistema de medida para outro
Converte um nmero decimal em um binrio
Converte um nmero decimal em um hexadecimal
Converte um nmero decimal em um octal
Testa se dois valores so iguais
Retorna a funo de erro
Retorna a funo de erro complementar
Testa se um nmero maior do que um valor limite
Converte um nmero hexadecimal em um binrio
Converte um nmero hexadecimal em um decimal
Converte um nmero hexadecimal em um octal
Retorna o valor absoluto (mdulo) de um nmero complexo
Retorna o coeficiente imaginrio de um nmero complexo
Retorna o argumento theta, um ngulo expresso em radianos
Retorna o conjugado complexo de um nmero complexo
Retorna o cosseno de um nmero complexo
Retorna o quociente de dois nmeros complexos
Retorna o exponencial de um nmero complexo
Retorna o logaritmo natural de um nmero complexo
Retorna o logaritmo de base 10 de um nmero complexo
Retorna o logaritmo de base 2 de um nmero complexo
Retorna um nmero complexo elevado a uma potncia inteira

126 / 137

Excel Macros e Visual Basic for Applications

IMPRODUCT
IMREAL
IMSIN
IMSQRT
IMSUB
IMSUM
OCT2BIN
OCT2DEC
OCT2HEX
BETAINV
COUNT
COUNTA
CORREL
COVAR
GROWTH
CRITBINOM
KURT
AVEDEV
STDEV
STDEVA
STDEVP
STDEVPA
DEVSQ
NEGBINOMDIST
HYPGEOMDIST
LOGNORMDIST
NORMDIST
NORMSDIST
CHIDIST
BETADIST
EXPONDIST
FDIST

IMPRODUCT
IMREAL
IMSIN
IMSQRT
IMSUB
IMSUM
OCT2BIN
OCT2DEC
OCT2HEX
BETA.ACUM.INV
CONT.NM
CONT.VALORES
CORREL
COVAR
CRESCIMENTO
CRIT.BINOM
CURT
DESV.MDIO
DESVPAD
DESVPADA
DESVPADP
DESVPADPA
DESVQ
DIST.BIN.NEG
DIST.HIPERGEOM
DIST.LOGNORMAL
DIST.NORM
DIST.NORMP
DIST.QUI
DISTBETA
DISTEXPON
DISTF

FACULDADE DE ESTATSTICA
UFPA

Retorna o produto de dois nmeros complexos


Retorna o coeficiente real de um nmero complexo
Retorna o seno de um nmero complexo
Retorna a raiz quadrada de um nmero complexo
Retorna a diferena entre dois nmeros complexos
Retorna a soma de nmeros complexos
Converte um nmero octal em um binrio
Converte um nmero octal em um decimal
Converte um nmero octal em um hexadecimal
Retorna o inverso da funo de densidade da probabilidade beta cumulativa
Calcula quantos nmeros h na lista de argumentos
Calcula quantos valores h na lista de argumentos
Retorna o coeficiente de correlao entre dois conjuntos de dados
Retorna a covarincia, a mdia dos produtos dos desvios pares
Retorna valores ao longo de uma tendncia exponencial
Retorna o menor valor para o qual a distribuio binomial cumulativa menor ou igual a um valor padro
Retorna a curtose de um conjunto de dados
Retorna a mdia dos desvios absolutos dos pontos de dados a partir de sua mdia
Estima o desvio padro com base em uma amostra
Estima o desvio padro com base em uma amostra, inclusive nmeros, texto e valores lgicos
Calcula o desvio padro com base na populao total
Calcula o desvio padro com base na populao total, inclusive nmeros, texto e valores lgicos
Retorna a soma dos quadrados dos desvios
Retorna a distribuio binomial negativa
Retorna a distribuio hipergeomtrica
Retorna a distribuio lognormal cumulativa
Retorna a distribuio cumulativa normal
Retorna a distribuio cumulativa normal padro
Retorna a probabilidade unicaudal da distribuio qui-quadrada
Retorna a funo de densidade da probabilidade beta cumulativa
Retorna a distribuio exponencial
Retorna a distribuio de probabilidade F

127 / 137

Excel Macros e Visual Basic for Applications

GAMMADIST
SKEW
BINOMDIST
STEYX
FISHER
FISHERINV
FREQUENCY
SLOPE
CONFIDENCE
INTERCEPT
NORMINV
NORMSINV
CHIINV
FINV
GAMMAINV
LOGINV
TINV
GAMMALN
LARGE
MAX
MAXA
MEDIAN
AVERAGE
GEOMEAN
HARMEAN
TRIMMEAN
AVERAGEA
SMALL
MIN
MINA
MODE
RANK

DISTGAMA
DISTORO
DISTRBINOM
EPADYX
FISHER
FISHERINV
FREQNCIA
INCLINAO
INT.CONFIANA
INTERCEPO
INV.NORM
INV.NORMP
INV.QUI
INVF
INVGAMA
INVLOG
INVT
LNGAMA
MAIOR
MXIMO
MXIMOA
MED
MDIA
MDIA.GEOMTRICA
MDIA.HARMNICA
MDIA.INTERNA
MDIAA
MENOR
MNIMO
MNIMOA
MODO
ORDEM

FACULDADE DE ESTATSTICA
UFPA

Retorna a distribuio gama


Retorna a distoro de uma distribuio
Retorna a probabilidade de distribuio binomial do termo individual
Retorna o erro padro do valor y previsto para cada x da regresso
Retorna a transformao Fisher
Retorna o inverso da transformao Fisher
Retorna uma distribuio de freqncia como uma matriz vertical
Retorna a inclinao da linha de regresso linear
Retorna o intervalo de confiana para uma mdia da populao
Retorna a intercepo da linha de regresso linear
Retorna o inverso da distribuio cumulativa normal
Retorna o inverso da distribuio cumulativa normal padro
Retorna o inverso da probabilidade unicaudal da distribuio qui-quadrada
Retorna o inverso da distribuio de probabilidade F
Retorna o inverso da distribuio cumulativa gama
Retorna o inverso da distribuio lognormal
Retorna o inverso da distribuio t de Student
Retorna o logaritmo natural da funo gama, G(x)
Retorna o maior valor k-simo de um conjunto de dados
Retorna o valor mximo em uma lista de argumentos
Retorna o maior valor em uma lista de argumentos, inclusive nmeros, texto e valores lgicos
Retorna a mediana dos nmeros indicados
Retorna a mdia dos argumentos
Retorna a mdia geomtrica
Retorna a mdia harmnica
Retorna a mdia do interior de um conjunto de dados
Retorna a mdia dos argumentos, inclusive nmeros, texto e valores lgicos
Retorna o menor valor k-simo em um conjunto de dados
Retorna o valor mnimo na lista de argumentos
Retorna o menor valor na lista de argumentos, inclusive nmeros, texto e valores lgicos
Retorna o valor mais comum em um conjunto de dados
Retorna a posio de um nmero em uma lista de nmeros

128 / 137

Excel Macros e Visual Basic for Applications

PERCENTRANK
STANDARDIZE
PEARSON
PERMUT
POISSON
FORECAST
PROB
LINEST
LOGEST
QUARTILE
RSQ
TREND
CHITEST
FTEST
TTEST
ZTEST
VAR
VARA
VARP
VARPA
WEIBULL
PERCENTILE
ACCRINT
ACCRINTM
AMORDEGRC
AMORLINC
DB

ORDEM.PORCENTUAL
PADRONIZAR
PEARSON
PERMUT
POISSON
PREVISO
PROB
PROJ.LIN
PROJ.LOG
QUARTIL
RQUAD
TENDNCIA
TEST.QUI
TESTEF
TESTET
TESTEZ
VAR
VARA
VARP
VARPA
WEIBULL
PERCENTIL
ACCRINT
ACCRINTM
AMORDEGRC
AMORLINC
BD

DDB

BDD

VDB
COUPDAYBS

BDV
COUPDAYBS

FACULDADE DE ESTATSTICA
UFPA

Retorna a ordem percentual de um valor em um conjunto de dados


Retorna um valor normalizado
Retorna o coeficiente de correlao do momento do produto Pearson
Retorna o nmero de permutaes para um dado nmero de objetos
Retorna a distribuio Poisson
Retorna um valor ao longo de uma linha reta
Retorna a probabilidade de valores em um intervalo estarem entre dois limites
Retorna os parmetros de uma tendncia linear
Retorna os parmetros de uma tendncia exponencial
Retorna o quartil de um conjunto de dados
Retorna o quadrado do coeficiente de correlao do momento do produto de Pearson
Retorna valores ao longo de uma tendncia linear
Retorna o teste para independncia
Retorna o resultado de um teste F
Retorna a probabilidade associada ao teste t de Student
Retorna o valor-P bicaudal do teste-z
Estima a varincia com base em uma amostra
Estima a varincia com base em uma amostra, inclusive nmeros, texto e valores lgicos
Calcula a varincia com base na populao total
Calcula a varincia com base na populao total, inclusive nmeros, texto e valores lgicos
Retorna a distribuio Weibull
Retorna o k-simo percentil de valores em um intervalo
Retorna os juros acumulados de um ttulo que paga uma taxa peridica de juros
Retorna a taxa de juros acumulados de um ttulo que paga juros no vencimento
Retorna a depreciao para cada perodo contbil usando o coeficiente de depreciao
Retorna a depreciao para cada perodo contbil
Retorna a depreciao de um ativo para um perodo especificado, usando o mtodo de balano de declnio fixo
Retorna a depreciao de um ativo para um perodo especificado usando o mtodo de balano de declnio duplo ou
algum outro mtodo especificado
Retorna a depreciao de um ativo para um perodo especificado ou parcial usando um mtodo de balano
declinante
Retorna o nmero de dias do incio do perodo de cupom at a data de liquidao

129 / 137

Excel Macros e Visual Basic for Applications

COUPDAYS
COUPDAYSNC
COUPNCD
COUPNUM
COUPPCD
CUMIPMT
CUMPRINC
DOLLARDE
DOLLARFR
SLN
DURATION
EFFECT
FVSCHEDULE
INTRATE
IPMT
MDURATION

COUPDAYS
COUPDAYSNC
COUPNCD
COUPNUM
COUPPCD
CUMIPMT
CUMPRINC
DOLLARDE
DOLLARFR
DPD
DURAO
EFFECT
FVSCHEDULE
INTRATE
IPGTO
MDURATION

MIRR
NOMINAL
NPER
ODDFPRICE
ODDFYIELD
ODDLPRICE
ODDLYIELD
PMT
PPMT
PRICE
PRICEDISC
PRICEMAT
RECEIVED
SYD
RATE

MTIR
NOMINAL
NPER
ODDFPRICE
ODDFYIELD
ODDLPRICE
ODDLYIELD
PGTO
PPGTO
PRICE
PRICEDISC
PRICEMAT
RECEIVED
SDA
TAXA

FACULDADE DE ESTATSTICA
UFPA

Retorna o nmero de dias no perodo de cupom que contm a data de quitao


Retorna o nmero de dias da data de quitao at a data do prximo cupom
Retorna a prxima data de cupom aps a data de quitao
Retorna o nmero de cupons pagveis entre as datas de quitao e vencimento
Retorna a data de cupom anterior data de quitao
Retorna os juros acumulados pagos entre dois perodos
Retorna o capital acumulado pago sobre um emprstimo entre dois perodos
Converte um preo em formato de moeda, na forma fracionria, em um preo na forma decimal
Converte um preo, apresentado na forma decimal, em um preo apresentado na forma fracionria
Retorna a depreciao em linha reta de um ativo durante um perodo
Retorna a durao anual de um ttulo com pagamentos de juros peridicos
Retorna a taxa de juros anual efetiva
Retorna o valor futuro de um capital inicial aps a aplicao de uma srie de taxas de juros compostas
Retorna a taxa de juros de um ttulo totalmente investido
Retorna o pagamento de juros para um investimento em um determinado perodo
Retorna a durao de Macauley modificada para um ttulo com um valor de paridade equivalente a R$ 100
Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos so financiados com diferentes
taxas
Retorna a taxa de juros nominal anual
Retorna o nmero de perodos de um investimento
Retorna o preo por R$ 100 de valor nominal de um ttulo com um primeiro perodo indefinido
Retorna o rendimento de um ttulo com um primeiro perodo indefinido
Retorna o preo por R$ 100 de valor nominal de um ttulo com um ltimo perodo de cupom indefinido
Retorna o rendimento de um ttulo com um ltimo perodo indefinido
Retorna o pagamento peridico de uma anuidade
Retorna o pagamento de capital para determinado perodo de investimento
Retorna a preo por R$ 100 de valor nominal de um ttulo que paga juros peridicos
Retorna o preo por R$ 100 de valor nominal de um ttulo descontado
Retorna o preo por R$ 100 de valor nominal de um ttulo que paga juros no vencimento
Retorna a quantia recebida no vencimento de um ttulo totalmente investido
Retorna a depreciao dos dgitos da soma dos anos de um ativo para um perodo especificado
Retorna a taxa de juros por perodo de uma anuidade

130 / 137

Excel Macros e Visual Basic for Applications

TBILLEQ
TBILLPRICE
TBILLYIELD
IRR
FV
PV

TBILLEQ
TBILLPRICE
TBILLYIELD
TIR
VF
VP

NPV
XIRR
XNPV
YIELD
YIELDDISC
YIELDMAT
CELL
ISNA
ISNONTEXT
ISBLANK
ISERR
ISERROR
ISODD
ISLOGICAL
ISNUMBER
ISEVEN
ISREF
ISTEXT
COUNTBLANK
INFO
N
NA
TYPE
ERROR.TYPE
AND

VPL
XIRR
XNPV
YIELD
YIELDDISC
YIELDMAT
CL
.NO.DISP
.NO.TEXTO
CL.VAZIA
ERRO
ERROS
IMPAR
LGICO
NM
PAR
REF
TEXTO
CONTAR.VAZIO
INFORMAO
N
NO.DISP
TIPO
TIPO.ERRO
E

FACULDADE DE ESTATSTICA
UFPA

Retorna o rendimento de um ttulo equivalente a uma obrigao do Tesouro


Retorna o preo por R$ 100 de valor nominal de uma obrigao do Tesouro
Retorna o rendimento de uma obrigao do Tesouro
Retorna a taxa interna de retorno de uma srie de fluxos de caixa
Retorna o valor futuro de um investimento
Retorna o valor presente de um investimento
Retorna o valor lquido atual de um investimento com base em uma srie de fluxos de caixa peridicos e em uma
taxa de desconto
Fornece a taxa interna de retorno de um programa de fluxos de caixa no necessariamente peridico
Retorna o valor presente lquido de um programa de fluxos de caixa no necessariamente peridico
Retorna o rendimento de um ttulo que paga juros peridicos
Retorna o rendimento anual de um ttulo descontado. Por exemplo, uma obrigao do Tesouro
Retorna o rendimento anual de um ttulo que paga juros no vencimento
Retorna informaes sobre formatao, localizao ou contedo de uma clula
Retorna VERDADEIRO se o valor for o valor de erro #N/D
Retorna VERDADEIRO se o valor for diferente de texto
Retorna VERDADEIRO se o valor for vazio
Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D
Retorna VERDADEIRO se o valor for um valor de erro
Retorna VERDADEIRO se o nmero for mpar
Retorna VERDADEIRO se o valor for um valor lgico
Retorna VERDADEIRO se o valor for um nmero
Retorna VERDADEIRO se o nmero for par
Retorna VERDADEIRO se o valor for uma referncia
Retorna VERDADEIRO se o valor for texto
Conta o nmero de clulas vazias no intervalo especificado
Retorna informaes sobre o ambiente operacional atual
Retorna o valor convertido em um nmero
Retorna o valor de erro #N/D
Retorna um nmero indicando o tipo de dados de um valor
Retorna um nmero correspondente a um tipo de erro
Retorna VERDADEIRO se todos os argumentos forem VERDADEIRO

131 / 137

Excel Macros e Visual Basic for Applications

OR
IF
FALSO
VERDADEIRO
NOT
ABS
ACOS
ACOSH
RAND
ROUND
FLOOR
ROUNDDOWN
ROUNDUP
ASIN
ASINH
ATAN
ATAN2
ATANH
COMBIN
COUNTIF
COS
COSH
EXP
FACTDOUBLE
FACT
GCD
DEGREES
ODD
INT
LCM
LN
LOG

OU
SE
FALSO
VERDADEIRO
NO
ABS
ACOS
ACOSH
ALEATRIO
ARRED
ARREDMULTB
ARREDONDAR.PARA.BAIXO
ARREDONDAR.PARA.CIMA
ASEN
ASENH
ATAN
ATAN2
ATANH
COMBIN
CONT.SE
COS
COSH
EXP
FACTDOUBLE
FATORIAL
GCD
GRAUS
MPAR
INT
LCM
LN
LOG

FACULDADE DE ESTATSTICA
UFPA

Retorna VERDADEIRO se um dos argumentos for VERDADEIRO


Especifica um teste lgico a ser executado
Retorna o valor lgico FALSO
Retorna o valor lgico VERDADEIRO
Inverte o valor lgico do argumento
Retorna o valor absoluto de um nmero
Retorna o arco cosseno de um nmero
Retorna o cosseno hiperblico inverso de um nmero
Retorna um nmero aleatrio entre 0 e 1
Arredonda um nmero at uma quantidade especificada de dgitos
Arredonda um nmero para baixo, aproximando-o de zero
Arredonda um nmero para baixo at zero
Arredonda um nmero para cima, afastando-o de zero
Retorna o arco seno de um nmero
Retorna o seno hiperblico inverso de um nmero
Retorna o arco tangente de um nmero
Retorna o arco tangente das coordenadas x e y especificadas
Retorna a tangente hiperblica inversa de um nmero
Retorna o nmero de combinaes de um determinado nmero de objetos
Calcula o nmero de clulas no vazias em um intervalo que correspondem ao critrio especificado
Retorna o cosseno de um nmero
Retorna o cosseno hiperblico de um nmero
Retorna e elevado potncia de um nmero especificado
Retorna o fatorial duplo de um nmero
Retorna o fatorial de um nmero
Retorna o mximo divisor comum
Converte radianos em graus
Retorna o nmero arredondado para cima at o inteiro mpar mais prximo
Arredonda um nmero para baixo at o inteiro mais prximo
Retorna o mnimo mltiplo comum
Retorna o logaritmo natural de um nmero
Retorna o logaritmo de um nmero de uma base especificada

132 / 137

Excel Macros e Visual Basic for Applications

LOG10
MDETERM
MINVERSE
MMULT
MROUND
PRODUCT
MULTINOMIAL
EVEN
PI
POWER
QUOTIENT
RADIANS
SQRT
RANDBETWEEN
ROMAN
SIN
SINH
SERIESSUM
SIGN
SUM
SUMSQ
SUMPRODUCT
SUMIF
SUMX2MY2
SUMX2PY2
SUMXMY2
SQRTPI
SUBTOTAL
TAN
TANH
CEILING
TRUNC

LOG10
MATRIZ.DETERM
MATRIZ.INVERSO
MATRIZ.MULT
MROUND
MULT
MULTINOMIAL
PAR
PI
POTNCIA
QUOTIENT
RADIANOS
RAIZ
RANDBETWEEN
ROMANO
SEM
SENH
SERIESSUM
SINAL
SOMA
SOMAQUAD
SOMARPRODUTO
SOMASE
SOMAX2DY2
SOMAX2SY2
SOMAXMY2
SQRTPI
SUBTOTAL
TAN
TANH
TETO
TRUNCAR

FACULDADE DE ESTATSTICA
UFPA

Retorna o logaritmo de base 10 de um nmero


Retorna o determinante de uma matriz
Retorna a matriz inversa de uma matriz
Retorna o produto matricial de duas matrizes
Retorna um nmero arredondado ao mltiplo desejado
Multiplica os argumentos
Retorna o multinomial de um conjunto de nmeros
Arredonda um nmero para cima at o inteiro par mais prximo
Retorna o valor de Pi
Retorna o resultado de um nmero elevado a uma potncia
Retorna a parte inteira de uma diviso
Converte graus em radianos
Retorna uma raiz quadrada positiva
Retorna um nmero aleatrio entre os nmeros especificados
Converte um numeral arbico em romanos, como texto
Retorna o seno de um ngulo dado
Retorna o seno hiperblico de um nmero
Retorna a soma de uma srie polinomial com base em uma frmula
Retorna o sinal de um nmero
Adiciona os argumentos
Retorna a soma dos quadrados dos argumentos
Retorna a soma dos produtos de componentes correspondentes de matrizes
Adiciona as clulas especificadas por um determinado critrio
Retorna a soma da diferena dos quadrados dos valores correspondentes em duas matrizes
Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes
Retorna a soma dos quadrados das diferenas dos valores correspondentes em duas matrizes
Retorna a raiz quadrada de (nmero * Pi)
Retorna um subtotal em uma lista ou em um banco de dados
Retorna a tangente de um nmero
Retorna a tangente hiperblica de um nmero
Arredonda um nmero para o inteiro mais prximo ou para o mltiplo mais prximo de significncia
Trunca um nmero para um inteiro

133 / 137

Excel Macros e Visual Basic for Applications

AREAS
COLUMN
COLUMNS
MATCH
OFFSET
ADDRESS
CHOOSE

REAS
COL
COLS
CORRESP
DESLOC
ENDEREO
ESCOLHER

HYPERLINK
INDEX
INDIRECT
ROW
ROWS
LOOKUP
HLOOKUP
VLOOKUP
TRANSPOSE
TRIM
CHAR
CODE
CONCATENATE
FIXED
RIGHT
LEFT
EXACT
MID
SEARCH
UPPER
LOWER
REPLACE
LEN
PROPER

HYPERLINK
NDICE
INDIRETO
LIN
LINS
PROC
PROCH
PROCV
TRANSPOR
ARRUMAR
CARACT
CDIGO
CONCATENAR
DEF.NM.DEC
DIREITA
ESQUERDA
EXATO
EXT.TEXTO
LOCALIZAR
MAISCULA
MINSCULA
MUDAR
NM.CARACT
PHONETIC

FACULDADE DE ESTATSTICA
UFPA

Retorna o nmero de reas em uma referncia


Retorna o nmero da coluna de uma referncia
Retorna o nmero de colunas em uma referncia
Procura valores em uma referncia ou matriz
Retorna um deslocamento de referncia com base em uma determinada referncia
Retorna uma referncia como texto para uma nica clula em uma planilha
Escolhe um valor a partir de uma lista de valores
Cria um atalho ou um salto que abre um documento armazenado em um servidor de rede, em uma intranet ou na
Internet
Usa um ndice para escolher um valor de uma referncia ou matriz
Retorna uma referncia indicada por um valor de texto
Retorna o nmero da linha de uma referncia
Retorna o nmero de linhas em uma referncia
Procura valores em um vetor ou em uma matriz
Procura na linha superior de uma matriz e retorna o valor da clula especificada
Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma clula
Retorna a tranposio de uma matriz
Remove espaos do texto
Retorna o caractere especificado pelo nmero de cdigo
Retorna um cdigo numrico para o primeiro caractere em uma seqncia de texto
Agrupa vrios itens de texto em um item de texto
Formata um nmero como texto com um nmero fixo de decimais
Retorna os caracteres mais direita de um valor de texto
Retorna os caracteres mais esquerda de um valor de texto
Verifica se dois valores de texto so idnticos
Retorna um nmero especfico de caracteres de uma seqncia de texto comeando na posio especificada
Localiza um valor de texto dentro de outro (no diferencia maisculas de minsculas)
Converte o texto em maisculas
Converte texto para minsculas
Muda os caracteres dentro do texto
Retorna o nmero de caracteres em uma seqncia de texto
Extrai os caracteres fonticos (furigana) de uma seqncia de texto.

134 / 137

Excel Macros e Visual Basic for Applications

FIND
REPT
SUBSTITUTE
T
TEXT
CLEAN
VALUE

PROCURAR
REPT
SUBSTITUIR
T
TEXTO
TIRAR
VALOR

FACULDADE DE ESTATSTICA
UFPA

Procura um valor de texto dentro de outro (diferencia maisculas de minsculas)


Repete um texto um determinado nmero de vezes
Substituir um novo texto por um texto antigo em uma seqncia de texto
Converte os argumentos em texto
Formata um nmero e o converte em texto
Remove todos os caracteres do texto que no podem ser impressos
Converte um argumento de texto em um nmero

135 / 137

Excel Macros e Visual Basic for Applications

FACULDADE DE ESTATSTICA
UFPA

136 / 137

Visual Basic for


Applications
Probabilidade e Estatstica Computacional
Este texto fornece os passos bsicos para programao
Faculdade de Estatstica - UFPA
29/02/2012