Professional Documents
Culture Documents
(verso Draft)
ndice
MACROS ...................................................................................................................................................... 5
O QUE UMA MACRO?................................................................................................................................ 6
CRIAR MACROS ........................................................................................................................................... 6
Gravar uma Macro................................................................................................................................. 6
Exerccio.............................................................................................................................................................. 8
Procedimento BackGround do Excel ................................................................................................................... 9
Run ....................................................................................................................................................... 16
Comando no Menu ............................................................................................................................... 17
Associao de uma Macro a um Comando do Menu......................................................................................... 17
Dissociao........................................................................................................................................................ 19
VARIVEIS................................................................................................................................................ 43
MANUSEIO COM VARIVEIS ...................................................................................................................... 44
O que so variveis? ............................................................................................................................ 44
Impostao de valores a variveis: ...................................................................................................... 45
Utilizao de variveis como se fossem valores: ................................................................................. 45
TIPOS DE VARIVEIS .................................................................................................................................. 46
DECLARAO DE VARIVEIS .................................................................................................................... 47
VARIVEIS VANTAGENS DA UTILIZAO ............................................................................................... 47
VARIVEIS DO TIPO OBJETO ..................................................................................................................... 48
Declarao da Varivel Objeto............................................................................................................ 48
Atribuio de uma varivel Objeto....................................................................................................... 48
Utilizao Genrica da Varivel Objeto .............................................................................................. 49
Utilizao Especifica da Varivel Objeto ............................................................................................ 49
VARIVEIS DECLARAO OPCIONAL E O TIPO VARIANT ....................................................................... 51
Os Prs e Contras da Utilizao do tipo Variants ............................................................................... 51
Prs.................................................................................................................................................................... 51
Contras............................................................................................................................................................... 51
Declarao de um array....................................................................................................................... 57
Arrays Uni-dimensionais ................................................................................................................................... 57
Arrays Bi-dimensionais ..................................................................................................................................... 57
CONSTANTES ........................................................................................................................................... 60
O QUE SO CONSTANTES ?......................................................................................................................... 61
INPUTBOX E MSGBOX........................................................................................................................... 62
O QUE SO ? .............................................................................................................................................. 63
INPUTBOX ................................................................................................................................................. 63
O que faz ........................................................................................................................................... 63
Sintaxe .................................................................................................................................................. 63
Parmetros ........................................................................................................................................... 64
MSGBOX ................................................................................................................................................... 65
O que faz ........................................................................................................................................... 65
Sintaxe .................................................................................................................................................. 65
Parmetros ........................................................................................................................................... 66
Valores Produzidos........................................................................................................................... 69
FOR NEXT............................................................................................................................................... 84
Sintaxe .................................................................................................................................................. 84
Aplicao Prtica................................................................................................................................. 84
A Funo das Variveis: .................................................................................................................................... 85
Construo do Ciclo: ......................................................................................................................................... 85
Traduo Integral............................................................................................................................................... 86
______________________________________________________________________________________
ISCTE / DCTI
3 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
4 / 123
Luisa.Domingues@iscte.pt
Macros
______________________________________________________________________________________
ISCTE / DCTI
5 / 123
Luisa.Domingues@iscte.pt
CRIAR MACROS
Existem duas possibilidades de criao de macros:
Atravs do Gravador de Macros
Utilizando o editor e programando em Visual Basic for Applications
______________________________________________________________________________________
ISCTE / DCTI
6 / 123
Luisa.Domingues@iscte.pt
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 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.
______________________________________________________________________________________
ISCTE / DCTI
7 / 123
Luisa.Domingues@iscte.pt
EXERCCIO
Objetivo: Gravar uma macro testando a diferena entre a execuo de macros com
referncias absolutas e relativas.
______________________________________________________________________________________
ISCTE / DCTI
8 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
9 / 123
Luisa.Domingues@iscte.pt
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)
______________________________________________________________________________________
ISCTE / DCTI
10 / 123
Luisa.Domingues@iscte.pt
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.
______________________________________________________________________________________
ISCTE / DCTI
11 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
12 / 123
Luisa.Domingues@iscte.pt
Boto na Toolbar
______________________________________________________________________________________
ISCTE / DCTI
13 / 123
Luisa.Domingues@iscte.pt
4. Na rea referente aos Commands sero exibidos dois itens: Custom Menu Item e
Custom Button. Selecione este segundo e arraste-o com o mouse at Toolbar onde o
pretende inserir. Ateno s poder inserir o boto quando o ponteiro do mouse ficar
com a forma I. Nesse momento libertar o boto do mouse 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).
______________________________________________________________________________________
ISCTE / DCTI
14 / 123
Luisa.Domingues@iscte.pt
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
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, 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.
______________________________________________________________________________________
ISCTE / DCTI
15 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
16 / 123
Luisa.Domingues@iscte.pt
Comando no Menu
______________________________________________________________________________________
ISCTE / DCTI
17 / 123
Luisa.Domingues@iscte.pt
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)
______________________________________________________________________________________
ISCTE / DCTI
18 / 123
Luisa.Domingues@iscte.pt
DISSOCIAO
1. Tools / Customize
2. Arraste o Menu ou Comando do Menu at ao documento e solte-o
______________________________________________________________________________________
ISCTE / DCTI
19 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
20 / 123
Luisa.Domingues@iscte.pt
REMOVER MACROS
A remoo das macros poder ser feita:
no ambiente Excel, ou
no Editor de VBA
______________________________________________________________________________________
ISCTE / DCTI
21 / 123
Luisa.Domingues@iscte.pt
Editor de Visual
Basic for
Applications
______________________________________________________________________________________
ISCTE / DCTI
22 / 123
Luisa.Domingues@iscte.pt
Para acessar 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.
______________________________________________________________________________________
ISCTE / DCTI
23 / 123
Luisa.Domingues@iscte.pt
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 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.
______________________________________________________________________________________
ISCTE / DCTI
25 / 123
Luisa.Domingues@iscte.pt
PROPERTIES WINDOW
Se a janela das propriedades no estiver visvel active-a atravs do View / Properties
Window ou utilizando o boto ou combinaes de letras associadas a esta tarefa.
Nesta janela poder visualizar e alterar as propriedades que definem cada objeto: o nome
- neste caso.
______________________________________________________________________________________
ISCTE / DCTI
26 / 123
Luisa.Domingues@iscte.pt
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.
______________________________________________________________________________________
ISCTE / DCTI
27 / 123
Luisa.Domingues@iscte.pt
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 manuseio
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 usurio um sistema de ajuda
constante. Assim, quando se constroem procedimentos, na janela de edio, medida que
a linguagem escrita o editor abre oportunamente listas de opes para ajudar a escrever
o cdigo.
______________________________________________________________________________________
ISCTE / DCTI
28 / 123
Luisa.Domingues@iscte.pt
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
Azul
Vermelho
Preto
Verde
Amarelo
Significado
Palavras-Chave da linguagem. Ex: Sub, End Sub, Function, If, Then,
Else, While, Loop,
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.
Nome de variveis, procedimentos, valores, operadores,
Comentrio introduzidos no seio dos procedimentos. Estes
comentrios servem para o usurio 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.
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
detectou 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.
______________________________________________________________________________________
ISCTE / DCTI
29 / 123
Luisa.Domingues@iscte.pt
Funes e
SubRotinas
______________________________________________________________________________________
ISCTE / DCTI
30 / 123
Luisa.Domingues@iscte.pt
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 usurio.
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.
______________________________________________________________________________________
ISCTE / DCTI
31 / 123
Luisa.Domingues@iscte.pt
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 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.
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.
______________________________________________________________________________________
ISCTE / DCTI
32 / 123
Luisa.Domingues@iscte.pt
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
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>,)
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.
______________________________________________________________________________________
ISCTE / DCTI
34 / 123
Luisa.Domingues@iscte.pt
Para definir o valor produzido por uma funo basta no seu interior, atribuir ao nome da
funo um determinado valor ou expresso.
End Function
Nota: Se os tipos no forem definidos ser assumido por defeito como sendo do tipo
Variant
______________________________________________________________________________________
ISCTE / DCTI
35 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
36 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
37 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
38 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
39 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
40 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
41 / 123
Luisa.Domingues@iscte.pt
Regra 1: Como uma funo retorna um valor, esta dever ser utilizada numa expresso.
Quando uma funo utilizada do lado direito de uma impostao, 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.
______________________________________________________________________________________
ISCTE / DCTI
42 / 123
Luisa.Domingues@iscte.pt
Variveis
______________________________________________________________________________________
ISCTE / DCTI
43 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
44 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
45 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
46 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
47 / 123
Luisa.Domingues@iscte.pt
Onde:
Set palavra chave que indica a impostao de uma varivel objeto
<Var_Objeto> - Varivel Objeto
= - Operador de impostao
<Objeto> - Objeto a ser atribudo varivel
______________________________________________________________________________________
ISCTE / DCTI
48 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
49 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
50 / 123
Luisa.Domingues@iscte.pt
PRS
CONTRAS
______________________________________________________________________________________
ISCTE / DCTI
51 / 123
Luisa.Domingues@iscte.pt
Tools/Options
Editor Tab
Activar Require Variable Declaration
______________________________________________________________________________________
ISCTE / DCTI
52 / 123
Luisa.Domingues@iscte.pt
Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
______________________________________________________________________________________
ISCTE / DCTI
53 / 123
Luisa.Domingues@iscte.pt
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.
______________________________________________________________________________________
ISCTE / DCTI
55 / 123
Luisa.Domingues@iscte.pt
ARRAY BI-DIMENSIONAL
0
2
0
1
2
3
______________________________________________________________________________________
ISCTE / DCTI
56 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
57 / 123
Luisa.Domingues@iscte.pt
Utilizao de um Array
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
______________________________________________________________________________________
ISCTE / DCTI
58 / 123
Luisa.Domingues@iscte.pt
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
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
______________________________________________________________________________________
ISCTE / DCTI
59 / 123
Luisa.Domingues@iscte.pt
Constantes
______________________________________________________________________________________
ISCTE / DCTI
60 / 123
Luisa.Domingues@iscte.pt
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 facto 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>
______________________________________________________________________________________
ISCTE / DCTI
61 / 123
Luisa.Domingues@iscte.pt
InputBox e
MsgBox
______________________________________________________________________________________
ISCTE / DCTI
62 / 123
Luisa.Domingues@iscte.pt
O QUE SO ?
Para haver interaco entre o usurio 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 usurio introduzir dados no
programa portanto um mecanismo de input. O MsgBox um mecanismo de Output e
permite ao usurio 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 usurio introduza os dados e/ou acione um dos botes.
3. Como uma funo produz um valor final. Este consiste nos dados inseridos pelo
usurio 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 defeito.
______________________________________________________________________________________
ISCTE / DCTI
63 / 123
Luisa.Domingues@iscte.pt
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). A juno dos
elementos que constituem a mensagem realizada atravs do
operador &.
Exemplo:
"A Soma de 3 com 5 :" & Chr(13) & " 8 "
Title
(Facultativo)
Default
(Facultativo)
Xpos
(Facultativo)
Ypos
(Facultativo)
HelpFile
(Facultativo)
Context
(Facultativo)
______________________________________________________________________________________
ISCTE / DCTI
64 / 123
Luisa.Domingues@iscte.pt
MSGBOX
O que faz
1. Exibe no cran uma janela com uma mensagem.
2. Espera que o usurio 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 defeito.
______________________________________________________________________________________
ISCTE / DCTI
65 / 123
Luisa.Domingues@iscte.pt
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)
Title
(Facultativo)
HelpFile
(Facultativo)
Context
(Facultativo)
Na janela de output ser exibida a mensagem Erro de Sintaxe, o boto exibido ser o de
OK (por defeito) e o titulo da janela ser Mensagem de Erro.
______________________________________________________________________________________
ISCTE / DCTI
66 / 123
Luisa.Domingues@iscte.pt
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 defeito.
O segundo boto o selecionado por defeito.
O terceiro boto o selecionado por defeito.
O quarto boto o selecionado por defeito.
Application modal o usurio s depois de responder
MsgBox que poder dar continuidade ao trabalho na
aplicao corrente.
System modal - o usurio 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 defeito (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.
______________________________________________________________________________________
ISCTE / DCTI
67 / 123
Luisa.Domingues@iscte.pt
Exemplos:
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
______________________________________________________________________________________
ISCTE / DCTI
68 / 123
Luisa.Domingues@iscte.pt
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
Valor
Boto Acionado
1
2
3
4
5
6
7
OK
Cancel
Abort
Retry
Ignore
Yes
No
______________________________________________________________________________________
ISCTE / DCTI
69 / 123
Luisa.Domingues@iscte.pt
Domnio das
variveis,
constantes e
rotinas
______________________________________________________________________________________
ISCTE / DCTI
70 / 123
Luisa.Domingues@iscte.pt
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.
______________________________________________________________________________________
ISCTE / DCTI
71 / 123
Luisa.Domingues@iscte.pt
mbito do Procedimento
Estas variveis so declaradas no corpo do procedimento com recurso palavra chave
Dim.
So variveis criadas aquando 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
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 seco Declarations do respectivo mdulo VBA. Neste caso qualquer varivel a
declarada ser considerada de nvel modular por defeito, para tornar esse facto 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 usurio no procedimento Ambito_Modulo.
______________________________________________________________________________________
ISCTE / DCTI
73 / 123
Luisa.Domingues@iscte.pt
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 seco 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
______________________________________________________________________________________
ISCTE / DCTI
74 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
75 / 123
Luisa.Domingues@iscte.pt
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 seco Declarations do respectivo mdulo VBA. Neste caso qualquer
constante a declarada ser considerada de nvel modular por defeito, para tornar esse
facto mais explicito 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 seco Declarations de qualquer mdulo, para tal dever utilizar a
palavra chave Public.
Ex:
Public Const Const_1 As String
______________________________________________________________________________________
ISCTE / DCTI
76 / 123
Luisa.Domingues@iscte.pt
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.
______________________________________________________________________________________
ISCTE / DCTI
77 / 123
Luisa.Domingues@iscte.pt
Estruturas de
Controle
______________________________________________________________________________________
ISCTE / DCTI
78 / 123
Luisa.Domingues@iscte.pt
QUAIS AS ESTRUTURAS
VBA Control
If -Then - Else
For Next
While-Wend
Do Loop
Select - Case
For Each Next
______________________________________________________________________________________
ISCTE / DCTI
79 / 123
Luisa.Domingues@iscte.pt
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.
______________________________________________________________________________________
ISCTE / DCTI
80 / 123
Luisa.Domingues@iscte.pt
Aplicao Prtica
A rotina Aposta recebe uma aposta do usurio e mediante o Sorteio a realizar pela
respectiva funo, verifica se o jogador ganhou ou no a aposta, comunicando-lhe esse
facto.
______________________________________________________________________________________
ISCTE / DCTI
81 / 123
Luisa.Domingues@iscte.pt
If
Nsorteio = NAposta
Then
______________________________________________________________________________________
ISCTE / DCTI
82 / 123
Luisa.Domingues@iscte.pt
APLICAO PRTICA
Pretende-se criar uma macro que classifique etariamente um indivduo em funo da sua
idade. A classificao pretendida a seguinte:
Idade
Menos de 3 anos
Dos 3 aos 12
Dos 13 aos 17
Dos 18 aos 25
Dos 26 aos 65
Mais de 65
Classe Etria
Beb
Criana
Adolescente
Jovem
Adulto
Idoso
______________________________________________________________________________________
ISCTE / DCTI
83 / 123
Luisa.Domingues@iscte.pt
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.
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.
______________________________________________________________________________________
ISCTE / DCTI
84 / 123
Luisa.Domingues@iscte.pt
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
Resultado = Resultado *
Base
______________________________________________________________________________________
ISCTE / DCTI
85 / 123
Luisa.Domingues@iscte.pt
(verso Draft)
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.
______________________________________________________________________________________
ISCTE / DCTI
86 / 123
Luisa.Domingues@iscte.pt
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
Outra Aplicao
Pretende-se criar uma rotina para calcular um factorial.
______________________________________________________________________________________
ISCTE / DCTI
87 / 123
Luisa.Domingues@iscte.pt
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
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.
Funo
Num_Lotaria
Aposta
Num_Lanc
CONSTRUO DO CICLO:
While
Num_Lanc = Num_Lanc +1
Beep
______________________________________________________________________________________
ISCTE / DCTI
89 / 123
Luisa.Domingues@iscte.pt
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 usurio 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 correcto 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.
______________________________________________________________________________________
ISCTE / DCTI
90 / 123
Luisa.Domingues@iscte.pt
Outra Aplicao
Pretende-se realizar um jogo de geografia. Tente compreender o seu funcionamento.
______________________________________________________________________________________
ISCTE / DCTI
91 / 123
Luisa.Domingues@iscte.pt
DO LOOP
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas possibilidades
que esto limitadas quela estrutura:
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>]
______________________________________________________________________________________
ISCTE / DCTI
92 / 123
Luisa.Domingues@iscte.pt
Aplicaes Prticas
Utilizando a condio teste no inicio do Loop e com a palavra While
______________________________________________________________________________________
ISCTE / DCTI
94 / 123
Luisa.Domingues@iscte.pt
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
______________________________________________________________________________________
ISCTE / DCTI
95 / 123
Luisa.Domingues@iscte.pt
Aplicao Prtica
Recordem o processo resolvido com recurso a If Then Else ElseIf (figura 23)
Mais facilmente seria resolvido com recurso estrutura Select Case
______________________________________________________________________________________
ISCTE / DCTI
96 / 123
Luisa.Domingues@iscte.pt
CONSTRUO DA ESTRUTURA
Select Case
Idade
Case Is<3 ou
Case Is<=12 ou
Case Is<=17 ou
Case Is<=25 ou
Case Is<=65 ou
Case Else
End Select
______________________________________________________________________________________
ISCTE / DCTI
97 / 123
Luisa.Domingues@iscte.pt
Sintaxe
For Each <Varivel do tipo dos elementos do grupo> In <Grupo>
<Instrues a realizar para cada elemento do grupo>
Next
______________________________________________________________________________________
ISCTE / DCTI
98 / 123
Luisa.Domingues@iscte.pt
Aplicaes Prticas
UTILIZANDO ARRAYS
Pretende-se inicializar um array com um conjunto de 5 pases e posteriormente visualizar
os elementos introduzidos.
Repare que o exemplo, poder estar conceptualmente correcto, 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:
Construo do Ciclo
For Each
Pais
In
Array_Pais
MsgBox Pais
Next
______________________________________________________________________________________
ISCTE / DCTI
100 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
101 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
102 / 123
Luisa.Domingues@iscte.pt
Colees de
Objetos e Objetos
______________________________________________________________________________________
ISCTE / DCTI
103 / 123
Luisa.Domingues@iscte.pt
O QUE SO OBJETOS ?
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.
______________________________________________________________________________________
ISCTE / DCTI
104 / 123
Luisa.Domingues@iscte.pt
Eventos
(verso Draft)
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.
______________________________________________________________________________________
ISCTE / DCTI
105 / 123
Luisa.Domingues@iscte.pt
Application
Application o objeto de topo hierrquico, representa o prprio Excel.
PROPRIEDADES
Propriedades
Caption
DisplayAlerts
Path
ScreenUpdating
WindoWorkSheetState
DisplayStatusBar
DisplayFormulaBar
______________________________________________________________________________________
ISCTE / DCTI
106 / 123
Luisa.Domingues@iscte.pt
MTODOS
Mtodos
Calculate
Help
Quit
Run
______________________________________________________________________________________
ISCTE / DCTI
107 / 123
Luisa.Domingues@iscte.pt
WorkBook
O Objeto WorkBook, na hierarquia de objetos segue de imediato o objeto application e
representa um arquivo de Excel.
PROPRIEDADES
Propriedades
Name
Path
Saved
______________________________________________________________________________________
ISCTE / DCTI
108 / 123
Luisa.Domingues@iscte.pt
MTODOS
Mtodos
Activate
Close
Protect
Save
SaveCopyAs
______________________________________________________________________________________
ISCTE / DCTI
109 / 123
Luisa.Domingues@iscte.pt
WorkSheet
Na hierarquia situa-se abaixo do objeto WorkBook, uma vez que um WorkBook
constitudo por um conjunto de WorkSheets.
PROPRIEDADES
Propriedades
Index
Name
Nome da WorkSheet.
UsedRange
Visible
______________________________________________________________________________________
ISCTE / DCTI
110 / 123
Luisa.Domingues@iscte.pt
MTODOS
Mtodos
Activate
Calculate
Delete
Protect
Cell
______________________________________________________________________________________
ISCTE / DCTI
111 / 123
Luisa.Domingues@iscte.pt
Range
Objeto utilizado para representar uma ou mais clulas de uma WorkSheet.
PROPRIEDADES
Count
Dependents
Name
Value
Formula
Text
Propriedades
______________________________________________________________________________________
ISCTE / DCTI
112 / 123
Luisa.Domingues@iscte.pt
MTODOS
Calculate
ClearContents
Copy
OffSet
EntireRow
Select
Cell
Mtodos
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)
______________________________________________________________________________________
ISCTE / DCTI
113 / 123
Luisa.Domingues@iscte.pt
______________________________________________________________________________________
ISCTE / DCTI
114 / 123
Luisa.Domingues@iscte.pt
Perante uma coleo de objetos necessrio identificar cada um dos diferentes itens que
a compem para que a eles seja possvel acessar.
Por analogia poder-se- mencionar o exemplo do array, este uma varivel plural, dado
que composto por um conjunto de variveis. Quando se pretende acessar 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.
Exemplo:
WorkSheets(3).Name=Terceiro
______________________________________________________________________________________
ISCTE / DCTI
115 / 123
Luisa.Domingues@iscte.pt
Exemplo:
WorkSheets(Sheet3).Name=Terceiro
VANTAGEM
DESVANTAGEM
Exemplo:
WorkSheets(Sheet3).Name=Terceiro
WorkSheets(Sheet3).Visible=False o objeto no reconhecido
______________________________________________________________________________________
ISCTE / DCTI
116 / 123
Luisa.Domingues@iscte.pt
O objeto range referido da mesma forma para ser utilizado como um objeto singular ou
coleo de objetos.
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.
______________________________________________________________________________________
ISCTE / DCTI
117 / 123
Luisa.Domingues@iscte.pt
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
Workbooks(1).Worksheets(1).Range(A1).Value=1
______________________________________________________________________________________
ISCTE / DCTI
118 / 123
Luisa.Domingues@iscte.pt
ActiveWorkbook.Worksheets(1).Range(A1).Value=1
Worksheets(1).Range(A1).Value=1
ActiveSheet.Range(A1).Value=1
Range(A1).Value=1
______________________________________________________________________________________
ISCTE / DCTI
119 / 123
Luisa.Domingues@iscte.pt
Aplication.Workbooks(1).Worksheets(1).Range(A1).Value=1
Workbooks(1).Worksheets(1).Range(A1).Value=1
ActiveWorkbook.Worksheets(1).Range(A1).Value=1
Worksheets(1).Range(A1).Value=1
Activesheet.Range(A1).Value=1
Range(A1).Value=1
Range(A1)=1
______________________________________________________________________________________
ISCTE / DCTI
120 / 123
Luisa.Domingues@iscte.pt
Miscellaneous
______________________________________________________________________________________
ISCTE / DCTI
121 / 123
Luisa.Domingues@iscte.pt
A INSTRUO WITH
Aplicao Prtica
Ou Ento:
(verso Draft)
______________________________________________________________________________________
ISCTE / DCTI
123 / 123
Luisa.Domingues@iscte.pt