Escolar Documentos
Profissional Documentos
Cultura Documentos
ndice
MACROS .......................................................................................................................................................5
O QUE UMA MACRO? .................................................................................................................................6
CRIAR MACROS ............................................................................................................................................6
Gravar uma Macro ..................................................................................................................................6
Exerccio .......................................................................................................................................................................8
Procedimento BackGround do Excel ..........................................................................................................................9
Programao em Visual Basic for Applications....................................................................................10
EXECUTAR UMA MACRO ............................................................................................................................12
Tecla de Atalho Shortcut Key .............................................................................................................12
Boto na Toolbar...................................................................................................................................13
Associar uma Macro a um Boto ..............................................................................................................................13
Dissociar uma Macro de um Boto ...........................................................................................................................15
Run ........................................................................................................................................................16
Comando no Menu ................................................................................................................................17
Associao de uma Macro a um Comando do Menu ...............................................................................................17
Dissociao .................................................................................................................................................................19
Editor de Visual Basic for Applications ................................................................................................20
REMOVER MACROS ....................................................................................................................................21
Remoo de Macros em Ambiente Excel ...............................................................................................21
Remoo de Macros no Editor de VBA .................................................................................................21
EDITOR DE VISUAL BASIC FOR APPLICATIONS ...........................................................................22
PROJECT EXPLORER ...................................................................................................................................24
PROPERTIES WINDOW ................................................................................................................................26
JANELA DE EDIO ....................................................................................................................................27
OBJECT BROWSER ......................................................................................................................................28
HELP ON-LINE ...........................................................................................................................................28
AS CORES DO VBA ....................................................................................................................................29
FUNES E SUBROTINAS .....................................................................................................................30
SUBROTINAS ..............................................................................................................................................32
Definio de SubRotinas .......................................................................................................................32
Trabalhar no Editor de VBA Criar uma SubRotina ...........................................................................33
Execuo de uma SubRotina .................................................................................................................34
FUNES ....................................................................................................................................................34
Definio de Funes ............................................................................................................................34
Definio do tipo de parmetros e do tipo da funo ...........................................................................35
Trabalhar no Editor de VBA Criar uma Funo ................................................................................36
Execuo de uma Funo ......................................................................................................................37
Execuo dentro de uma Clula ................................................................................................................................38
Execuo dentro de uma Rotina ................................................................................................................................40
DIFERENAS ENTRE FUNES E ROTINAS ..................................................................................................42
REGRAS PARA A PASSAGEM DE PARMETROS.............................................................................................42
VARIVEIS ................................................................................................................................................43
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 1 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 4 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Macros
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 5 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
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:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 6 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
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
activa 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.)
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.
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
selecciona o modo de gravao da macro se feito com base em referncias relativas
(boto seleccionado) 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 (seleccione a toolbar). Caso a toolbar no
aparea listada a gravao de macros no est activa.
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 7 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
EXERCCIO
Objectivo: Gravar uma macro testando a diferena entre a execuo de macros com
referncias absolutas e relativas.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 8 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Para ser visualizado necessrio abrir o Editor de Visual Basic for Applications:
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.
5. Para regressar ao Excel basta File / Close and return to Microsoft Excel.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 9 / 60
WROMS@BOL.COM.BR
Excel Macros e 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)
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
seleccionado na janela de projecto e do lado direito tem-se uma rea de edio onde
poder-se-o escrever as macros a executar)
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.3. Na rea intitulada por Classes aparecem todos os objectos especficos para o
manuseamento da aplicao seleccionada. A classe especial designada por Globals
refere-se s funes que esto disponveis na aplicao independentemente dos
objectos seleccionados.
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 11 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 12 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Boto na Toolbar
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 13 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
4. Na rea respeitante aos Commands sero exibidos dois itens: Custom Menu Item e
Custom Button. Seleccione 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 seleccionado faz.
b) Modify Selection semelhante ao clique sobre o boto criado, exibe uma srie de
tarefas possveis para configurao do boto ( ver operaes seguintes).
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 14 / 60
WROMS@BOL.COM.BR
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
c) Na opo Name indique o nome que pretende ver associado ao boto, por defeito
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, seleccione o logotipo pretendido, se nenhum o satisfizer e
pretender criar o seu seleccione 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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 15 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Run
1. Tools / Macro / Macros
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 16 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Comando no Menu
4. Na area respeitante aos Commands ser exibido um item de Custom Menu Item,
seleccione-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.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:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 18 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
DISSOCIAO
1. Tools / Customize
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 19 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 20 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
REMOVER MACROS
A remoo das macros poder ser feita:
no ambiente Excel, ou
no Editor de VBA
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)
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 21 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Editor de Visual
Basic for
Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 22 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Para aceder ao editor de Visual Basic for Applications: Tools / Macro / Visual Basic Editor
Encontrar o cran dividido em trs grandes reas: Project Explorer, Properties Window e do
lado direito a janela de edio de texto.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 23 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
PROJECT EXPLORER
Se a janela no estiver visvel active-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 projectos de Visual Basic for Applications
activos 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 projecto que dever trabalhar
para que todas as funcionalidades que implemente estejam nele activas sempre que
necessrio.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 24 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
No folder do Microsoft Excel Objects, encontrar todos os objectos 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 objectos, uma nova janela ser visualizada na rea da
direita, em cada uma dessas reas poder definir a aco a ser executada em funo dos
eventos de cada objecto.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 25 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
PROPERTIES WINDOW
Nesta janela poder visualizar e alterar as propriedades que definem cada objecto: o nome -
neste caso.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 26 / 60
WROMS@BOL.COM.BR
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 seleccionado na janela do Project Explorer.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 27 / 60
WROMS@BOL.COM.BR
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:
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 28 / 60
WROMS@BOL.COM.BR
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 detectado 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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 29 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Funes e
SubRotinas
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 30 / 60
WROMS@BOL.COM.BR
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 objectivo
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:
1
Entenda-se instruo como uma tarefa a executar que corresponde a uma linha de cdigo.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 31 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
SUBROTINAS
Definio de SubRotinas
Sub <nome_da_macro> ( )
<corpo_da_macro>
End Sub
Estas SubRotinas so designadas pelo nome2 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.
2
O nome da rotina pode ser qualquer um desde que no contenha espaos, comece por caracteres alfa
3
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 32 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Recorrer ao Insert / Procedure para que o Visual Basic for Applications lhe crie a
estrutura (Figura 14)
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
4
Nomes alternativos para fazer referncia a um conjunto de instrues.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 33 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
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:
<Nome da Funo> = <Valor / Expresso>
End Function
A funo identificada pelo nome, pelo nmero e tipo de parmetros recebidos, e tem como
objectivo 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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 34 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
<Nome da Funo> = <Valor / Expresso>
End Function
Nota: Se os tipos no forem definidos ser assumido por defeito como sendo do tipo
Variant
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 35 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Recorrer ao Insert / Procedure para que o Visual Basic for Applications lhe crie a
estrutura (Figura 15)
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 36 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
dentro de uma clula numa WorkSheet, semelhana de qualquer uma outra funo do
Excel
Com base na seguinte funo, analisemos as formas de execuo com mais pormenor:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 37 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 38 / 60
WROMS@BOL.COM.BR
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)
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 39 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 41 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 42 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Variveis
O que so variveis?
As variveis constituem repositrios temporrios de dados, podendo ser utilizadas para
diversos fins.
<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.
TIPOS DE VARIVEIS
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 45 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
O tipo de varivel est associado ao gnero de informao que esta tem hiptese de
armazenar
Long 4 bytes permite armazenar nmeros inteiros entre -2 147 483 648 e
2 147 483 648
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 46 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
DECLARAO DE VARIVEIS
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 47 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Onde:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 48 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
A utilizao genrica do tipo Objecto serve para suportar qualquer tipo de objecto Excel
(WorkBook,WorkSheet,Range,)
Exemplo:
Exemplo:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 49 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Contudo estas declaraes tambm podem ser feitas da seguinte forma genrica:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 50 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
PRS
Diminui o nmero de linhas de cdigo
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 51 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Para que o VBA detecte um erro sempre que uma varivel no seja declarada dever fazer:
Tools/Options
Editor Tab
Activar Require Variable Declaration
Neste caso sempre que seja detectada uma varivel que ainda no foi declarada d uma
mensagem de erro - Variable Not Defined
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 52 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
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:
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 53 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Sub Tipos_definidos_Utilizador()
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
5
Ver captulo InputBox e MsgBox
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 54 / 60
WROMS@BOL.COM.BR
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.
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 55 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
ARRAY BI-DIMENSIONAL
0 1 2
0
1
2
3
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 56 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Declarao de um array
ARRAYS UNI-DIMENSIONAIS
Dim ArrayNumerico(10) As Integer
Array_Numerico
0
1
2
3
4
5
6
7
8
9
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 1 2
0
1
2
3
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 57 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Utilizao de um Array
ATRIBUIO DE VALORES
<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ]) = <Valor>
Exemplo 1:
Sub Pases()
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 0
Brasil 1
Moambique 2
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 58 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
Exemplo 2:
Option Base 1
Sub Utilizacao_Array()
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
A indexao de um array por defeito 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 aquando da declarao do array.
Exemplo:
Sub Utilizacao_Array()
Lotaria(4)=int(10000*Rnd())
Lotaria(5)=int(10000*Rnd())
MsgBox Nmeros da lotaria: & Lotaria(4) & , & Lotaria(5)
End Sub
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 59 / 60
WROMS@BOL.COM.BR
Excel Macros e Visual Basic for Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA 60 / 60
WROMS@BOL.COM.BR