Visual Basic for Applications APROG -
Introdução é uma linguagem de programação que permite acrescentar capacidades adicionais a aplicações como o Excel ou o Word. Permite automatizar a realização de tarefas rotineiras. Trata-se duma adaptação da linguagem genérica de programação Visual Basic para poder ser utilizada no ambiente específico destas aplicações. Pressupõe-se alguns conhecimentos prévios quer de Visual Basic quer de Excel
Conceitos Básicos MACROS Um macro é um conjunto de instruções (escritas em ) que dizem a um programa como o Excel o que fazer para atingir um determinado objectivo. A cada acção ou comando da aplicação corresponderá uma instrução específica do macro. Esse conjunto de instruções pode ser activado mediante uma determinada combinação de teclas ou através dum menu.
Como construir um Macro Método 1 ( Pelo exemplo ) Mostrar aquilo que queremos que seja realizado Modo de gravação invocado em Excel usando o Menu Tools/Macros/Record Macro Método 2 Um Macro é um programa escrito em Ambiente de Desenvolvimento Integrado (IDE) Método misto Gravação do Macro base usando o método 1 Posterior adaptação e melhoria usando directamente o
Como construir um Macro Gravação de um Macro Menu Tools/Macros/Record Macro Combinação de teclas associada Sequência de Operações Menu Format/Cells Seleccionar Number Seleccionar Currency OK Menu Format/Cells Seleccionar Font Seleccionar Bold OK Menu Tools/Macros/Stop Recording
Como usar um Macro Um Macro pode ser invocado: 1. Usando a combinação de teclas 2. Acedendo à janela de gestão de macros mediante ALT-F8 Seleccionar o macro Fazer duplo click ou Run
Como construir um Macro A escrita de um Macro Ambiente de Desenvolvimento Integrado do
Como construir um Macro A escrita de um Macro Menu Insert/Procedure
Como construir um Macro A escrita de um Macro Macro capaz de monitorizar o valor presente na célula B2 e notificar o utilizador caso ultrapasse o valor 100. Objecto Cells(2,2) refere-se à célula B2 (2ªlinha/2ªcoluna)
Como construir um Macro Adaptação do macro anterior para estender a verificação a uma gama de células e para que desencadeie o alarme apenas quando mais que 2 células ultrapassem o limite. i vai conter o nº de linha contador
Tipos de Macros Funções utilizada em fórmulas devolve um resultado Sub-rotinas executam tarefas não podem ser utilizadas em fórmulas invocadas mediante combinação de teclas própria ou através de ALT-F8
Exemplo de Função Função que calcula a margem de lucro dum produto a partir do preço de venda e do custo Sua utilização numa fórmula:
Objectos Exemplos de Objectos Documento Folha de cálculo Gama de células Célula Formas de interacção com Objectos Mudar as suas propriedades Aplicar-lhe métodos Especificar sub-rotina que seja executada sempre que um evento ocorra nessa objecto
Propriedades, Métodos e Eventos Propriedades de um objecto são as suas características físicas (tipo de letra ou dimensões (por ex.) Exemplos: tipo de letra ou dimensões Métodos traduzem acções que podem ser realizadas sobre os objectos Exemplo: Método Save aplicado ao objecto ActiveDocument Eventos são acções que, exercidas sobre os objectos, implicam a possibilidade de ocorrer uma resposta automática do objecto (controlada por um event handler) Exemplo: Abertura duma folha dum livro de trabalho
- Estruturas de Controlo
Estrutura For...Each...Next Sintaxe Uma Colecção é um conjunto de objectos idênticos, pertencentes à mesma classe, referenciáveis por um índice. Exemplo de utilização
Como aceder às funções Excel? Para além das funções próprias do, é possível aceder às funções standard do Excel Usa-se a propriedade WorksheetFunction do objecto Application Exemplo: Para num macro calcular o valor médio de uma gama de células (identificada pelo nome "Dados") poderia ser usada a seguinte instrução:
Trabalhar com objectos Workbook Para especificar o livro de trabalho com que se quer trabalhar pode-se proceder de três formas diferentes: Usando o objecto Workbooks que representa o conjunto dos ficheiros Excel abertos naquele momento ( Workbooks(Nome) ); Usando o objecto ActiveWorkbook que representa o ficheiro com que se está de momento a trabalhar; Usando o objecto ThisWorkbook que representa o ficheiro em que o próprio programa em (e não o utilizador) está a operar no momento.
Trabalhar com objectos Workbook Para abrir um Livro de Trabalho aplica-se o método Open ao objecto Workbooks: Os métodos Save e Close são utilizados de forma similar para salvaguardar o conteúdo dum ficheiro e para o fechar, respectivamente.
Trabalhar com objectos Worksheet Para escolher a folha de cálculo com que se quer trabalhar usa-se o objecto Worksheets, especificando um índice ou o nome da folha. Exemplos: Propriedades da classe Worksheet: Worksheet.Name Worksheet.StandardWidth
Trabalhar com objectos Worksheet Métodos da classe Worksheet: Worksheet.Activate - activa a folha de cálculo especificada: Worksheet.Copy - copia a folha de cálculo especificada para outra posição dentro do livro de trabalho. Worksheet.Delete - permite eliminar a folha de cálculo especificada.
Trabalhar com objectos Range Um objecto do tipo Range pode ser uma simples célula, um conjunto de células, uma linha ou uma coluna. Para nos referirmos a uma célula ou gama de células usando o método Range usamos uma de duas sintaxes possíveis: Propriedade Value permite conhecer ou modificar o valor de Range
Trabalhar com objectos Range Para se identificar uma gama apenas com uma célula, pode-se usar o método Cells. Objecto pode ser um objecto Worksheet ou Range. Linha e Coluna são valores numéricos indicando qual a linha e qual a coluna na intersecção das quais a célula se encontra.
Trabalhar com objectos Range Quando se quer identificar uma linha ou coluna completa, podem ser usados os métodos Rows e Columns. Nº total de linhas de gama índice da última linha insere uma linha a seguir à última
Interface gráfica O acesso aos macros faz-se mediante a combinação de teclas ALT-F8. Pode ainda associar-se a um macro uma combinação de teclas especial que permite accioná-lo directamente. Por vezes, é mais conveniente interagir com o macro através de uma interface própria, concebida especialmente para ele. Usam-se para o efeito objectos gráficos como Dialog Boxes (Caixas de Diálogo) desenhadas à medida, que são versões mais desenvolvidas das já conhecidas Input Boxes e Message Boxes. Vamos nesta secção ver como construir as nossas próprias Dialog Boxes usando objectos da classe UserForm e como as integrar numa aplicação em.
Interface gráfica UserForm criada mediante o Menu Insert/User Form Form Toolbox
Interface gráfica Propriedades da Form Name - especifica o nome pelo qual a Form será identificada Caption - especifica o título que figura no topo da Form BackColor - permite seleccionar a cor do fundo Enabled - controla a utilização da Form pelo utilizador ShowModal - permite alterar o comportamento da Form de modo a impedir que enquanto esteja activa se possa aceder à aplicação Font - controla o tipo e tamanho da letra utilizada Height / Width - especifica a altura / largura da Form
Interface gráfica Controlos Command Buttons Labels Text Boxes Frames Option Buttons Check Boxes List Boxes Propriedades específicas ColumnCount ColumnHeads RowSource
Interface gráfica Propriedades dos Controlos Name - especifica o nome pelo qual o controlo será identificado no programa Caption - especifica o texto apresentado pelo controlo BackColor - permite seleccionar a cor do fundo Enabled - controla a utilização do objecto pelo utilizador Height / Width- especifica a altura/largura do controlo Visible - especifica se o controlo está ou não visível
Como associar a Form à Subrotina? 1. Visualização duma Form Para visualizar a UserForm usa-se o método Show: Se se quizer arrancar com a UserForm sem a visualizar, usa-se a instrução Load: Para depois de tornar visível a UserForm aplica-se o método Show. Quando se quer fechar a UserForm usa-se a instrução Unload.
Como associar a Form à Subrotina? 2. Tratamento dos Eventos Devem existir Event Handlers para os eventos a que se pretende que a Form reaja (click ou change, por exemplo) Exemplo de um Event Handler que termine uma Form: Faz o Unload da Form a que o Event Handler estiver associado
Como associar a Form à Subrotina? 3. Recolha dos resultados duma Form Uma UserForm é muitas vezes utilizada para pedir informação ao utilizador. Para tal, é preciso recolher os dados introduzidos ou as opções seleccionadas nos controlos apropriados acedendo às propriedades Value dos diversos controlos existentes na Form e copiando os seus valores actuais para células da folha de cálculo. Conteúdo da propriedade Value nas principais classes de controlos
Exemplo de Aplicação Integração de uma UserForm que permita a introdução conjunta dos dados de um aluno (Nome, Número e Curso) sem necessidade de recorrer a três Input Boxes separadas. Esta UserForm conterá duas Text Boxes para inserção do Nome e Número do aluno e uma Combo Box para selecção do seu Curso. Uma Combo Box é um controlo semelhante a uma List Box em que a lista está normalmente invisível, só aparecendo quando o campo superior é activado. Aplicam-se-lhe os mesmos métodos da classe ListBox.
Exemplo de Aplicação Macro de Teste Subrotina de inicialização
Exemplo de Aplicação Event Handler associado ao botão cmdfechar
O controlo TabStrip Event Handler do evento Initialize Um objecto TabStrip vem de origem com 2 tabs Acrescenta o 3º tab
O controlo TabStrip Event Handler do evento Change