Criando Macros VBA no Excel

Criando Macros VBA no Excel

(Parte 1 de 7)

MACROS5
O QUE É UMA MACRO?6
CRIAR MACROS6
Gravar uma Macro6
Exercício8
Procedimento BackGround do Excel9
Programação em Visual Basic for Applications10
EXECUTAR UMA MACRO1
Tecla de Atalho – Shortcut Key12
Botão na Toolbar12
Associar uma Macro a um Botão12
Dissociar uma Macro de um Botão14
Run14
Comando no Menu15
Associação de uma Macro a um Comando do Menu15
Dissociação16
Editor de Visual Basic for Applications17
REMOVER MACROS17
Remoção de Macros em Ambiente Excel17
Remoção de Macros no Editor de VBA18
EDITOR DE VISUAL BASIC FOR APPLICATIONS19
PROJECT EXPLORER21
PROPERTIES WINDOW2
JANELA DE EDIÇÃO23
OBJECT BROWSER23
HELP ON-LINE24
AS CORES DO VBA24
FUNÇÕES E SUBROTINAS26
SUBROTINAS28
Definição de SubRotinas28
Trabalhar no Editor de VBA – Criar uma SubRotina28
Execução de uma SubRotina29
FUNÇÕES30
Definição de Funções30
Definição do tipo de parâmetros e do tipo da função30
Trabalhar no Editor de VBA – Criar uma Função31
Execução de uma Função32
Execução dentro de uma Célula32
Execução dentro de uma Rotina38
DIFERENÇAS ENTRE FUNÇÕES E ROTINAS39
REGRAS PARA A PASSAGEM DE PARÂMETROS39
VARIÁVEIS41
MANUSEAMENTO COM VARIÁVEIS42
O que são variáveis?42
Assignação de valores a variáveis:43
Utilização de variáveis como se fossem valores:43

Índice TIPOS DE VARIÁVEIS .....................................................................................................................................43

VARIÁVEIS – VANTAGENS DA UTILIZAÇÃO45
VARIÁVEIS DO TIPO OBJECTO45
Declaração da Variável Objecto45
Atribuição de uma variável Objecto45
Utilização Genérica da Variável Objecto46
Utilização Especifica da Variável Objecto46
VARIÁVEIS – DECLARAÇÃO OPCIONAL E O TIPO VARIANT47
Os Prós e Contras da Utilização do tipo Variants47
Prós47
Contras47
Variáveis – Declaração Forçada48
VARIÁVEIS – TIPOS DEFINIDOS PELO UTILIZADOR - ESTRUTURAS48
Definição do Tipo48
Utilização das Estruturas de Dados49
VARIÁVEIS – ARRAYS50
O que é um Array ?50
Array Uni-Dimensional50
Array Bi-Dimensional50
Declaração de um array51
Arrays Uni-dimensionais51
Arrays Bi-dimensionais51
Utilização de um Array52
Para aceder ao elemento52
Atribuição de valores52
Option Base e Array Bounds53
CONSTANTES54
O QUE SÃO CONSTANTES ?5
INPUTBOX E MSGBOX56
O QUE SÃO ?57
INPUTBOX57
O que faz…57
Sintaxe57
Parâmetros58
MSGBOX59
O que faz…59
Sintaxe59
Parâmetros59
Valores Produzidos…62
DOMÍNIO DAS VARIÁVEIS, CONSTANTES E ROTINAS63
O QUE É O DOMINIO?64
DOMÍNIO DAS VARIÁVEIS64
Âmbito do Procedimento64
Âmbito do Módulo65
Âmbito do Projecto6
DOMÍNIO DAS CONSTANTES67
Âmbito do Procedimento67
Âmbito do Módulo68
Âmbito do Projecto68
DOMÍNIO DE SUBROTINAS E FUNÇÕES68
ESTRUTURAS DE CONTROLO69
O QUE SÃO ESTRUTURAS DE CONTROLO?70
QUAIS AS ESTRUTURAS…70
IF-THEN-ELSE71
Função IF do Excel71
Sintaxe da Estrutura If-Then-Else71
Aplicação Prática72
A instrução adicional ElseIf76

DECLARAÇÃO DE VARIÁVEIS..........................................................................................................................4 Aplicação Prática............................................................................................................................................ 76

Sintaxe7
Aplicação Prática7
A Função das Variáveis:78
Construção do Ciclo:78
Tradução Integral79
Funcionamento do Ciclo:79
Perigos associados à utilização do ciclo For-Next:79
Outra Aplicação80
WHILE-WEND81
Sintaxe81
Aplicação Prática82
A Função das Variáveis:82
Construção do Ciclo:82
Tradução Integral83
Funcionamento do Ciclo83
Perigos associados à utilização do ciclo While-Wend84
Outra Aplicação84
DO – LOOP85
Sintaxe85
Aplicações Práticas86
SELECT CASE8
Sintaxe8
Aplicação Prática8
Construção da Estrutura89
FOR – EACH – NEXT90
Sintaxe90
Aplicações Práticas91
Utilizando Arrays91
Construção do Ciclo92
Utilizando Colecções de Objectos92
COLECÇÕES DE OBJECTOS E OBJECTOS94
O QUE SÃO OBJECTOS ?95
OBJECTOS: PROPRIEDADES, MÉTODOS E EVENTOS95
Propriedades95
Métodos95
Eventos95
OBJECTOS MAIS UTILIZADOS NO EXCEL96
Propriedades96
Métodos97
Propriedades98
Métodos9
Propriedades100
Métodos100
Propriedades101
Métodos102
OBJECTOS SINGULARES VSCOLECÇÕES DE OBJECTOS........................................................................103
INDEXAÇÃO DE COLECÇÕES POR NÚMERO OU NOME104
Indexação com Base em Números104
Indexação com Base no Nome105
Vantagem105
O Objecto Range – uma excepção105
Tratamento como objecto:105
Tratamento como colecção de objectos:105
REFERÊNCIA IMPLÍCITA106
Declaração implícita da aplicação:106
Declaração implícita do WorkBook:107
Declaração implícita da WorkSheet:107
Nível de referência a privilegiar108
MISCELLANEOUS109
A INSTRUÇÃO WITH110

FOR – NEXT................................................................................................................................................7 Aplicação Prática.............................................................................................................................. 110

OUTRAS FUNÇÕES ÚTEIS DO VBA.............................................................................................................. 1 OUTRAS FUNÇÕES ÚTEIS DO VBA.............................................................................................................. 1

MacrosMacros MacrosMacros

Uma macro é um pequeno programa que contém uma lista de instruções a realizar no Excel. Como sendo um repositório de operações, uma macro pode executar um conjunto de tarefas através de um único procedimento o qual pode ser invocado rapidamente.

As instruções que formam o corpo da macro são escritas num código próprio para que o computador as possa entender, essa linguagem é designada por VBA – Visual Basic for Applications.

Existem duas possibilidades de criação de macros:

Através do Gravador de Macros Utilizando o editor e programando em Visual Basic for Applications

Gravar uma Macro 1.Tools / Macro / Record New Macro. O Excel exibirá a caixa de diálogo da fig.1.

Fig.1 – caixa de diálogo para a gravação de macros.

2.O nome da Macro será constituído por um conjunto de caracteres que identificarão a Macro e a sua funcionalidade.

3.Shortcut Key – é composto por uma combinação de teclas que poderão 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 deverão armazenar a macro na opção ThisWorkBook para que ela esteja activa sempre que o documento estiver aberto, e para que ela esteja armazenada no próprio ficheiro não correndo o risco de ficar armazenada nas Macros do Excel. (na rede do ISCTE é impossível gravar a macro no Personal WorkBook.)

5.No campo Description, introduza um comentário à função – este poderá ser importante para que não seja esquecido o respectivo objectivo e funcionalidade.

6.Clique em OK para iniciar a gravação 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 gravação.

Fig.2 – Toolbar exibida para a gravação de macros.

7.Na toolbar Stop Record, existem dois botões: Stop Recording e Relative Reference – O botão de

Stop Recording termina a gravação da macro, o botão de Relative Reference selecciona o modo de gravação da macro – se é feito com base em referências relativas (botão seleccionado) ou referências absolutas.

8.No caso da toolbar Stop Record desaparecer, poderá voltar a exibi-la fazendo no menu a sequência:

View / Toolbars / Stop Record (seleccione a toolbar). Caso a toolbar não apareça listada a gravação de macros não está activa.

Nota: Tome atenção aos passos que dá quando está a gravar pois tudo será registado, o que significa que quando for executar a macro, esses procedimentos serão efectuados.

Objectivo: Gravar uma macro testando a diferença entre a execução de macros com referências absolutas e relativas.

1ª Fase: Macro com referências Absolutas

1.Accione a gravação da macro. Atribua-lhe o Short Key Ctrl+P 2.Certifique-se que o botão Relative Reference está desactivado. 3.Clique na célula B3. 4.Escreva ISCTE 5.Formate a célula para Bold, Itálico, tamanho 18, Small Caps,… (utilize o Format / Font) 6.Na célula B4 escreva: Av. Forças Armadas 7.Na célula B5 escreva: 1700 Lisboa 8.Pare a gravação da macro. – A macro está criada. 9.Apague tudo o que escreveu nas células da coluna B. 10.Clique na célula L8. 1.Carregue simultaneamente nas teclas Ctrl e P 12.O que aconteceu ?

2ª Fase: Macro com referências Relativas

1.Seleccione a célula D5. 2.Accione a gravação da macro. Atribua-lhe o Short Key Ctrl+R 3.Seleccione o botão Relative Reference. 4.Escreva ISCTE na célula que havia sido seleccionada. 5.Formate a célula para Bold, Itálico, tamanho 18, Small Caps,… (utilize o Format / Font) 6.Na célula D6 escreva: Av. Forças Armadas 7.Na célula D7 escreva: 1700 Lisboa 8.Pare a gravação da macro. – A macro está criada. 9.Apague tudo o que escreveu nas células da coluna D. 10.Clique na célula L8. 1.Carregue simultaneamente nas teclas Ctrl e R 12.O que aconteceu ? Porquê ?

O Excel quando se grava uma macro cria um objecto designado por module no workbook onde regista todas as operações gravadas em linguagem Visual Basic for Applications - VBA. Este module não aparece no Excel com as restantes Sheets.

Para ser visualizado é necessário abrir o Editor de Visual Basic for Applications: 1.Tools / Macro / Macros 2.Selecciona-se a Macro e Clica-se no botão Edit

3.Poderá visualizar na área do lado direito o código 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 instruções 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.

Programação 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 Funções e SubRotinas)

Figura 3 – Editor de Visual Basic for Applications

2.Para inserir um módulo faça Insert / Module – isto porque as macros que construir deverão ser escritas dentro de um módulo (repare na Figura 3 que o Module 1 está seleccionado na janela de projecto e do lado direito tem-se uma área de edição onde poder-se-ão escrever as macros a executar)

3.Pode agora programar os procedimentos manualmente ou com recurso a algumas funcionalidades do Editor:

a)Insert / Procedure – insere um procedimento para o qual deverá indicar o tipo de procedimento.

b)Quando estiver a introduzir as variáveis haverá de ser exibida a lista de tipos de variáveis possível.

4.Sempre que precisar de construir uma macro mais ou menos complicada, se não conhecer muito de

VBA poderá começar por gravar no EXCEL pequenas macros com operações 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 exigências.

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.1. Clique no Ícone do Object Browser ou View/Object Browser ou F2

6.2. Na Caixa de Drop-Down onde aparece referido <All Libraries>, seleccione a aplicação para a qual pretende ajuda – neste caso Excel. Convém referir que poderá utilizar as funções de toda e qualquer aplicação.

6.3. Na área intitulada por Classes aparecem todos os objectos específicos para o manuseamento da aplicação seleccionada. A classe especial designada por Globals refere-se às funções que estão disponíveis na aplicação 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 dispõe de um help on-line que o esclarece sobre a respectiva função e funcionamento, dando exemplo que poderá testar. Para tal basta clicar sobre o botão de Help da janela do Object Browser.

A execução de uma macro pode ser concretizada de diversas formas:

Tecla de Atalho – Shortcut Key Botão na Toolbar

(Parte 1 de 7)

Comentários