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 ......................................................................................................................................................14
Comando no Menu...............................................................................................................................15
Associao de uma Macro a um Comando do Menu......................................................................................15
Dissociao.....................................................................................................................................................16
Declarao de um array......................................................................................................................51
Arrays Uni-dimensionais................................................................................................................................51
Arrays Bi-dimensionais..................................................................................................................................51
Utilizao de um Array........................................................................................................................52
Para aceder ao elemento.................................................................................................................................52
Atribuio de valores .....................................................................................................................................52
FOR NEXT................................................................................................................................................74
Sintaxe.................................................................................................................................................74
Aplicao Prtica................................................................................................................................74
A Funo das Variveis:.................................................................................................................................75
Construo do Ciclo:......................................................................................................................................75
Traduo Integral...........................................................................................................................................76
Funcionamento do Ciclo:....................................................................................................................76
Perigos associados utilizao do ciclo For-Next:............................................................................77
Outra Aplicao .................................................................................................................................77
WHILE-WEND.............................................................................................................................................78
Sintaxe.................................................................................................................................................78
Aplicao Prtica................................................................................................................................78
A Funo das Variveis:.................................................................................................................................78
Construo do Ciclo:......................................................................................................................................79
Traduo Integral...........................................................................................................................................79
Funcionamento do Ciclo.....................................................................................................................80
Perigos associados utilizao do ciclo While-Wend........................................................................80
Outra Aplicao..................................................................................................................................80
DO LOOP.................................................................................................................................................85
Sintaxe.................................................................................................................................................85
Aplicaes Prticas.............................................................................................................................86
SELECT CASE..............................................................................................................................................88
Sintaxe.................................................................................................................................................88
Aplicao Prtica................................................................................................................................88
Construo da Estrutura..................................................................................................................................89
OBJECTOS SINGULARES VS
COLECES DE OBJECTOS........................................................................103
INDEXAO DE COLECES POR NMERO OU NOME..........................................................................................104
Indexao com Base em Nmeros.....................................................................................................104
Indexao com Base no Nome...........................................................................................................105
Vantagem ....................................................................................................................................................105
REFERNCIA IMPLCITA................................................................................................................................106
Declarao implcita da aplicao:..................................................................................................106
Declarao implcita do WorkBook:.................................................................................................107
Declarao implcita da WorkSheet:................................................................................................107
Nvel de referncia a privilegiar.......................................................................................................108
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Macros
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
QUE UMA
MACRO?
Uma macro um pequeno programa que contm uma lista de instrues a realizar no
Excel. Como sendo um repositrio de operaes, uma macro pode executar um
conjunto de tarefas atravs de um nico procedimento o qual pode ser invocado
rapidamente.
As instrues que formam o corpo da macro so escritas num cdigo prprio para que o
computador as possa entender, essa linguagem designada por VBA Visual Basic for
Applications.
CRIAR MACROS
Existem duas possibilidades de criao de macros:
Atravs do Gravador de Macros
Utilizando o editor e programando em Visual Basic for Applications
1. 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.
2. 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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.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 ?
2 Fase: Macro com referncias Relativas
1. Seleccione a clula D5.
2. Accione a gravao da macro. Atribua-lhe o Short Key Ctrl+R
3. Seleccione o boto Relative Reference.
4. Escreva ISCTE na clula que havia sido seleccionada.
5. Formate a clula para Bold, Itlico, tamanho 18, Small Caps, (utilize o Format /
Font)
6. Na clula D6 escreva: Av. Foras Armadas
7. Na clula D7 escreva: 1700 Lisboa
8. Pare a gravao da macro. A macro est criada.
9. Apague tudo o que escreveu nas clulas da coluna D.
10. Clique na clula L8.
11. Carregue simultaneamente nas teclas Ctrl e R
12. O que aconteceu ? Porqu ?
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
PROCEDIMENTO BACKGROUND
DO
EXCEL
O Excel quando se grava uma macro cria um objecto designado por module no
workbook onde regista todas as operaes gravadas em linguagem Visual Basic for
Applications - VBA. Este module no aparece no Excel com as restantes Sheets.
Para ser visualizado necessrio abrir o Editor de Visual Basic for Applications:
1. Tools / Macro / Macros
2. Selecciona-se a Macro e Clica-se no boto Edit
3. Poder visualizar na rea do lado direito o cdigo VBA que est subjacente s
macros que entretanto gravou. A poder executar as mesmas tarefas que num editor
de texto normal: escrever, apagar, copiar, mover, mas instrues de VBA.
4. Tente fazer a leitura do que est escrito e compreenda o procedimento da macro.
5. Para regressar ao Excel basta File / Close and return to Microsoft Excel.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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)
6.2.
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.
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.4.
Seleccione um dos objectos e visualize do lado direito os Members of
<Elemento seleccionado>
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.
EXECUTAR
UMA
MACRO
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Boto na Toolbar
ASSOCIAR
UMA
MACRO
A UM
BOTO
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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).
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 seleccionar o
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
DISSOCIAR
UMA
MACRO
DE UM
BOTO
1. Tools / Customize
2. Arraste o boto da toolbar at ao documento
3. Solte-o
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Comando no Menu
ASSOCIAO
MENU
DE UMA
MACRO
A UM
COMANDO
DO
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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)
DISSOCIAO
1. Tools / Customize
2. Arraste o Menu ou Comando do Menu at ao documento e solte-o
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
REMOVER MACROS
A remoo das macros poder ser feita:
no ambiente Excel, ou
no Editor de VBA
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Editor de Visual
Basic for
Applications
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Encontrar o cran dividido em trs grandes reas: Project Explorer, Properties Window
e do lado direito a janela de edio de texto.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.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.
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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.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.
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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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.
AS CORES
DO
VBA
Cor
Significado
Azul
Vermelho
Preto
Verde
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Funes e
SubRotinas
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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:
as subrotinas ou rotinas Sub, e
as funes.
Entenda-se instruo como uma tarefa a executar que corresponde a uma linha de cdigo.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.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.
End Function
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
EXECUO
DENTRO DE UMA
CLULA
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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>)
EXECUO
DENTRO DE UMA
ROTINA
Quando dentro de uma rotina se faz referncia ao nome de uma outra rotina a execuo
da primeira passa pela execuo daquela que est a ser invocada.
No exemplo que se segue, a funo Valor_Liquido faz uma chamada funo IVA por
forma a que, o valor por esta produzido, seja adicionado varivel Valor, e assim
produzir o output final da funo Valor_Liquido.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
DIFERENAS
ENTRE
FUNES
ROTINAS
REGRAS
PARA A PASSAGEM DE
PARMETROS
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Variveis
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
MANUSEAMENTO
COM
VARIVEIS
O que so variveis?
As variveis constituem repositrios temporrios de dados, podendo ser utilizadas para
diversos fins.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
DECLARAO
DE
VARIVEIS
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
VARIVEIS VANTAGENS
DA UTILIZAO
VARIVEIS
DO
TIPO OBJECTO
Uma varivel objecto representa uma referncia a um objecto. Uma varivel de extrema
importncia que facilita a codificao e melhora a performance da subrotina.
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
E O
PRS
CONTRAS
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
(verso Draft)
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.
Tools/Options
Editor Tab
Activar Require Variable Declaration
VARIVEIS
UTILIZADOR
ESTRUTURAS
Definio do Tipo
A primeira fase constituda pela definio do tipo:
Type Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
Criou-se um tipo de dados que representa uma estrutura com dados de diferentes tipos.
Esta definio dever ocorrer no incio do mdulo VBA.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
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.
ARRAY BI-DIMENSIONAL
0
2
0
1
2
3
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Utilizao de um Array
PARA
ACEDER AO ELEMENTO
<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ])
ATRIBUIO
DE VALORES
<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ]) = <Valor>
Exemplo 1:
Sub Pases()
Dim Pases(3) As String
Pases (0) = "Portugal"
Pases(1) = "Brasil"
Pases(2) = "Moambique"
MsgBox "Pases Armazenados:" & Chr(13) & Pases(0) & Chr(13) & Pases(1) &_
Chr(13) & Pases(2)
End Sub
Aps a atribuio de valores a cada elemento do array, este passa a ter o contedo
seguinte:
Pases
Portugal
Brasil
Moambique
0
1
2
Exemplo 2:
Option Base 1
Sub Utilizacao_Array()
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Constantes
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
QUE SO CONSTANTES
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
InputBox e
MsgBox
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
QUE SO
Para haver interaco entre o utilizador e uma macro ou programa necessrio que
exista um interface de comunicao. Este poder ser mais ou menos complexo e
completo, contudo existem dois elementos bsicos para estabelecer esta ligao:
InputBox e MsgBox.
Neste contexto a InputBox uma funo que permite ao utilizador introduzir dados no
programa portanto um mecanismo de input. O MsgBox um mecanismo de Output
e permite ao utilizador visualizar os dados produzidos pelo programa.
INPUTBOX
O que faz
1. Exibe no cran uma janela com uma caixa text box para a insero de dados.
2. Espera que o utilizador introduza os dados e/ou accione um dos botes.
3. Como uma funo produz um valor final. Este consiste nos dados inseridos pelo
utilizador na forma textual - String.
Sintaxe
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
Numa primeira avaliao da funo, pode-se dizer que a mesma possui diversos
parmetros, mas somente o primeiro obrigatrio, sendo que todos os outros quando
ignorados assumem valores atribudos por defeito.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Parmetros
Parmetro
Prompt
(Obrigatrio )
(verso Draft)
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)
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
MSGBOX
O que faz
1. Exibe no cran uma janela com uma mensagem.
2. Espera que o utilizador accione 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.
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)
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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 seleccionado por defeito.
O segundo boto o seleccionado por defeito.
O terceiro boto o seleccionado por defeito.
O quarto boto o seleccionado por defeito.
Application modal o utilizador s depois de responder
MsgBox que poder dar continuidade ao trabalho na
aplicao corrente.
System modal - o utilizador s depois de responder
MsgBox que poder dar continuidade ao trabalho em
qualquer aplicao em curso no sistema.
Pela anlise desta tabela poder constatar que existem diferentes agrupamentos de
cdigos: para definir o tipo de botes (0-5), para definir o tipo de cones (16,32,48,64),
para definir o boto seleccionado 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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Valores Produzidos
Como j foi referido, a funo MsgBox produz um valor em funo do boto accionado,
assim produzir como output um dos valores constantes da tabela seguinte:
Constante de VBA
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
Valor
Boto Accionado
1
2
3
4
5
6
7
OK
Cancel
Abort
Retry
Ignore
Yes
No
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Domnio das
variveis,
constantes e
rotinas
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
QUE O DOMINIO?
DOMNIO
DAS
VARIVEIS
Refere-se rea onde a varivel permanece activa, mantendo o valor que lhe vai sendo
atribudo.
Existem 3 nveis de domnio para as variveis:
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Exemplo:
Dim Var_1 As Integer ou Private Var_1 As Integer
Sub Ambito_Modulo()
Var_1 = InputBox (Introduza um nmero Inteiro)
Ambito_Modulo_2
End Sub
Sub Ambito_Modulo_2()
MsgBox Foi este o nmero que introduziu: & Var_1
End Sub
Neste caso como a varivel reconhecida no mdulo por qualquer rotina nele existente,
desde que seja referida sempre pelo mesmo nome, o procedimento Ambito_Modulo_2
ir exibir o valor introduzido pelo utilizador no procedimento Ambito_Modulo.
mbito do Projecto
As variveis assim definidas tm o mbito correspondente a todo o projecto, 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_Projecto()
Var_1 = InputBox (Introduza um nmero Inteiro)
Ambito_Projecto _2
End Sub
No Module_2 tem-se:
Sub Ambito_Projecto _2()
MsgBox Foi este o nmero que introduziu: & Var_1
End Sub
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
DOMNIO
DAS
CONSTANTES
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
mbito do Mdulo
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
mbito do Projecto
As constantes assim definidas tm o mbito correspondente a todo o projecto, 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
DOMNIO
DE
SUBROTINAS
FUNES
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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Estruturas de
Controlo
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da
execuo da rotina. Estas estruturas do ao programador um poder enorme para
construir rotinas bastante complexas e flexveis.
QUAIS
AS ESTRUTURAS
VBA Control
If -Then - Else
For Next
While-Wend
Do Loop
Select - Case
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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.
3.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Aplicao Prtica
A rotina Aposta recebe uma aposta do utilizador e mediante o Sorteio a realizar pela
respectiva funo, verifica se o jogador ganhou ou no a aposta, comunicando-lhe esse
facto.
Para uma maior clarificao do funcionamento do IF, atenda ao quadro seguinte:
If
Nsorteio = NAposta
Then
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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.
A FUNO
DAS
VARIVEIS:
Varivel
Base
Potncia
Contador
Resultado
Funo
Elemento a elevar.
Nmero de vezes a multiplicar a base.
Conta o nmero de vezes que a base j foi multiplicada, uma
varivel que ser automaticamente incrementada em cada looping do
ciclo.
Varivel que armazena o resultado sucessivo por cada vez que se
multiplica.
CONSTRUO
For
DO
CICLO:
Resultado = Resultado * Instruo a realizar de cada vez que o ciclo for executado.
Base
Neste caso a instruo nica, contudo poder-se-o adicionar
outras instrues.
Next
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Outra Aplicao
Pretende-se criar uma rotina para calcular um factorial.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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.
A FUNO
Varivel
Num_Lotaria
DAS
VARIVEIS:
Funo
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Num_Lanc
CONSTRUO
DO
CICLO:
While
Num_Lanc = Num_Lanc +1
Beep
Wend
TRADUO INTEGRAL
While Num_Lotaria <> Aposta
Num_Lotaria = Int ( 9 * Rnd() + 1 )
Num_Lanc = Num_Lanc +1
Beep
Wend
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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 palavrachave 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.
Outra Aplicao
Pretende-se realizar um jogo de geografia. Tente compreender o seu funcionamento.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
DO LOOP
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas
possibilidades que esto limitadas quela estrutura:
Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma
expresso for verdadeira ou at que (until) a condio seja verdadeira (facilidade
conseguida atravs do operador Not)
Sintaxe
Poder ser:
Do [{While | Until} <condio>]
<Instrues a realizar em cada iterao>
Loop
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Aplicaes Prticas
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
SELECT CASE
Permite a escolha de um percurso mediante a avaliao de n condies. de extrema
utilidade para evitar os Ifs encadeados, dando um maior grau de legibilidade e
simplicidade ao cdigo construdo.
Sintaxe
Select Case <Expresso a ser avaliada>
[Case <Valor da Expresso>
[Instrues a realizar]]
...
[Case Else
[Instrues a realizar na situao residual]]
End Select
Aplicao Prtica
Recordem o processo resolvido com recurso a If Then Else ElseIf (figura 23)
Mais facilmente seria resolvido com recurso estrutura Select Case
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
End Select
Sintaxe
For Each <Varivel do tipo dos elementos do grupo> In <Grupo>
<Instrues a realizar para cada elemento do grupo>
Next
Aplicaes Prticas
UTILIZANDO ARRAYS
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Array_Pais
MsgBox Pais
Next
UTILIZANDO COLECES
DE
OBJECTOS
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Coleces de
Objectos e
Objectos
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
QUE SO
OBJECTOS ?
Propriedades
As propriedades dos objectos constituem o conjunto de caracteristicas que o definem.
Por exemplo: nome, cor, dimenso, designao, valor contido,
Mtodos
Os mtodos traduzem o comportamento de um objecto. Estes mtodos representam
procedimentos que executam uma determinada tarefa, que pode ser complementada
atravs da passagem de argumentos ou parmetros.
Eventos
Eventos ou acontecimentos, representam todas as actividades que envolvam o objecto e
que normalmente directa ou indirectamente so despoletadas pelo utilizador. Por
exemplo: abrir ou fechar um workbook, clicar sobre um boto ou worksheet, alterar o
contedo de um elemento,
Estes eventos servem para que possamos activar uma determinada tarefa aquando da sua
ocorrncia.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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 Projecto Project Window seleccione o
objecto ThisWorkBook. Na janela de edio repare nas duas caixinhas que se
encontram na parte superior. A do lado esquerdo indica general clique nela e seleccione
o elemento workbook, na caixinha da direita seleccione 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.
OBJECTOS
MAIS
UTILIZADOS
NO
EXCEL
Application
Application o objecto de topo hierrquico, representa o prprio Excel.
PROPRIEDADES
Propriedades
Caption
DisplayAlerts
Path
ScreenUpdating
WindoWorkSheetState
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
DisplayFormulaBar
MTODOS
Mtodos
Calculate
Help
Quit
Run
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
WorkBook
O Objecto WorkBook, na hierarquia de objectos segue de imediato o objecto
application e representa um ficheiro de Excel.
PROPRIEDADES
Propriedades
Name
Path
Saved
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
MTODOS
Mtodos
Activate
Close
Fecha um documento.
Argumentos:
SaveChanges se True, o documento gravado antes de ser
fechado; False caso contrrio
FileName se o argumento SaveChanges estiver a TRUE, o
WorkBook gravado com o nome aqui indicado
RoutWorkBook se TRUE e o WorkBook tiver endereos
para envio atribudos, envia o ficheiro por e-mail antes de fechar,
caso contrrio no.
Protect
Save
Grava o WorkBook.
Argumentos: No Tem
SaveCopyAs
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
WorkSheet
(verso Draft)
PROPRIEDADES
Propriedades
Index
Name
Nome da WorkSheet.
UsedRange
Visible
MTODOS
Mtodos
Activate
Calculate
Delete
Protect
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Range
Objecto utilizado para representar uma ou mais clulas de uma WorkSheet.
PROPRIEDADES
Propriedades
Count
Dependents
Name
Value
Formula
Text
MTODOS
Mtodos
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
OffSet
EntireRow
Select
Cell
(verso Draft)
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
Selecciona 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)
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
OBJECTOS SINGULARES VS
COLECES DE OBJECTOS
Objecto Singular refere um nico objecto que pode ser referenciado pelo nome.
Coleces de Objectos constituem conjuntos de objectos singulares que so
referenciados pelo ndice que os identifica na coleco.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
INDEXAO
NOME
Perante uma coleco de objectos necessrio identificar cada um dos diferentes itens
que a compem para que a eles seja possvel aceder.
Por analogia poder-se- mencionar o exemplo do array, este uma varivel plural, dado
que composto por um conjunto de variveis. Quando se pretende aceder a uma
posio do array utiliza-se o nome do array e o ndice da posio requerida.
Assim, a indexao de coleces pode ser realizada com base:
em nmeros ou
em nomes.
Exemplo:
WorkSheets(3).Name=Terceiro
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Exemplo:
WorkSheets(Sheet3).Name=Terceiro
VANTAGEM
No necessrio saber a ordem pela qual foi inserido na coleco
DESVANTAGEM
Alterao do nome da sheet provoca erros
Exemplo:
WorkSheets(Sheet3).Name=Terceiro
WorkSheets(Sheet3).Visible=False o objecto no reconhecido
TRATAMENTO
COMO OBJECTO:
Range(A1).Value=1
Equivalente a colocar na primeira clula da Sheet o valor 1.
TRATAMENTO
Range (A1:F20).Value= 1
Equivalente a colocar em todas as clulas do range A1 a F20 o valor 1.
Ou ento:
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
ActiveWorkbook.Worksheets(1).Range(A1).Value=1
Worksheets(1).Range(A1).Value=1
ActiveSheet.Range(A1).Value=1
Range(A1).Value=1
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
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
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
Miscellaneous
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
A INSTRUO WITH
A instruo With permite abreviar referncias a objectos. No faz sentido utiliz-lo
quando se pretende utilizar s uma propriedade ou mtodo, mas quando pretendemos
utilizar bastantes.
Aplicao Prtica
Ou Ento:
DO
VBA
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br
(verso Draft)
Directoria MS-DOS corrente.
Data do sistema.
Interrompe a execuo de uma ciclo Do Loop
Interrompe a execuo de um ciclo For Next ou For
Each Next
Provoca a interrupo da execuo de uma funo.
Provoca a interrupo da execuo de uma sub-rotina.
Arredonda um nmero decimal positivo para baixo, e um
negativo para cima. Ex 3,9 ->3 e 3,9 -> -3
Arredonda para cima um nmero decimal positivo ou
negativo. Ex 3,9 ->4 e 3,9 -> -4
True se a expresso um array. False caso contrrio.
True se a expresso do tipo Date. False caso contrrio.
True se nenhum valor foi atribudo varivel.
True se a expresso contiver um erro.
True se a expresso representar o valor NULL.
True se a expresso for numrica.
True se se tratar de um objecto.
Retorna a dimenso de uma String.
Retorna o valor da data e da hora actual.
Corre um programa executvel.
Retorna a raiz quadrada de um nmero.
Retorna a representao String de um nmero.
Realiza a comparao de strings, produzindo True ou False
conforme sejam ou no iguais.
Produz a hora actual.
Retorna o tipo de dados de uma varivel.
Converte uma expresso de forma numrica ou textual
para um valor de tipo inteiro.
Converte uma expresso de forma numrica ou textual
para um valor de tipo booleano.
Converte uma expresso de forma numrica ou textual
para um valor de tipo data.
Converte uma expresso de forma numrica ou textual
para um valor de tipo Long.
Converte uma expresso de forma numrica ou textual
para um valor de tipo String.
_____________________________________________________________________________________
_Geovane Zomer
geovanezomerlivros@hotmail.com.br