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
Run ........................................................................................................................................................16
Comando no Menu ................................................................................................................................17
Associao de uma Macro a um Comando do Menu ...............................................................................................17
Dissociao .................................................................................................................................................................19
Declarao de um array........................................................................................................................57
Arrays Uni-dimensionais ...........................................................................................................................................57
Arrays Bi-dimensionais..............................................................................................................................................57
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
3 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
4 / 60
WROMS@BOL.COM.BR
Macros
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
5 / 60
WROMS@BOL.COM.BR
CRIAR MACROS
Existem duas possibilidades de criao de macros:
Atravs do Gravador de Macros
Utilizando o editor e programando em Visual Basic for Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
6 / 60
WROMS@BOL.COM.BR
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
EXERCCIO
Objectivo: Gravar uma macro testando a diferena entre a execuo de macros com
referncias absolutas e relativas.
1 Fase: Macro com referncias Absolutas
1. Accione a gravao da macro. Atribua-lhe o Short Key Ctrl+P
2. Certifique-se que o boto Relative Reference est desactivado.
3. Clique na clula B3.
4. Escreva ISCTE
5. Formate a clula para Bold, Itlico, tamanho 18, Small Caps, (utilize o Format / Font)
6. Na clula B4 escreva: Av. Foras Armadas
7. Na clula B5 escreva: 1700 Lisboa
8. Pare a gravao da macro. A macro est criada.
9. Apague tudo o que escreveu nas clulas da coluna B.
10. Clique na clula L8.
11. Carregue simultaneamente nas teclas Ctrl e P
12. O que aconteceu ?
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
8 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
9 / 60
WROMS@BOL.COM.BR
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)
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
12 / 60
WROMS@BOL.COM.BR
Boto na Toolbar
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
13 / 60
WROMS@BOL.COM.BR
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
15 / 60
WROMS@BOL.COM.BR
Run
1. Tools / Macro / Macros
2. Na caixa de dilogo Macros selecciona-se a macro pretendida na lista da Macro Name
(Figura 6)
3. Clique sobre o boto Run
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
16 / 60
WROMS@BOL.COM.BR
Comando no 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:
c) Description que exibe um texto explicando o que o comando seleccionado 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)
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
18 / 60
WROMS@BOL.COM.BR
DISSOCIAO
1. Tools / Customize
2. Arraste o Menu ou Comando do Menu at ao documento e solte-o
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
19 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
20 / 60
WROMS@BOL.COM.BR
REMOVER MACROS
A remoo das macros poder ser feita:
no ambiente Excel, ou
no Editor de VBA
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
21 / 60
WROMS@BOL.COM.BR
Editor de Visual
Basic for
Applications
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
22 / 60
WROMS@BOL.COM.BR
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
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
25 / 60
WROMS@BOL.COM.BR
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 objecto: o nome neste caso.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
26 / 60
WROMS@BOL.COM.BR
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
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>, seleccione 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 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.
Seleccione um dos objectos e visualize do lado direito os Members of <Elemento
seleccionado>
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
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
Vermelho
Preto
Verde
Amarelo
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
29 / 60
WROMS@BOL.COM.BR
Funes e
SubRotinas
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
30 / 60
WROMS@BOL.COM.BR
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
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
32 / 60
WROMS@BOL.COM.BR
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
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
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
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
37 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
38 / 60
WROMS@BOL.COM.BR
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
= <nome da funo> (<Param_1> , <Param_2>)
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
39 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
41 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
42 / 60
WROMS@BOL.COM.BR
Variveis
O que so variveis?
As variveis constituem repositrios temporrios de dados, podendo ser utilizadas para
diversos fins.
TIPOS DE VARIVEIS
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
45 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
46 / 60
WROMS@BOL.COM.BR
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
47 / 60
WROMS@BOL.COM.BR
Onde:
Set palavra chave que indica a assignao de uma varivel objecto
<Var_Objecto> - Varivel Objecto
= - Operador de assignao
<Objecto> - Objecto a ser atribudo varivel
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
48 / 60
WROMS@BOL.COM.BR
Exemplo:
Dim Range_1 as Range
Range_1 = Worksheet(1).Range(A1)
Range_1.Value = 10
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
49 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
50 / 60
WROMS@BOL.COM.BR
PRS
CONTRAS
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
Tools/Options
Editor Tab
Activar Require Variable Declaration
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
52 / 60
WROMS@BOL.COM.BR
Type Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
Criou-se um tipo de dados que representa uma estrutura com dados de diferentes tipos. Esta
definio dever ocorrer no incio do mdulo VBA.
Onde:
Type
Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
53 / 60
WROMS@BOL.COM.BR
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.
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
55 / 60
WROMS@BOL.COM.BR
ARRAY BI-DIMENSIONAL
0
2
0
1
2
3
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
56 / 60
WROMS@BOL.COM.BR
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
57 / 60
WROMS@BOL.COM.BR
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
58 / 60
WROMS@BOL.COM.BR
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
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
59 / 60
WROMS@BOL.COM.BR
______________________________________________________________________________________L
EANDRO ALVES FERREIRA
60 / 60
WROMS@BOL.COM.BR