Escolar Documentos
Profissional Documentos
Cultura Documentos
Criando Macros VBA Excel PDF
Criando Macros VBA Excel PDF
MACROS......................................................................................................................................................5
O QUE UMA MACRO?...................................................................................................................................6
CRIAR MACROS............................................................................................................................................. 6
Gravar uma Macro................................................................................................................................6
Exerccio ......................................................................................................................................................... 8
Procedimento BackGround do Excel................................................................................................................ 9
Programao em Visual Basic for Applications................................................................................. 10
EXECUTAR UMA MACRO................................................................................................................................11
Tecla de Atalho Shortcut Key........................................................................................................... 12
Boto na Toolbar ................................................................................................................................12
Associar uma Macro a um Boto.................................................................................................................... 12
Dissociar uma Macro de um Boto................................................................................................................. 14
Run ......................................................................................................................................................14
Comando no Menu...............................................................................................................................15
Associao de uma Macro a um Comando do Menu...................................................................................... 15
Dissociao..................................................................................................................................................... 16
Editor de Visual Basic for Applications.............................................................................................. 17
REMOVER MACROS...................................................................................................................................... 17
Remoo de Macros em Ambiente Excel.............................................................................................17
Remoo de Macros no Editor de VBA............................................................................................... 18
EDITOR DE VISUAL BASIC FOR APPLICATIONS......................................................................... 19
PROJECT EXPLORER ..................................................................................................................................... 21
PROPERTIES WINDOW................................................................................................................................... 22
JANELA DE EDIO.......................................................................................................................................23
OBJECT BROWSER........................................................................................................................................ 23
HELP ON-LINE............................................................................................................................................ 24
AS CORES DO VBA.....................................................................................................................................24
FUNES E SUBROTINAS....................................................................................................................26
SUBROTINAS............................................................................................................................................... 28
Definio de SubRotinas..................................................................................................................... 28
Trabalhar no Editor de VBA Criar uma SubRotina ........................................................................ 28
Execuo de uma SubRotina............................................................................................................... 29
FUNES.....................................................................................................................................................30
Definio de Funes.......................................................................................................................... 30
Definio do tipo de parmetros e do tipo da funo......................................................................... 30
Trabalhar no Editor de VBA Criar uma Funo............................................................................. 31
Execuo de uma Funo....................................................................................................................32
Execuo dentro de uma Clula...................................................................................................................... 32
Execuo dentro de uma Rotina..................................................................................................................... 38
DIFERENAS ENTRE FUNES E ROTINAS......................................................................................................... 39
REGRAS PARA A PASSAGEM DE PARMETROS..................................................................................................... 39
VARIVEIS............................................................................................................................................... 41
MANUSEAMENTO COM VARIVEIS...................................................................................................................42
O que so variveis?........................................................................................................................... 42
Assignao de valores a variveis:..................................................................................................... 43
Utilizao de variveis como se fossem valores:................................................................................ 43
TIPOS DE VARIVEIS .....................................................................................................................................43
DECLARAO DE VARIVEIS ..........................................................................................................................44
VARIVEIS VANTAGENS DA UTILIZAO....................................................................................................... 45
VARIVEIS DO TIPO OBJECTO........................................................................................................................ 45
Declarao da Varivel Objecto.........................................................................................................45
Atribuio de uma varivel Objecto....................................................................................................45
Utilizao Genrica da Varivel Objecto........................................................................................... 46
Utilizao Especifica da Varivel Objecto......................................................................................... 46
VARIVEIS DECLARAO OPCIONAL E O TIPO VARIANT.................................................................................47
Os Prs e Contras da Utilizao do tipo Variants..............................................................................47
Prs................................................................................................................................................................ 47
Contras........................................................................................................................................................... 47
Variveis Declarao Forada........................................................................................................ 48
VARIVEIS TIPOS DEFINIDOS PELO UTILIZADOR - ESTRUTURAS........................................................................... 48
Definio do Tipo................................................................................................................................ 48
Utilizao das Estruturas de Dados....................................................................................................49
VARIVEIS ARRAYS...................................................................................................................................50
O que um Array ?..............................................................................................................................50
Array Uni-Dimensional.................................................................................................................................. 50
Array Bi-Dimensional.................................................................................................................................... 50
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
Option Base e Array Bounds............................................................................................................... 53
CONSTANTES.......................................................................................................................................... 54
O QUE SO CONSTANTES ?............................................................................................................................. 55
INPUTBOX E MSGBOX.......................................................................................................................... 56
O QUE SO ?............................................................................................................................................... 57
INPUTBOX...................................................................................................................................................57
O que faz.......................................................................................................................................... 57
Sintaxe................................................................................................................................................. 57
Parmetros.......................................................................................................................................... 58
MSGBOX.................................................................................................................................................... 59
O que faz.......................................................................................................................................... 59
Sintaxe................................................................................................................................................. 59
Parmetros.......................................................................................................................................... 59
Valores Produzidos.......................................................................................................................... 62
DOMNIO DAS VARIVEIS, CONSTANTES E ROTINAS.............................................................. 63
O QUE O DOMINIO?.................................................................................................................................... 64
DOMNIO DAS VARIVEIS.............................................................................................................................. 64
mbito do Procedimento..................................................................................................................... 64
mbito do Mdulo............................................................................................................................... 65
mbito do Projecto..............................................................................................................................66
DOMNIO DAS CONSTANTES ...........................................................................................................................67
mbito do Procedimento..................................................................................................................... 67
mbito do Mdulo............................................................................................................................... 68
mbito do Projecto..............................................................................................................................68
DOMNIO DE SUBROTINAS E FUNES.............................................................................................................68
ESTRUTURAS DE CONTROLO ...........................................................................................................69
O QUE SO ESTRUTURAS DE CONTROLO?.......................................................................................................... 70
QUAIS AS ESTRUTURAS.............................................................................................................................. 70
IF-THEN-ELSE............................................................................................................................................. 71
Funo IF do Excel............................................................................................................................. 71
Sintaxe da Estrutura If-Then-Else....................................................................................................... 71
Aplicao Prtica................................................................................................................................ 72
A instruo adicional ElseIf............................................................................................................... 76
Aplicao Prtica............................................................................................................................................ 76
FOR NEXT................................................................................................................................................77
Sintaxe................................................................................................................................................. 77
Aplicao Prtica................................................................................................................................ 77
A Funo das Variveis:................................................................................................................................. 78
Construo do Ciclo:...................................................................................................................................... 78
Traduo Integral........................................................................................................................................... 79
Funcionamento do Ciclo:.................................................................................................................... 79
Perigos associados utilizao do ciclo For-Next:............................................................................79
Outra Aplicao ................................................................................................................................. 80
WHILE-WEND............................................................................................................................................. 81
Sintaxe................................................................................................................................................. 81
Aplicao Prtica................................................................................................................................ 82
A Funo das Variveis:................................................................................................................................. 82
Construo do Ciclo:...................................................................................................................................... 82
Traduo Integral........................................................................................................................................... 83
Funcionamento do Ciclo..................................................................................................................... 83
Perigos associados utilizao do ciclo While-Wend........................................................................84
Outra Aplicao.................................................................................................................................. 84
DO LOOP................................................................................................................................................. 85
Sintaxe................................................................................................................................................. 85
Aplicaes Prticas............................................................................................................................. 86
SELECT CASE.............................................................................................................................................. 88
Sintaxe................................................................................................................................................. 88
Aplicao Prtica................................................................................................................................ 88
Construo da Estrutura.................................................................................................................................. 89
FOR EACH NEXT....................................................................................................................................90
Sintaxe................................................................................................................................................. 90
Aplicaes Prticas............................................................................................................................. 91
Utilizando Arrays........................................................................................................................................... 91
Construo do Ciclo................................................................................................................................... 92
Utilizando Coleces de Objectos.................................................................................................................. 92
COLECES DE OBJECTOS E OBJECTOS......................................................................................94
O QUE SO OBJECTOS ?................................................................................................................................ 95
OBJECTOS: PROPRIEDADES, MTODOS E EVENTOS.............................................................................................95
Propriedades....................................................................................................................................... 95
Mtodos .............................................................................................................................................. 95
Eventos.................................................................................................................................................95
OBJECTOS MAIS UTILIZADOS NO EXCEL........................................................................................................... 96
Propriedades................................................................................................................................................... 96
Mtodos.......................................................................................................................................................... 97
Propriedades................................................................................................................................................... 98
Mtodos.......................................................................................................................................................... 99
Propriedades................................................................................................................................................. 100
Mtodos........................................................................................................................................................ 100
Propriedades................................................................................................................................................. 101
Mtodos........................................................................................................................................................ 102
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
O Objecto Range uma excepo.....................................................................................................105
Tratamento como objecto:............................................................................................................................ 105
Tratamento como coleco de objectos:....................................................................................................... 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
MISCELLANEOUS................................................................................................................................ 109
A INSTRUO WITH................................................................................................................................... 110
Aplicao Prtica.............................................................................................................................. 110
OUTRAS FUNES TEIS DO VBA.............................................................................................................. 111
Macros
O QUE UMA MACRO?
Uma macro um pequeno programa que contm uma lista de instrues a realizar no Excel. Como
sendo um repositrio de operaes, uma macro pode executar um conjunto de tarefas atravs de um
nico procedimento o qual pode ser invocado rapidamente.
As instrues que formam o corpo da macro so escritas num cdigo prprio para que o computador as
possa entender, essa linguagem designada por VBA Visual Basic for Applications.
CRIAR MACROS
Existem duas possibilidades de criao de macros:
2. O nome da Macro ser constitudo por um conjunto de caracteres que identificaro a Macro e a sua
funcionalidade.
3. Shortcut Key composto por uma combinao de teclas que podero ser utilizadas para executar
uma macro.
4. Opte por armazenar a macro numa das seguintes alternativas: This Workbook, New Workbook ou
Personal Workbook, sendo que cada uma corresponde a macros de mbito diferente. Assim devero
armazenar a macro na opo ThisWorkBook para que ela esteja activa sempre que o documento
estiver aberto, e para que ela esteja armazenada no prprio ficheiro no correndo o risco de ficar
armazenada nas Macros do Excel. (na rede do ISCTE impossvel gravar a macro no Personal
WorkBook.)
5. No campo Description, introduza um comentrio funo este poder ser importante para que
no seja esquecido o respectivo objectivo e funcionalidade.
6. Clique em OK para iniciar a gravao da macro neste momento ser exibida uma toolbar
semelhante da figura 2, e o cone do rato ser transformado numa cassete, indicando o estado de
gravao.
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.
EXERCCIO
Objectivo: Gravar uma macro testando a diferena entre a execuo de macros com referncias
absolutas e relativas.
Para ser visualizado necessrio abrir o Editor de Visual Basic for Applications:
3. Poder visualizar na rea do lado direito o cdigo VBA que est subjacente s macros que
entretanto gravou. A poder executar as mesmas tarefas que num editor de texto normal: escrever,
apagar, copiar, mover, mas instrues de VBA.
5. Para regressar ao Excel basta File / Close and return to Microsoft Excel.
Programao em Visual Basic for Applications
1. Para aceder ao editor de Visual Basic for Applications: Tools / Macro / Visual Basic Editor (para se
familiarizar mais com o editor consulte o capitulo Editor Visual Basic for Applications e o capitulo
Funes e SubRotinas)
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)
a) Insert / Procedure insere um procedimento para o qual dever indicar o tipo de procedimento.
b) Quando estiver a introduzir as variveis haver de ser exibida a lista de tipos de variveis
possvel.
4. Sempre que precisar de construir uma macro mais ou menos complicada, se no conhecer muito de
VBA poder comear por gravar no EXCEL pequenas macros com operaes muito simples e
depois no editor de VBA tentar compreender a sua funcionalidade e assim construir uma macro cada
vez mais complexa, completa e adequada s suas exigncias.
5. Poder em cada macro fazer uma chamada a uma outra macro, bastando para tal escrever o
respectivo nome.
6. No Editor de Visual Basic for Applications poder encontrar ajuda para o desenvolvimento do seu
procedimento. Assim:
6.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.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.
Boto na Toolbar
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 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, seleccione o logotipo pretendido, se nenhum o satisfizer e pretender criar o seu
seleccione o logotipo que representa um quadrado vazio. Para o poder (re)desenhar a
imagem, na lista de tarefas disponibilizada pelo boto Modify Selection opte por Edit Button
Image e crie a sua imagem que poder reeditar.
Run
1. Tools / Macro / Macros
2. Na caixa de dilogo Macros selecciona-se a macro pretendida na lista da Macro Name (Figura 6)
Comando no Menu
6. Na janela de Customize poder ainda utilizar dois botes que se encontram na rea do Selected
Command:
DISSOCIAO
1. Tools / Customize
2. Posicionando-se no corpo de uma macro, na janela do lado direito inferior, poder executar a macro
atravs de: Run / Run Sub-UserForms (figura 9) ou boto Run.
no ambiente Excel, ou
no Editor de VBA
3. Podem-se apagar as macros que se encontrem na janela do lado direito inferior e que tm inicio com
a palavra Sub e fim com as palavras End Sub (Ver capitulo de funes e procedimentos)
Editor de Visual
Basic for
Applications
Para aceder ao editor de Visual Basic for Applications: Tools / Macro / Visual Basic Editor
Encontrar o cran dividido em trs grandes reas: Project Explorer, Properties Window e do lado
direito a janela de edio de texto.
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.
Assim se fizer o desdobramento do seu VBAProject, encontrar um folder cuja designao Microsoft
Excel Objects, e um outro designado Modules (se este no aparecer significa que o seu projecto ainda
no possui qualquer macro implementada. Para criar este folder dever fazer: Insert / Module).
No folder do Microsoft Excel Objects, encontrar todos os objectos que fazem parte do seu documento:
as WorkSheets e o WorkBook (que no fundo o conjunto de WorkSheets). Se clicar duplamente em
cada um destes objectos, uma nova janela ser visualizada na rea da direita, em cada uma dessas reas
poder definir a aco a ser executada em funo dos eventos de cada objecto.
No Folder Modules, aparecer o conjunto de ficheiros (mdulos) onde poder programar as suas
macros. Clicando duplamente em cada um dos mdulos indicados poder visualizar as macros, que o
compem, na janela da direita.
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.
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.
No Editor de Visual Basic for Applications poder encontrar ajuda para o desenvolvimento do seu
procedimento. Assim:
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.
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.
AS CORES DO VBA
Na Janela de Edio so programados, armazenados e exibidos os procedimentos VBA criados.
Porm, o texto envolvido em cada procedimento dotado de uma srie de cores diferentes, sendo que
cada uma tem significado diferente.
Cor Significado
Azul Palavras-Chave da linguagem. Ex: Sub, End Sub, Function, If, Then,
Else, While, Loop,
Vermelho Sempre que escreve na janela uma linha em linguagem VBA, o editor
vai rectificar a sintaxe da linguagem por forma a indicar se existe ou
no algum erro de escrita. Se for detectado um erro a linha fica a
vermelho e exibida uma mensagem de erro, seno todas as palavras
so reconhecidas, coloridas da cor da respectiva categoria e alteradas
para letras maisculas ou minsculas, conforme esteja pr-definido.
Cada macro criada d origem a um procedimento ou rotina. Existem dois tipos de rotinas:
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.
1
Entenda-se instruo como uma tarefa a executar que corresponde a uma linha de cdigo.
2
O nome da rotina pode ser qualquer um desde que no contenha espaos, comece por caracteres alfa
Escrever a macro integralmente, ou
Recorrer ao Insert / Procedure para que o Visual Basic for Applications lhe crie a estrutura (Figura
14)
Assim dever indicar o tipo de rotina a criar Sub e o nome que pretende dar macro (ou
rotina ou procedimento ou SubRotina) 4. Automaticamente ele criar a estrutura da rotina, neste
caso ficaria:
Sub Macro1( )
End Sub
SubRotina e Macro so duas designaes para a mesma realidade, portanto tudo o que foi referido
relativamente a Macros vlido tambm para as SubRotinas. (Consultar captulo das Macros)
Neste contexto a execuo de SubRotinas segue o mesmo mecanismo das macros. Porm neste
momento j se pode referir uma nova forma de executar as macros ou SubRotinas dentro de outras
3
Para ter a noo do que so parmetros recorde-se do funcionamento das funes do Excel, que para executarem
determinada funo necessitavam de receber parmetros que colocamos entre parntesis separados por virgulas.
4
Nomes alternativos para fazer referncia a um conjunto de instrues.
rotinas, i.e., quando se escreve dentro de uma rotina o nome de outra a execuo da rotina tem
continuidade na execuo da rotina que est a ser invocada.
FUNES
Definio de Funes
Funes so rotinas cuja definio comea com a palavra-chave Function e termina com as palavras
End Function. Todas as funes que utiliza no Excel so deste tipo de rotina. A sua definio tem a
estrutura seguinte:
<Nome da Funo> = <Valor / Expresso>
End Function
A funo identificada pelo nome, pelo nmero e tipo de parmetros recebidos, e tem como objectivo
executar um conjunto de instrues e produzir um valor final. Isto , sempre que se pretender executar
uma funo sabido priori que ela produzir um valor. Recorde-se como exemplo a funo SUM,
esta recebe por parmetro um conjunto de valores que se pretendem somar, sabe-se que o resultado da
aplicao dessa funo ao conjunto de valores ser o respectivo somatrio.
Para definir o valor produzido por uma funo basta no seu interior, atribuir ao nome da funo um
determinado valor ou expresso.
<Nome da Funo> = <Valor / Expresso>
End Function
Nota: Se os tipos no forem definidos ser assumido por defeito como sendo do tipo Variant
Recorrer ao Insert / Procedure para que o Visual Basic for Applications lhe crie a estrutura (Figura
15)
Nesta caixa de dilogo dever indicar o tipo de rotina a criar Function e o nome que pretende
dar funo. Automaticamente o Visual Basic for Applications criar a estrutura da rotina, que
neste caso ficaria:
Function IVA( )
End Function
Execuo de uma Funo
Uma vez que uma funo produz um valor ela poder ser executada:
dentro de uma clula numa WorkSheet, semelhana de qualquer uma outra funo do Excel
Com base na seguinte funo, analisemos as formas de execuo com mais pormenor:
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
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.
1. As Funes Comeam com a palavra-chave Function e terminam com as palavras End Function
Regra 1: Como uma funo retorna um valor, esta dever ser utilizada numa expresso. Quando uma
funo utilizada do lado direito de uma assignao, ou como argumento de uma outra rotina, dever-
se- passar os parmetros dentro de parntesis
Regra 2: Pode-se chamar uma funo ou subrotina com a palavra-chave Call, neste caso dever-se-o
colocar todos os parmetros entre parntesis.
Regra 3: Quando uma rotina chamada de forma isolada e sem a palavra-chave Call, no se deve
utilizar parntesis.
Variveis
MANUSEAMENTO COM VARIVEIS
O que so variveis?
As variveis constituem repositrios temporrios de dados, podendo ser utilizadas para diversos fins.
<Nome_Varivel> = <Valor>
Pela observao do procedimento Adio - Figura 22- podemos verificar que as variveis Parcela_1 e
Parcela_2 armazenam os valores introduzidos pelo utilizador atravs das InputBox (Ver captulo
"InputBox e MsgBox"). Tambm varivel Total vai ser atribudo o valor resultante da adio das duas
parcelas - Total = Parcela_1 + Parcela_2.
Parcela_1 representa o primeiro valor introduzido e Parcela_2 representa o segundo valor, no se trata
de adicionar o nome de duas variveis, mas adicionar os contedos que elas armazenam.
TIPOS DE VARIVEIS
O tipo de varivel est associado ao gnero de informao que esta tem hiptese de armazenar
Long 4 bytes permite armazenar nmeros inteiros entre -2 147 483 648 e
2 147 483 648
DECLARAO DE VARIVEIS
Onde:
Dim Palavra chave que indica uma declarao de variveis (abreviatura de dimenso)
I_Numero - nome da varivel a utilizar
As palavra chave utilizada para separar o nome da varivel do tipo de dados
Integer tipo de dados atribudo varivel
Onde:
A utilizao genrica do tipo Objecto serve para suportar qualquer tipo de objecto Excel
(WorkBook,WorkSheet,Range,)
Exemplo:
Exemplo:
Contudo estas declaraes tambm podem ser feitas da seguinte forma genrica:
PRS
Diminui o nmero de linhas de cdigo
CONTRAS
Aumenta o tempo de execuo o VBA primeiro precisa de reconhecer o tipo de dados com os
quais est a trabalhar.
Este tipo de dados consome mais memria (uma vez que tem que alocar espao para qualquer tipo
de dados que lhe seja atribudo) 16 bytes mais um byte por caractere se for String => problemas
de performance para subrotinas grandes.
No possvel saber o tipo de dados que uma determinada varivel contm dificultando a
deteco de erros.
Para que o VBA detecte um erro sempre que uma varivel no seja declarada dever fazer:
Tools/Options
Editor Tab
Activar Require Variable Declaration
Neste caso sempre que seja detectada uma varivel que ainda no foi declarada d uma mensagem de
erro - Variable Not Defined
Definio do Tipo
A primeira fase constituda pela definio do tipo:
Type Dados_Pessoais
Nome As String
Idade As Integer
DataNascimento As Date
BI As Long
End Type
Criou-se um tipo de dados que representa uma estrutura com dados de diferentes tipos. Esta definio
dever ocorrer no incio do mdulo VBA.
Onde:
Sub Tipos_definidos_Utilizador()
Pessoa.Nome = Francisco
Pessoa.DataNascimento = #8/7/73#
Pessoa.Idade = WorksheetFunction.Year(Date)_
WorksheetFunction.Year(Pessoa.DataNascimento)
Pessoa.BI = 103582915
MsgBox 5Pessoa.Nome & Chr(13) & , Idade & Pessoa.Idade & Chr(13) & _
, Data de Nascimento & Pessoa.DataNascimento & Chr(13) & _
, com o BI nmero _ & Pessoa.BI
End Sub
VARIVEIS ARRAYS
O que um Array ?
Um Array uma varivel que representa um conjunto de variveis do mesmo tipo.
ARRAY UNI-DIMENSIONAL
0
1
2
3
4
5
5
Ver captulo InputBox e MsgBox
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 1 2
0
1
2
3
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
Tabela_textual o nome da varivel, os nmero entre parntesis indicam que a tabela ir ter 5 linhas e
4 colunas, podendo assim armazenar 20 elementos do tipo String.
Tabela_Textual
0 1 2
0
1
2
3
Utilizao de um Array
ATRIBUIO DE VALORES
<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ]) = <Valor>
Exemplo 1:
Sub Pases()
MsgBox "Pases Armazenados:" & Chr(13) & Pases(0) & Chr(13) & Pases(1) &_ Chr(13) &
Pases(2)
End Sub
Aps a atribuio de valores a cada elemento do array, este passa a ter o contedo seguinte:
Pases
Portugal 0
Brasil 1
Moambique 2
Exemplo 2:
Option Base 1
Sub Utilizacao_Array()
Lotaria(1)=int(10000*Rnd())
Lotaria(2)=int(10000*Rnd())
Lotaria(3)=int(10000*Rnd())
MsgBox Nmeros da lotaria: & Lotaria(1) & , & Lotaria(2) & , &_ Lotaria(3)
End Sub
A indexao de um array por defeito tem inicio em 0, sendo que os respectivos ndices vo de 0 a
dimenso-1. Para alterar a base de indexao por forma a ter inicio em 1 basta colocar no inicio do
mdulo Option Base 1
Contudo se pretender que um array comece noutro nmero que no seja 0 ou 1, necessrio especificar
os limites inferior e superior do ndice aquando da declarao do array.
Exemplo:
Sub Utilizacao_Array()
Lotaria(4)=int(10000*Rnd())
Lotaria(5)=int(10000*Rnd())
MsgBox Nmeros da lotaria: & Lotaria(4) & , & Lotaria(5)
End Sub
Constantes
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.
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.
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.
Parmetros
Parmetro Comentrio
Exemplo:
"A Soma de 3 com 5 :" & Chr(13) & " 8 "
HelpFile Nome do ficheiro de Help que ser utilizado para dar apoio ao
(Facultativo) preenchimento desta janela. Se for indicado este parmetro o
seguinte obrigatrio.
Ateno: Se pretender enviar mais que um parmetro optativo respeite a ordem atravs de ,
(virgulas)
Exemplo:
InputBox(Introduza o Nome da Aplicao:, , Excel)
Na janela de input ser exibida a mensagem Introduza o Nome da Aplicao:, o ttulo da caixa ser o
definido por defeito e o valor na caixa de insero ser Excel.
MSGBOX
O QUE FAZ
1. Exibe no cran uma janela com uma mensagem.
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 Comentrio
Exemplo:
"A Soma de 3 com 5 :" & Chr(13) & " 8 "
HelpFile Nome do ficheiro de Help que ser utilizado para dar apoio ao
(Facultativo) preenchimento desta janela. Se for indicado este parmetro o
seguinte obrigatrio.
Exemplo:
MsgBox(Erro de Sintaxe !!!, , Mensagem de Erro)
Na janela de output ser exibida a mensagem Erro de Sintaxe, o boto exibido ser o de OK (por
defeito) e o titulo da janela ser Mensagem de Erro.
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.
Exemplos:
Para a instruo:
Figura 24 MsgBox
Para a instruo:
Figura 25 MsgBox
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:
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
Domnio das
variveis, constantes
e rotinas
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.
mbito do Procedimento
Estas variveis so declaradas no corpo do procedimento com recurso palavra chave Dim.
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
Neste caso se se pretendesse que o valor da primeira varivel fosse reconhecido no procedimento
chamado, ter-se-ia de o passar por parmetro.
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:
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:
Sub Ambito_Projecto()
Var_1 = InputBox (Introduza um nmero Inteiro)
Ambito_Projecto _2
End Sub
No Module_2 tem-se:
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()
End Sub
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 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
Por defeito as rotinas so de mbito do projecto sem qualquer indicao adicional. Contudo poder
tornar este facto mais explicito pela introduo da Palavra-Chave Public, que em termos operacionais
no adicionar qualquer funcionalidade, mas em termos de leitura dar uma maior percepo.
Exemplo:
Para que uma rotina tenha o mbito do mdulo onde est definida, dever ser antecedida pela palavra
chave Private.
Estruturas de
Controlo
O QUE SO ESTRUTURAS DE CONTROLO?
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
For Each Next Realiza uma determinada tarefa repetitiva em cada objecto
de uma coleco ou em cada item de um array.
IF-THEN-ELSE
Funo IF do Excel
Recorrendo funo IF do Excel, recorde:
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;
If <Condio> Then
<se condio verdadeira>
[ Else
<se condio falsa> ]
End If
A palavra Else opcional num If-Then-Else Statement, sendo que no caso de ser omitida, a avaliao
negativa da condio implica uma sada automtica da Instruo If.
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.
Nsorteio = NAposta A condio a testar. Serve para determinar a sequncia a dar execuo
da rotina. Da avaliao desta condio pode-se obter um de dois valores
True ou False, sendo que depende deste resultado o caminho a prosseguir.
Se for True executar as instrues que seguirem a palavra-chave Then
at encontrar a palavra chave Else, no executando mais nada dentro do
IF, caso contrrio executar o cdigo que se seguir palavra chave Else
at ao End If.
Then Palavra chave que determina o fim da condio teste. Todas as instrues
que tm inicio nesta palavra-chave at palavra-chave Else sero
executadas se a condio for verdadeira.
MsgBox Parabns!! Instrues a executar se a condio for verdadeira.
Acertou em cheio! O
nmero sorteado foi o
&NSorteio
APLICAO PRTICA
Pretende-se criar uma macro que classifique etariamente um indivduo em funo da sua idade. A
classificao pretendida a seguinte:
FOR NEXT
Permite a execuo de uma tarefa durante um determinado nmero de vezes.
Sintaxe
For <Inicializao do Contador> To <Valor > [ Step <Valor a Incrementar>]
<Instrues a realizar em cada iterao>
Next
Aplicao Prtica
Pretende-se criar uma rotina que recebendo a base e a potncia calcule o valor respectivo.
Figura 28 Procedimento que calcula a potncia de um nmero
A instruo For-Next tem como funo calcular a potncia. O mesmo efeito poderia ser obtido
recorrendo expresso Resultado = Base ^ Potncia, contudo para fins de demonstrao de
funcionamento este exemplo bastante simples.
CONSTRUO DO CICLO:
For Palavra-chave que indica o inicio do ciclo For-Next
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.
TRADUO INTEGRAL
Para o nmero de vezes, a iniciar em 1 at que atinja, o valor Potncia, pela incrementao de 1 na
execuo de cada ciclo, dever multiplicar sucessivamente o resultado acumulado, pela base.
Funcionamento do Ciclo:
A primeira execuo do ciclo distingue-se das restantes por a ela estar associada a inicializao do
contador, sendo o restante procedimento semelhante a qualquer outra execuo.
No inicio de cada execuo do ciclo, a varivel contador comparada com o valor final de execuo.
Se o Step for um valor positivo (incrementar) e o valor do contador for superior ao valor final
significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a
execuo da instruo For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir,
caso contrrio executa uma vez mais o ciclo e incrementa a varivel contador. Por outro lado, se o Step
contiver valor negativo (decrementar) e o valor do contador for inferior ao valor final significa que o
ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a execuo da instruo
For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir, caso contrrio executa
uma vez mais o ciclo e decrementa a varivel contador.
Perigos associados utilizao do ciclo For-Next:
No definir o limite de execuo (no atribuir valor varivel que o define)
Definir erroneamente o Step, por forma a que nunca seja obtido o valor que determina o fim da
execuo
estas condies implicaro que o ciclo no tenha fim Ciclos Infinitos
Outra Aplicao
Pretende-se criar uma rotina para calcular um factorial.
WHILE-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.
TRADUO INTEGRAL
While Num_Lotaria <> Aposta
Num_Lotaria = Int ( 9 * Rnd() + 1 )
Num_Lanc = Num_Lanc +1
Beep
Wend
Enquanto o nmero sorteado no for igual ao valor da aposta, o sorteio continua, o que implica sortear
um nmero contabilizar o nmero de sorteios realizados e apitar para que o utilizador tenha a
percepo do que est a ser realizado.
Funcionamento do Ciclo
Existe uma fase de inicializao das variveis envolvidas na condio Teste para garantir o 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.
A no verificao destas condies implicar que o ciclo no tenha fim Ciclos Infinitos
Outra Aplicao
Pretende-se realizar um jogo de geografia. Tente compreender o seu funcionamento.
DO LOOP
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas possibilidades que esto
limitadas quela estrutura:
Do Loop permite posicionar a condio teste no inicio ou fim do loop, a condio no fim do
Loop evita uma inicializao prvia do valor das variveis envolvidas na condio teste, dado que
essa inicializao pode ser feita no decurso do ciclo com valores reais.
Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma expresso for
verdadeira ou at que (until) a condio seja verdadeira (facilidade conseguida atravs do operador
Not)
Sintaxe
Poder ser:
Loop
Ou ento:
Do
<Instrues a realizar em cada iterao>
Aplicaes Prticas
Utilizando a condio teste no inicio do Loop e com a palavra While
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>
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
Figura 37 Aplicao da estrutura Select Case rotina Classe_Etaria
CONSTRUO DA ESTRUTURA
Select Case Palavras-Chave que indicam o inicio de um controlo
Select Case
Esta estrutura quando aplicada em arrays no funciona para a actualizao dos valores do array, mas
somente para a extraco do seu contedo. Contudo quando aplicada a coleces de objectos pode s-lo
para alterao das suas propriedades ou extraco de valores.
Sintaxe
Next
Aplicaes Prticas
UTILIZANDO ARRAYS
Pretende-se inicializar um array com um conjunto de 5 pases e posteriormente visualizar os elementos
introduzidos.
Figura 38 Exemplo no-funcional
Repare que o exemplo, poder estar conceptualmente 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 Palavras-Chave que indicam o inicio de um controlo
For-Each
Pais Varivel qual vo ser atribudos sucessivamente
todos os elementos do grupo de objectos. Este grupo
pode ser constitudo por uma array ou uma coleco
de objectos. Sendo que se se tratar de um array
esta varivel dever ser do tipo Variant. Se se tratar
de uma coleco, esta varivel poder assumir o tipo
Variant, o tipo Object genrico ou o tipo Object
especifico que corresponde ao tipo de objectos a que
a coleco remete.
Seguindo esta lgica podemos identificar alguns objectos do ambiente de trabalho Windows: o boto, o
grfico, o menu, o documento, a imagem, a textbox, a frmula, o workbook, a worksheet, a clula, o
conjunto de clulas de uma worksheet,
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.
Exemplo:
Suponha que pretende executar uma macro quando abre o seu workbook.
Application
Application o objecto de topo hierrquico, representa o prprio Excel.
PROPRIEDADES
Propriedades
Mtodos
Argumentos : no tem
Argumentos :
Helpfile: nome do ficheiro, incluindo a path se necessrio
Helpcontextid: nmero que faz referncia ao ndice de help
Quit Fecha aplicao Excel. (se a propriedade Display alerts estiver com o
valor False, o Excel no propor a gravao de alteraes nos
ficheiros)
Argumentos : no tem
WorkBook
O Objecto WorkBook, na hierarquia de objectos segue de imediato o objecto application e representa
um ficheiro de Excel.
PROPRIEDADES
Propriedades
MTODOS
Mtodos
WorkSheet
Na hierarquia situa-se abaixo do objecto WorkBook, uma vez que um WorkBook constitudo por um
conjunto de WorkSheets.
PROPRIEDADES
Propriedades
MTODOS
Mtodos
PROPRIEDADES
Propriedades
MTODOS
Mtodos
Calculate Provoca o clculo da frmula constantes do range
Argumentos: No Tem
ClearContents Apaga o contedo (frmulas e valores) de uma clula,
deixando os formatos.
Argumentos: No Tem
Copy 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)
OffSet 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
EntireRow Faz referncia (s) linha(s) indicadas por um determinado
range.
Argumentos: No Tem
Select Selecciona o range em questo.
Argumentos:
Replace- (Opcional)
Cell Referncia uma clula, atravs dos seus ndices numricos.
Argumentos:
Nmero da Linha
Nmero da Coluna
Ex: Clula C5 ser representado por Cells( 5, 3)
Objecto Singular refere um nico objecto que pode ser referenciado pelo 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.
Exemplo:
WorkSheets(3).Name=Terceiro
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
O Objecto Range uma excepo
O objecto range referido da mesma forma para ser utilizado como um objecto singular ou coleco de
objectos.
Ou ento:
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.
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= A
1 Range(A1).Value=1
diferena entre ambas as formas de acesso est no facto da segunda forma (Range(A1).Value = 1)
admitir que se est a trabalhar no workbook e na worksheet que nesse momento esto activas no Excel,
enquanto que na primeira forma so indicadas as referncias identificadoras do workbook e da
worksheet onde se pretende trabalhar.
Assim, pode-se afirmar que a segunda forma faz uma aluso implcita aplicao, ao workbook e
worksheet onde se trabalha.
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
Nvel de referncia a privilegiar
Temos aqui representados 7 nveis de codificao:
Ento, se existem tantas formas de referenciar uma clula, qual a forma a previligiar?
Aplication.Workbooks(1).Worksheets(1).Range(A1).Value=1
O ideal
Workbooks(1).Worksheets(1).Range(A1).Value=1 seria
escrever na
ActiveWorkbook.Worksheets(1).Range(A1).Value=1 forma
completa,
Worksheets(1).Range(A1).Value=1 mas
existem
algumas
Activesheet.Range(A1).Value=1
Range(A1).Value=1
Range(A1)=1
desvantagens:
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: