(Parte 1 de 6)

Excel – Macros e Visual Basic for Applications

Índice

Macros

O que é uma Macro?

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.

Criar Macros

Existem duas possibilidades de criação de macros:

  1. Através do Gravador de Macros

  2. 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.

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

  1. Shortcut Key – é composto por uma combinação de teclas que poderão ser utilizadas para executar uma macro.

  1. 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.)

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

  1. 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.

  1. 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.

  1. 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.

Exercício

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.

  11. 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.

  11. Carregue simultaneamente nas teclas Ctrl e R

  12. O que aconteceu ? Porquê ?

Procedimento BackGround do Excel

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

  1. Selecciona-se a Macro e Clica-se no botão Edit

  1. 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.

  1. Tente fazer a leitura do que está escrito e compreenda o procedimento da macro.

  1. 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

  1. 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)

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

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

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

  1. 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.

  1. Poderá em cada macro fazer uma chamada a uma outra macro, bastando para tal escrever o respectivo nome.

  1. No Editor de Visual Basic for Applications poderá encontrar ajuda para o desenvolvimento do seu procedimento. Assim:

  1. Clique no Ícone do Object Browser ou View/Object Browser ou F2

  1. 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.

  1. 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.

  1. Seleccione um dos objectos e visualize do lado direito os Members of “ <Elemento seleccionado>”

  1. 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.

Executar uma Macro

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

  • Tecla de Atalho – Shortcut Key

  • Botão na Toolbar

  • Run

  • Comando no Menu

  • Editor de Visual Basic for Applications

Tecla de Atalho – Shortcut Key

A associação a teclas de atalho é realizada aquando da criação da macro.

Botão na Toolbar

Associar uma Macro a um Botão

  1. View / Toolbars / Customize

  1. Na janela do Customize seleccione o Commands Tab

  1. Seleccione a categoria Macro (visualizará a caixa de diálogo exibida na Figura 4)

Fig.4 – caixa de diálogo para assignação de botão a macros

  1. Na área respeitante aos Commands serão exibidos dois itens: Custom Menu Item e Custom Button. Seleccione este segundo e arraste-o com o rato até à Toolbar onde o pretende inserir. Atenção só poderá inserir o botão quando o ponteiro do rato ficar com a forma I. Nesse momento libertará o botão do rato utilizado para o arrastamento e verificará que será criado um novo botão.

  1. Na janela de Customize poderá ainda utilizar dois botões que se encontram na área do Selected Command:

  1. Description – que exibe um texto explicando o que o comando seleccionado faz.

  2. Modify Selection – semelhante ao clique sobre o botão criado, exibe uma série de tarefas possíveis para configuração do botão ( ver operações seguintes).

Fig.5 – Menu para configuração do botão da toolbar

  1. Clique sobre o botão Modify Selection- abrindo um menu de tarefas possíveis para a configuração do botão – Ver Figura 5

  1. No último agrupamento de configurações possíveis existe uma opção designada por Assign Macro. Esta opção permite indicar qual a macro que deverá ser executada sempre que se clica no botão.

  1. No terceiro agrupamento existem 4 estilos diferentes de exibir o botão: só com texto, com texto e imagem ou somente com imagem. Se seleccionar o estilo Texto e Imagem, será exibido no botão para além da imagem o nome associado ao botão.

  1. Na opção Name indique o nome que pretende ver associado ao botão, por defeito aparece o nome da macro. (repare que aparece um & atrás da letra que aparece a sublinhado)

  1. Para alterar a imagem associada ao botão 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 botão Modify Selection opte por Edit Button Image e crie a sua imagem que poderá reeditar.

Dissociar uma Macro de um Botão

  1. Tools / Customize

  2. Arraste o botão da toolbar até ao documento

  3. Solte-o

Run

  1. Tools / Macro / Macros

  1. Na caixa de diálogo Macros selecciona-se a macro pretendida na lista da Macro Name (Figura 6)

  1. Clique sobre o botão Run

Fig.6– Janela para selecção da macro a executar

Comando no Menu

Associação de uma Macro a um Comando do Menu

  1. View / Toolbars / Customize

  1. Na janela do Customize encontra-se no Commands Tab

  1. Seleccione a categoria Macro

  1. Na aérea respeitante aos Commands será exibido um item de Custom Menu Item, seleccione-o e arraste-o com o rato até a uma posição do menu que lhe interesse – por exemplo pode introduzir numa das listas de opções do menu (File, View,…) ou então criar como uma nova opção do Menu..

Fig.7 – Caixa de diálogo para atribuir uma macro a um comando do menu

  1. Se pretender criar uma nova lista no menu deverá :

  1. Seleccionar a categoria New Menu

  2. Na área dos Commands será exibida a opção New Menu, que deverá arrastar até à barra dos menus

  3. Poderá alterar o seu nome clicando no botão de Modify Selection

  4. Esta nova lista terá o mesmo comportamento que a outras

Fig.8 – Caixa de diálogo para criar um novo menu na barra dos menus

  1. Na janela de Customize poderá ainda utilizar dois botões que se encontram na área do Selected Command:

  1. Description – que exibe um texto explicando o que o comando seleccionado faz.

  2. Modify Selection – semelhante ao clique sobre o menu ou comando de menu criado, exibe uma série de tarefas possíveis para configuração (Ver o item 6 do capítulo Associar uma Macro a um Botão)

Dissociação

  1. Tools / Customize

  1. Arraste o Menu ou Comando do Menu até ao documento e solte-o

Editor de Visual Basic for Applications

  1. Tools / Macro / Visual Basic Editor - para aceder ao Editor

  1. Posicionando-se no corpo de uma macro, na janela do lado direito inferior, poderá executar a macro através de: Run / Run Sub-UserForms (figura 9) ou botão Run.

Fig.9 – Execução de uma macro no Editor de Visual Basic for Applications

Remover Macros

A remoção das macros poderá ser feita:

  • no ambiente Excel, ou

  • no Editor de VBA

Remoção de Macros em Ambiente Excel

  1. Tools / Macro / Macros

  1. Selecciona-se a Macro a remover

  2. Clica-se no botão Delete

  3. Pede a confirmação e apaga se confirmar

Remoção de Macros no Editor de VBA

  1. Tools / Macro / Visual Basic Editor - para aceder ao Editor

  1. Podem-se apagar as macros que se encontrem na janela do lado direito inferior e que têm inicio com a palavra Sub e fim com as palavras End Sub (Ver capitulo de funções e procedimentos)

Editor de Visual Basic for Applications

Para aceder ao editor de Visual Basic for Applications: Tools / Macro / Visual Basic Editor

Figura 10 – Editor de Visual Basic for Applications

Encontrará o écran dividido em três grandes áreas: Project Explorer, Properties Window e do lado direito a janela de edição de texto.

Project Explorer

Se a janela não estiver visível active-a através do View / Project Explorer ou utilizando o botão ou combinações 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 necessário.

Figura 11 – Janela do Project Explorer

Assim se fizer o desdobramento do seu VBAProject, encontrará um folder cuja designação é Microsoft Excel Objects, e um outro designado Modules (se este não aparecer significa que o seu projecto ainda não 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 acção a ser executada em função dos eventos de cada objecto.

No Folder Modules, aparecerá o conjunto de ficheiros (módulos) onde poderá programar as suas macros. Clicando duplamente em cada um dos módulos indicados poderá visualizar as macros, que o compõem, na janela da direita.

Properties Window

Se a janela das propriedades não estiver visível active-a através do View / Properties Window ou utilizando o botão ou combinações de letras associadas a esta tarefa.

Figura 12 – Janela de propriedades

Nesta janela poderá visualizar e alterar as propriedades que definem cada objecto: o nome - neste caso.

Janela de Edição

A janela de edição exibirá a cada momento o código em Visual Basic for Applications associado ao elemento seleccionado na janela do Project Explorer.

Figura 13 – Janela de edição

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 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.

  • 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.

  • Seleccione um dos objectos e visualize do lado direito os Members of “ <Elemento seleccionado>”

  • Para cada membro da classe dispõe de um help on-line que o esclarece sobre a respectiva função e funcionamento, dando um exemplo que poderá testar. Para tal basta clicar sobre o botão de Help da janela do Object Browser.

(Parte 1 de 6)

Comentários