Programação em VBA Texto Introdutório. António Silva
|
|
|
- Lucca Câmara Coelho
- 9 Há anos
- Visualizações:
Transcrição
1 Programação em VBA Texto Introdutório António Silva
2 .
3 Conteúdo 1 Introdução 6 2 Conceitos Básicos O que é um Macro? Técnicas de construção dum Macro Gravação de um Macro A escrita de um Macro O editor de VBA Criação de um Macro Variáveis e Tipos de Dados Conceito de variável Criação das variáveis Tipos de Dados A operação de Atribuição O uso de constantes Como trabalhar com Objectos Propriedades, Métodos e Eventos Propriedades Métodos Eventos Os objectos do Excel mais comuns Como trabalhar com as propriedades dos objectos Excel Como aplicar métodos aos objectos Objectos gráficos MsgBox A função InputBox Forms Instalação dos Controlos Botões de Comando Rótulos Caixas de Texto Quadros Botões de Opção Caixas de Verificação Caixas de Listagem Estruturas de controlo do programa Estruturas de controlo condicional If...Then...Else If...Then Estruturas condicionais embutidas Estruturas de controlo repetitivo Estruturas de Controlo Do...Loop
4 5.2.2 Ciclos controlados por contador Ciclos controlados por sentinela Estrutura de Controlo For...Next Estruturas de controlo repetitivo imbricadas Variáveis indexadas - vectores e matrizes Declaração de vectores Processamento de vectores Funções e Procedimentos 47 7 Programação do Excel usando VBA Como aceder às funções standard do Excel Trabalhar com objectos Workbook Trabalhar com objectos Worksheet Propriedades de Worksheet Métodos de Worksheet Trabalhar com objectos Range Notas finais 51 4
5 Lista de Figuras 1 Janela de invocação do ambiente de Gravação de Macros Janela de Gestão de Macros Barra de Ferramentas de VBA Editor integrado do VBA Criação de novo Módulo Diferentes tipos de dados e o seu armazenamento em memória Como forçar a declaração explícita automaticamente Uma Form e vários Controlos Janela de Propriedades Lista de eventos disponíveis Objectos e Eventos Exemplo de MsgBox Exemplo de InputBox Criação de uma Form no VBA Uma Frame agrupando três botões de comando Vários optionbutton agrupados numa frame Vários checkbox agrupadas numa frame Exemplo de listbox Estrutura de controlo condicional If...Then...Else Estrutura de controlo condicional If...Then Estrutura de controlo condicional If...Then Estrutura de controlo repetitivo Do...While Estrutura de controlo repetitivo Do...Until Ciclos controlados por contador Ciclos controlados por sentinela Exemplo de Ciclos Imbricados Um vector é uma variável múltipla Um exemplo de vector de strings Porquê usar ciclos para processar vectores? Exemplo de processamento de um vector Outro exemplo de processamento de um vector
6 1 Introdução Este texto tem como objectivo apoiar o ensino das técnicas de Programação de computadores, utilizando, como ambiente de aplicação, programas como o gestor de folhas de cálculo Excel. Destina-se assim aos alunos que já possuem alguns conhecimentos da utilização e funcionamento desta aplicação. Concretamente, presume-se que estão já familiarizados com os conceitos de folha de cálculo, de livro de trabalho, de fórmulas e funções standard. A linguagem de programação que vai ser utilizada será o VBA (Visual Basic for Applications). É uma linguagem que permite acrescentar capacidades adicionais a certo tipo de aplicações informáticas, concretamente as pertencentes ao Microsoft Office, entre as quais o Excel e o Word. Permite ainda automatizar a realização de certas tarefas rotineiras nessas aplicações. Como o próprio nome indica, trata-se duma adaptação da linguagem genérica de programação Visual Basic de modo a poder ser utilizada no ambiente específico das aplicações Office. 2 Conceitos Básicos O VBA constitui uma ferramenta poderosa nas mãos de programadores experimentados mas pode, ao mesmo tempo, ser muito útil a qualquer utilizador, mesmo inexperiente. De facto, no dia a dia da utilização destas aplicações, defrontamo-nos com a necessidade de repetir a mesma tarefa várias vezes ao dia ou, de em certas ocasiões, ter que repetir uma determinada tarefa uma série de vezes de seguida. Seja escrever ou formatar um certo texto, seja executar uma série de comandos ou escolher opções de menus, seja ainda realizar a formatação complexa de um documento, são inúmeras as ocasiões em que dava jeito poder automatizar essas tarefas repetitivas. É aqui que entra o VBA, permitindo a construção daquilo que se designa vulgarmente por macros. 2.1 O que é um Macro? Um macro contem uma lista das instruções a realizar para executar uma determinada tarefa. No fundo, é um programa escrito em VBA, que indica a uma aplicação como o Excel quais os passos a dar para atingir um objectivo específico. Pode-se dizer que um macro não é mais que uma descrição formalizada das tarefas que se pretende automatizar. Os macros incluem instruções que interagem com elementos da aplicação. Por exemplo, quando, numa aplicação Office se pretende fechar uma janela, pode-se seleccionar a opção de menu Close. Um macro escrito em VBA, usará a seguinte instrução para obter o mesmo efeito: ActiveWindow.Close Existem duas formas alternativas de criar um macro mas a forma como ele é criado não muda o seu conteúdo, continuando a ser um contentor de uma lista de instruções a realizar pela aplicação em que está instalado. 6
7 2.2 Técnicas de construção dum Macro Se bem que um macro seja um programa em VBA, nem sempre é necessário escrevê-lo de forma explícita, ou seja, escrevendo especificamente as instruções VBA que o compõem. Sobretudo quando os macros são simples, é muitas vezes mais prático criá-lo de forma automática, gravando a sequência de passos que ele deverá executar na aplicação. Esta forma de criar um macro corresponde a mostrar ao computador o que fazer para conseguir obter o resultado pretendido. O utilizador indica ao programa que se vai entrar num modo de gravação do macro e inicia a execução da sequência de acções que normalmente teria que executar. Quando chega ao fim dessa sequência, indica ao programa que a gravação terminou. Após ter atribuído a essa sequência uma combinação de teclas especial, esse macro estará pronto a ser executado, substituindo assim o conjunto de acções que anteriormente seriam necessárias. Se se investigar, no entanto, o conteúdo desse macro, verificar-se-á que ele é composto por instruções escritas precisamente em VBA, sendo que a cada acção ou comando da aplicação corresponderá uma instrução (ou conjunto de instruções) específica do macro. A forma alternativa de construir um macro será assim introduzir essas instruções num editor de texto apropriado. É essa, de facto, a forma de criar um macro quando o seu âmbito é algo não trivial. 2.3 Gravação de um Macro Quando uma dada operação envolvendo uma série de acções deva ser utilizada frequentemente faz sentido tentar automatizar a sua execução. Para gravar um macro que seja capaz de efectuar essas acções, haverá que invocar o modo de gravação de macros, mediante o Menu "Tools/Macros/Record a New Macro" (em Excel), o que fará aparecer a janela descrita da Figura 1. Nela se pode especificar o nome do macro, a localização em que será armazenado, uma descrição das suas funções e ainda a combinação de teclas (Shortcut key) que será utilizada para arrancar com o macro, uma vez este construído. Figura 1: Janela de invocação do ambiente de Gravação de Macros Após se premir a tecla OK, aparecerá uma pequena janela que permitirá controlar 7
8 Figura 2: Janela de Gestão de Macros o processo de gravação e dever-se-á dar início à execução das acções que o macro vai substituir. Quando se tiver executado a última acção a incluir no macro, basta dar a indicação de que a gravação terminou. Uma vez tal realizado, esse macro passará a estar disponível mediante a invocação da combinação de teclas especificada anteriormente (no caso da Figura 1 na página precedente, seria Ctrl+Shft+M) e executará, de forma automática, exactamente a mesma sequência de acções que tínhamos realizado manualmente. Em alternativa, mediante a combinação de teclas ALT-F8, pode ser accionada a janela de Gestão de Macros (Figura 2), onde, entre outras acções, pode ser escolhido o macro a ser executado. 2.4 A escrita de um Macro Ensinar pelo exemplo ao Excel como fazer as coisas é um método expedito de construir um macro, mas tem as suas limitações. Já que um macro não é mais que um programa escrito em VBA, porque não tratá-lo como tal e aceder a seu código, alterando-o de forma a melhorar a sua eficiência ou a corrigir problemas. E já agora, porque não criá-los de raiz, aproveitando todo o poder duma linguagem como o VBA? 2.5 O editor de VBA Para facilitar o acesso às facilidades de gravação e edição de macros, será conveniente tornar visível de forma permanente a barra de ferramentas de Visual Basic (Figura 3 na próxima página). No Excel, isto poderá fazer-se mediante a opção de Menu "View/Toolbars/Visual Basic". Para aceder ao editor especializado de Visual Basic (Figura 4 na página 10), que se encontra integrado no próprio Excel, basta utilizar o icone adequado na barra de ferramentas ou usar directamente a combinação de teclas ALT-F11. Tornando a premir esta combinação de teclas, voltaremos à nossa folha de cálculo. A este editor especializado é também dado o nome de Integrated Development Environment (IDE) ou Ambiente de 8
9 Figura 3: Barra de Ferramentas de VBA Desenvolvimento Integrado e é semelhante à aplicação autónoma usada para o desenvolvimento de programas em Visual Basic. Do lado esquerdo na Figura 4 na próxima página podem-se ver duas janelas, a primeira das quais é designada por Explorador de Projectos e que serve para mostrar o conteúdo do projecto VBA actual. Um projecto em VBA inclui um ficheiro duma aplicação Office (como, por exemplo, uma folha de cálculo do Excel) e todos os ficheiros VBA associados, incluindo os próprios macros e eventuais user forms (janelas de interface próprias utilizadas pelos macros 1 ). Para poder começar a escrever macros usando o VBA é necessário criar um módulo que o possa albergar, o que é conseguido usando a opção de menu "Insert/Module". Como consequência, para além do novo módulo aparecer referido na janela do Explorador de Projectos, será criada uma janela nova onde será possível escrever o código que constitui os novos macros. Se já existir algum módulo criado, bastará seleccionar o módulo pretendido no explorador de projectos, posicionar o cursor na janela correspondente a esse módulo numa área fora de qualquer macro e seleccionar a opção de menu "Insert/Procedure". Aparecerá uma janela própria (Figura 5 na página 11) onde será possível dar o nome ao novo procedimento (o conjunto de instruções que constituirá o macro), especificar o tipo de macro que vai ser construído (função ou sub-rotina 2 ) e qual o âmbito da sua utilização (pública ou privada, ou seja, limitada ao ficheiro actual). 2.6 Criação de um Macro Está na hora de construir o primeiro macro em VBA. Suponhamos que se pretende um macro que verifique se o valor presente numa determinada célula é superior a um dado limite e que, caso seja, disso notifique o utilizador. A sub-rotina em que esse macro deverá assentar poderá ter o seguinte conteúdo: 1 Public Sub v e r i f i c a V a l o r ( ) 2 I f C e l l s (2, 2) > 100 Then 3 MsgBox " Valor maximo excedido! " 4 End I f 5 End Sub 1 Sobre o assunto, ver Secção??. 2 A distinção entre funções e sub-rotinas, que estará já clara para quem possua os conhecimentos básicos de Visual Basic, será tratada mais à frente. 9
10 Figura 4: Editor integrado do VBA Não nos vamos de momento preocupar com os detalhes do código que constitui o macro. Basta verificar que, em 1 o lugar, é constituído por uma linha de cabeçalho que especifica o tipo de macro (neste caso, um procedimento) e o seu nome (verificavalor). O corpo do macro é composto pela estrutura de controle condicional (If...Then) que vai verificar se o conteúdo da célula B2 é ou não maior que o valor 200. Caso essa condição seja verdadeira afixará, o macro apresentará uma mensagem no ecran dizendo que o valor máximo foi excedido. Finalmente, o macro é terminado com uma linha contendo "End Sub". O que este simples macro faz, portanto, é verificar o conteúdo de uma célula específica da folha de cálculo e avisar o utilizador caso o valor nela contido ultrapassar um valor pré-determinado. Sempre que for necessário fazer esta verificação, bastará invocar a combinação de teclas que tenha sido associada a este macro. Esta verificação poderia, no entanto, ter sido realizada colocando numa célula uma fórmula contendo a função standard do Excel IF. Mas suponhamos agora que se pretende algo mais complicado, por exemplo, fazer essa verificação num conjunto de células e apenas desencadear o alarme caso mais do que duas dessas células ultrapassem o limite estabelecido. A sub-rotina modificada poderia ser algo como: 1 Public Sub verificagama ( ) 2 Dim i As Integer, c As Integer 10
11 Figura 5: Criação de novo Módulo 3 c = 0 4 For i = 1 To 5 5 I f C e l l s ( i, 3) > 100 Then 6 c = c End I f 8 Next 9 I f c > 2 Then 10 MsgBox c & " v a l o r e s s u p e r i o r e s ao l i m i t e! " 11 End I f 12 End Sub A verificação é agora repetida em todas as células de C1 a C5 graças aos serviços da estrutura de controlo repetitivo For...To...Next que executará 5 vezes as instruções contidas nas linhas 5 a 7. Para além de verificar o conteúdo da célula em análise, é ainda actualizado um contador, baseado na variável c (ver linha 6), sempre que o valor contido nessa célula ultrapasse o limite. Só no caso de o valor desse contador for maior que 2 será gerada a mensagem de alarme. Estaremos já em posição de perceber a utilidade de construir os macros usando directamente o VBA. Não seria trivial resolver este problema usando apenas fórmulas e certamente impossível executando comandos e seleccionando menus do Excel. A um macro criado usando directamente o VBA pode também ser associada uma combinação de teclas que facilite o seu acesso. Isso pode ser feito através do botão Opções na Janela de Gestão de Macros, invocada mediante ALT-F8. 3 Variáveis e Tipos de Dados A informação processada por um macro pode ser de diferente natureza e existir em diferentes formatos. Genericamente um programa pode utilizar informação numérica e 11
12 informação chamada alfa-numérica, ou seja texto. A linguagem VBA consegue lidar com informação de diversos tipos, que detalharemos adiante. 3.1 Conceito de variável Uma variável é uma localização de memória em que a informação pode ser guardada de modo a ser usada por um macro. Cada variável é caracterizada pelo seu nome e pelo seu tipo, ou seja, o tipo de dados que pode armazenar. O conteúdo de uma variável pode mudar durante a execução do macro. Existem algumas regras governando a escolha do nome duma variável: 1. Deve obrigatoriamente começar por uma letra; 2. Não pode conter espaços nem caracteres como vírgulas ou pontos; 3. Não pode exceder 255 caracteres; 4. Não pode ser igual a uma palavra reservada para o VBA. O tipo da variável especifica qual o tipo de dados que pode conter. Uma variável de um determinado tipo não está preparada para armazenar dados de um tipo diferente. A razão para este facto é que o espaço necessário para armazenar diferentes tipos de dados não é o mesmo. Enquanto um inteiro simples pode ser guardado em 2 bytes de memória 3, para guardar um número real podem ser necessários 8 bytes (ou mesmo mais, dependendo da precisão requerida). A Figura 6 na próxima página ilustra graficamente esta realidade. 3.2 Criação das variáveis Ao acto de criação de variáveis chama-se declaração. Criar uma variável envolve dar-lhe um nome e reservar em memória o espaço necessário para que ela possa guardar o tipo de dados para o qual está a ser criada. O acto de declarar a variável informa o VBA àcerca do nome pelo qual ela será conhecida assim como qual o tipo de dados que ela deverá estar preparada para receber. Como é óbvio, nenhuma variável pode ser utilizada antes de ser criada. A declaração deve, pois, preceder a sua utilização. Desde que se siga esta regra, é possível inserir declarações em qualquer ponto do macro. No entanto, é boa prática agrupar todas as declarações necessárias num bloco a colocar no início, para mais fácil manutenção do programa. Em VBA, existem duas formas de declaração de variáveis: explícita e implícita. A declaração explícita exige a utilização da instrução específica "Dim... As" (Dimensionar...Como). Por exemplo, a instrução 3 Para armazenar números que podem variar entre e 32767, ou seja valores diferentes, há necessidade de dispor de 16 unidades básicas de informação (bits), ou seja dois bytes (1 byte = 8 bits). De facto, se cada bit apenas pode representar um valor binário (0 ou 1), 16 bits poderão representar até 2 16 = valores diferentes. 12
13 Figura 6: Diferentes tipos de dados e o seu armazenamento em memória Dim Preço As Integer cria (declara) uma variável com o nome Preço e do tipo Integer, ou seja, preparada para receber dados do tipo integer (inteiro simples 4 ). A declaração implícita resume-se a utilizar pela primeira vez uma variável sem qualquer declaração explícita prévia, dando-lhe um nome e atribuindo-lhe um valor. O VBA cria automaticamente a variável do tipo pretendido. Esta segunda forma de declarar variáveis tem, a despeito da sua simplicidade, um problema grave: é possível, por distracção, criar uma variável nova indesejada, quando o que se pretendia era apenas escrever o nome de uma variável já existente. Atente-se no exemplo: Suponha que havia criado uma variável "Distancia"mediante a instrução 5 : Distancia=1260 Como é a primeira vez que o VBA encontra esta palavra ("Distancia"), partirá do princípio que se trata de uma variável ainda por declarar e tratará de a criar, substituindose ao programador. Dar-lhe-á o nome "Distancia"e dimensioná-la-á de forma a poder guardar inteiros simples, já que é essa a utilização sugerida na instrução. Agora suponha que adiante no programa, por engano, escrevia "Distncia"ao referir-se 4 A discussão dos vários tipos de dados suportados pelo VBA será feita na Secção 3.3 na página seguinte 5 Como se verá na secção 3.4 na página 15, esta instrução guarda na variável "Distancia"o valor
14 à variável em causa. O VBA não emitirá nenhum alerta, já que aceitou tranquilamente "Distncia"como uma nova variável. A forma mais prudente de lidar com declarações de variáveis é, pois, utilizar apenas declarações explícitas, e instruir o VBA para não aceitar declarações implícitas, gerando uma mensagem de erro apropriada. Para tal, deverá ser acrescentada a seguinte instrução no início do módulo contendo o macro: Option Explicit Se se pretender que seja esse o comportamento automático do VBA em todos os módulos, então, no Editor do VBA, deverá seleccionar-se a opção "Require Variable Declaration"no sub-menu Options do menu Tools. Figura 7: Como forçar a declaração explícita automaticamente 3.3 Tipos de Dados Como já vimos, um macro deverá poder lidar com diferentes tipos de dados. A linguagem VBA suporta, entre outros, o tratamento dos seguintes tipos de dados: Tipo Descrição Integer Inteiro simples, usado para representar inteiros entre e Long Inteiro longo, ou seja, compreendido entre e Single Real representado com precisão simples, com valores negativos compreendidos entre cerca de -3,4E38 e -1,4E-45 e valores positivos entre cerca de 1,4E-45 e 3,4E38 Double Real representado com precisão dupla, usado para representar números reais muito maiores ou muito mais pequenos que com o tipo single String Usado para representar texto (informação alfanumérica como letras, algarismos e símbolos especiais); strings são representadas entre aspas Boolean Usado para representar valores lógicos (True ou False) Date Usado para representar datas ou valores de tempo; são representados entre caracteres # Object Serve para guardar referências a objectos Quando declaramos variáveis dever-se-á, em princípio, especificar qual o tipo de dados que ela irá suportar, usando um dos tipos acima. No entanto, em VBA é possível omitir a especificação do tipo de dados na declaração de variáveis. O VBA criará uma variável do tipo Variant capaz de armazenar qualquer tipo de dados. O que, à partida, parece uma 14
15 boa ideia acaba por não o ser porque, entre outros motivos, implica um gasto excessivo de memória e torna a execução dos macros mais lenta. 3.4 A operação de Atribuição A operação de Atribuição permite guardar um dado numa variável, ou seja, atribuir-lhe um valor. A sintaxe utilizada por esta operação é a seguinte: Variável = Valor O resultado da operação será, portanto, o de guardar Valor em Variável. Valor pode ser um valor constante ou o conteúdo de outra variável. Neste caso, a atribuição consistirá na cópia do conteúdo de uma variável para outra do mesmo tipo. A instrução seguinte copia o valor contido na variável idade para a variável temp (partimos do princípio que ambas são do tipo integer): temp = idade Pode ainda ser atribuído a um variável o resultado de uma expressão ou o valor devolvido por uma função. Atente-se nos seguintes exemplos: total = peso1 + peso2 resultado = sqrt(2+peso) No 1 o exemplo, o VBA resolverá em primeiro lugar a expressão à esquerda do operador de atribuição (=), somando os conteúdos das variáveis peso1 e peso2, após o que copiará esse resultado para a variável total. No 2 o exemplo, a expressão à direita é composta por uma função standard do VBA (sqrt()). Esta função calcula a raiz quadrada do valor ou expressão que se encontrar dentro dos seus parêntesis. Assim sendo, o VBA calculará em 1 o lugar o resultado da expressão 2 + peso, fornecerá esse valor à função sqrt(), após o que copiará o valor fornecido por essa função para a variável resultado. A operação de atribuição é uma operação destrutiva. Se a variável contiver já um valor, uma operação subsequente de atribuição sobre essa variável, substituirá o valor nela contido pelo novo valor. Convem, assim, lembrar que nesta operação o fluxo da informação se faz sempre da direita para a esquerda e não o contrário. Há ainda que ter em atenção o facto de que não é normalmente aconselhável atribuir um valor de um dado tipo a uma variável de tipo diferente. Os resultados podem ser a perda de informação ou o mau funcionamento do programa. O VBA poderá gerar uma mensagem de erro mas tal nem sempre acontece, podendo produzir-se comportamentos anómalos difíceis de detectar e corrigir. 3.5 O uso de constantes Uma constante consiste num nome que é dado a um valor numérico ou a uma cadeia de caracteres, e que pode ser usado dentro do programa na vez desses valores. Funciona como uma espécie de sinónimo. A utilização de constantes em substituição dos valores que representa justifica-se pelo seguinte facto: se um dado valor constante fôr utilizado 15
16 muitas vezes ao longo dum programa, caso ocorra a necessidade de o modificar, haverá necessidade de corrigir manualmente todas as ocorrências desse valor, correndo, além disso, o risco de se enganar. Se, ao invés, for definida uma constante com esse valor, bastará modificar essa definição inicial para que tal mudança automaticamente se repercuta em todas as ocorrências dessa constante no decurso do programa. A sintaxe da definição de constantes é a seguinte: Const Nome As tipo = expressão Por expressão entende-se um valor numérico, uma cadeia de caracteres, ou uma expressão cujo resultado seja um destes tipos de valores. Caso, por exemplo, seja necessário usar ao longo de um macro um mesmo factor em vários cálculos, faz sentido definir esse factor como constante e usar o seu nome em vez dele: Const Factor as Single = Como trabalhar com Objectos Para que uma macro possa manipular o ambiente da aplicação, seja modificando a formatação de um documento, modificando opções da aplicação ou introduzindo dados numa gama de células, vai ser preciso interagir com Objectos. Genericamente, pode dizer-se que um objecto é algo que pode ser visto, tocado, sentido. Em VBA, considera-se um objecto tudo aquilo que pode ser visto e que pode ser manipulado de alguma forma. Quer o documento, quer uma célula ou gama de células, quer a própria aplicação são considerados, para os efeitos de programação em VBA, como sendo objectos. Mas podem ainda existir outros objectos, nomeadamente aqueles que permitem construir uma interface gráfica específica do macro. A esses objectos gráficos chamamos controlos e são colocados em janelas especiais chamadas forms. Na Figura 8 na página seguinte podem ser observados vários objectos instalados numa form: uma caixa de texto, dois botões de comando, vários rótulos ou etiquetas e uma caixa de verificação. Através deles é possível o macro interagir com o utilizador. Veremos em detalhe mais à frente para que servem e como utilizar estes diferentes objectos. Os objectos podem ser manipulados de várias formas: podemos mudar as suas propriedades, que traduzem características próprias dos objectos; podemos aplicar um método a esse objecto, ou seja, executar uma acção sobre ele; podemos especificar uma sub-rotina que será executada sempre que um determinado evento ocorra nesse objecto. Vamos agora utilizar a analogia para introduzir estes conceitos de propriedades, métodos e eventos. Consideremos um automóvel: As suas "propriedades"são características físicas como o modelo, o peso ou a cilindrada; 16
17 Figura 8: Uma Form e vários Controlos Os seus "métodos"especificam o que pode ser feito com ele: acelerar, travar, mudar de direcção, etc; Os seus "eventos"são ocorrências que provocarão respostas automáticas por parte do automóvel, como seja, uma campainha que toca (resposta) caso saiamos do carro deixando a chave na ignição (evento). 4.1 Propriedades, Métodos e Eventos Vamos, de seguida, aprofundar estes conceitos de propriedades, métodos e eventos Propriedades As propriedades de um objecto são as suas características físicas. Como na vida real, cada objecto possui características próprias ou propriedades, que podem ser quantificadas ou especificadas, como sejam as suas dimensões ou o tipo de letra que usa. Cada objecto tem associado uma lista de propriedades a que é possível atribuir valores determinando a sua aparência, localização e outros detalhes. Pode-se então dizer que as propriedades de um objecto definem a forma como ele se apresenta ou se comporta. Diversos objectos podem partilhar a mesma propriedade. Essa propriedade, no entanto, pode afectar esses objectos de forma diferente. Já vimos que quer os elementos do Excel como folhas de cálculo ou próprio documento, quer elementos constituintes de interfaces gráficas que os macros possam utilizar, são considerados objectos. Algumas das propriedades mais importantes e que são comuns à maior parte dos objectos gráficos são as seguintes: 17
18 Caption Name Left Top Height Width Font Visible Define o texto a afixar na barra de título das forms, da legenda ( caption ) dos botões de comando, ou nos rótulos ( label ) Define o nome pelo qual o objecto é identificado Define o afastamento entre uma form e o limite esquerdo do ecrã ou entre um controlo e o limite esquerdo da form Define o afastamento entre uma form e o topo do ecrã ou entre um controlo e o topo da form Define a altura do objecto Define a largura do objecto Especifica qual o tipo de letra a usar nos controlos Permite controlar o aparecimento de um dado objecto Figura 9: Janela de Propriedades Os valores que tomam as propriedades de um dado objecto podem ser consultados ou modificados mediante a janela de propriedades. Nessa janela aparece a lista de propriedades do objecto que estiver nesse momento seleccionado (Figura 9). Nela pode observar, entre outras, algumas das propriedades referidas na lista acima (Caption, Height e Font) e os respectivos valores no momento Métodos Os métodos traduzem acções que podem ser realizadas sobre os objectos. Por exemplo, aplicar o método Save ao objecto ActiveDocument implica desencadear o processo de salvaguardar o conteúdo do documento activo num determinado ficheiro. Aplicar o método Clear a um objecto da classe ListBox terá como consequência a eliminação de todas as linhas nele contidas. Para vermos como um método é aplicado a um objecto, vamos considerar o objecto Worksheet, que representa uma folha de cálculo do Excel. Se pretendermos que o nosso macro mova essa folha para uma nova posição dentro do Livro de Trabalho (Workbook), ele deverá aplicar o método Move a esse objecto, usando a seguinte sintaxe: 18
19 Worksheet.Move([Before][, After]) Exemplificando, se quisermos que o macro desloque a folha de cálculo "Dados 2009"para a posição imediatamente a seguir à folha "Dados 2008", o comando a inserir no macro será: Worksheets("Dados 2009").Move Before:=Worksheets("Dados 2008") Como veremos mais à frente, o objecto Worksheet é definido como um elemento do conjunto de folhas de cálculo contidas no Livro de Trabalho. Este conjunto de folhas é representado por Worksheets(). Assim sendo, Worksheets("Dados 2009") refere-se à folha de cálculo com o nome "Dados 2009" Eventos Os eventos são acções que, uma vez exercidas sobre um objecto, implicam a possibilidade de ocorrer uma resposta automática desse objecto. Basicamente, um evento é algo que acontece a um objecto. Por exemplo, a abertura de uma folha de um livro de trabalho (workbook) em Excel é um evento. A inserção de uma nova folha no livro é outro exemplo de evento. Para que um objecto possa reagir a um dado evento deverá existir, previamente programado, um procedimento especial, chamado event handler, que vai especificar o que fazer caso esse evento ocorra. Sem isso, o objecto detectará esse acontecimento mas não saberá o que deve fazer. Nenhuma resposta será produzida. Figura 10: Lista de eventos disponíveis Na Figura 10 pode ver-se a janela de escrita de código de macros. Na parte de cima, à direita, pode ser acedida a lista de eventos disponíveis para o objecto Worksheet. Seleccionando um dos eventos, será possível construir o procedimento event handler que permita ao objecto Worksheet reagir a esse evento. O cabeçalho e o delimitador final são criados automaticamente pelo editor do VBA, sendo da responsabilidade do programador a inclusão das instruções necessárias. Na figura são referidos vários eventos que podem ocorrer no objecto Worksheet, tais como o Activate que ocorre sempre que uma folha de cálculo se torna activa, ou o Change que é desencadeado por qualquer alteração ao seu conteúdo. Assim sendo, um mesmo objecto, por exemplo, a Worksheet pode estar preparada para reagir a diferentes eventos, desde que possua event handlers específicos para esses eventos. 19
20 Figura 11: Objectos e Eventos Para tentar esclarecer melhor o conceito de evento e a questão de como organizar a resposta do objecto a um evento, vamos apresentar um exemplo utilizando apenas objectos gráficos dispostos numa form. Repare-se na Figura 11: o que se pretende aqui é um macro capaz de verificar se um dado número inteiro, introduzido pelo utilizador usando a interface descrita na figura, é ou não um número primo. Parte-se do princípio que todos sabem o que é um número primo e não nos vamos agora debruçar sobre os detalhes do código que o event handler deverá conter para produzir o efeito desejado. Preocupamo-nos, de momento, apenas com as interacções entre as várias entidades que intervêm no processo. Como é visível na Figura 11, existem vários objectos (chamados controlos) na interface. Entre eles, têm particular interesse para esta discussão a caixa de texto txt1, o rótulo lbl2 e o botão de comando command1. Quando o utilizador pretende utilizar o macro, uma vez este invocado, deverá introduzir o número a testar em txt1 e pressionar ("clicar") o botão command1. Quando isso acontece, diz-se que ocorreu um evento click no botão command1. Se esse botão não dispuser de nenhum event handler para lidar com esse tipo de evento, nada se passará. No entanto, se se tiver associado a esse objecto (command1 ) um event handler adequado, o objecto será já capaz de responder ao evento e produzir o resultado desejado. Neste caso, esse resultado deverá ser efectuar os 20
21 cálculos necessários para concluir se o número introduzido é ou não primo e apresentar essa conclusão no rótulo lbl Os objectos do Excel mais comuns Já vimos que um documento Word ou Excel é, em si mesmo, um objecto. Se bem que não possamos tocar, podemos claramente vê-lo e interagir com ele, alterando, no caso do Excel, o conteúdo de células, alterando formatos ou inserindo linhas e colunas. Por sua vez, todos estes elementos são, eles também, objectos. Nas aplicações Office, os objectos estão organizados de forma hierárquica. O objecto mais geral é o Application, e dentro dele existem múltiplos objectos de nível progressivamente inferior Como trabalhar com as propriedades dos objectos Excel Como já vimos, os objectos possuem características próprias, chamadas propriedades. A sintaxe genérica para nos referirmos a uma propriedade de um objecto é a seguinte: Objecto.Propriedade Se nos quisermos referir, por exemplo, à propriedade ActiveWindow do objecto Application, procederemos do seguinte modo: Application.ActiveWindow A propriedade ActiveWindow refere-se à janela da aplicação com que estamos, de momento, a trabalhar. No caso do Excel, podemos ainda referirmo-nos, por exemplo, à propriedade ActiveSheet para designar a folha de cálculo em que se está a trabalhar ou a ActiveCell para nos referirmos à célula actualmente seleccionada. Se pretendermos, por exemplo, especificar o tipo de letra da célula activa, usaremos a seguinte descrição de objecto: Application.ActiveWindow.Active.Cell.Font.Name Na prática, quando nos estamos a referir a uma propriedade da janela activa da aplicação como seja a ActiveCell, não precisamos de referir que pertence à ActiveWindow e à Application. Podemos omitir esses detalhes e apenas escrever: ActiveCell.Font.Name Se quisermos utilizar esta propriedade para mudar o tipo de letra da célula activa, faremos então 6 : ActiveCell.Font.Name = "Helvetica" Se, ao contrário, quisermos obter o valor de uma dada propriedade, a instrução a usar será do tipo: variavel = Objecto.Propriedade 6 Trata-se de uma operação de atribuição, descrita na Secção 3.4 na página 15 21
22 Para obtermos o conteúdo da célula activa da folha de cálculo, a instrução correcta seria: conteudo = ActiveCell.Value Estaremos, assim, a usar a propriedade Value do objecto ActiveCell. Nessa propriedade encontra-se o conteúdo da célula Como aplicar métodos aos objectos Vimos na Secção na página 18, que os métodos de uma classe de objectos descrevem as acções que podemos executar sobre eles ou, por outras palavras, aquilo que podemos fazer com eles. A sintaxe usada para aplicar um método a um objecto é similar à usada para trabalhar com as suas prorpiedades: Objecto.Método Um exemplo da aplicação de um método a um objecto, usando esta sintaxe, é o seguinte: Worksheets("Leituras").Activate Estamos aqui a aplicar o método Activate ao objecto Worksheets("Leituras"), o que tem como consequência que essa folha de cálculo se tornará activa. No entanto, muitas vezes, os métodos exigem informação adicional para poderem executar o seu trabalho. Essa informação adicional será fornecida através de argumentos, inseridos a seguir ao nome do método aplicado: Objecto.Método (argumento1, argumento2....) Workbooks.Open("Dados.xls") Muitas vezes, os argumentos que se podem fornecer a um método são opcionais. Por exemplo, a instrução abaixo adiciona (insere) uma nova folha de cálculo imediatamente antes da folha com o nome "Dados_Jan": O seguinte exemplo abre um Livro de Trabalho pré-existente com o nome "Dados.xls": Worksheets.Add Before:=Worksheets("Dados_Jan") No entanto, caso seja omitido o argumento Before, a nova folha será inserida antes da folha de cálculo activa. É esse o comportamento por defeito do método Add. 4.3 Objectos gráficos Vão agora ser apresentados de forma mais sistemática alguns dos objectos e facilidades necessários para realizar interfaces gráficas simples. Essas interfaces vão permitir que os macros tenham uma interacção directa com o utilizador, requerendo e fornecendo informação. A forma mais simples de o macro interagir com o utilizador é através de duas funções: MsgBox e InputBox. 22
23 4.3.1 MsgBox Figura 12: Exemplo de MsgBox A função MsgBox permite apresentar uma pequena janela contendo um mensagem, pelo menos um botão de comando e eventualmente um pequeno desenho (ícone) ilustrativo do tipo de mensagem, ou seja, o que se desigan por Caixa de Mensagem. Destina-se assim a apresentar ao utilizador uma mensagem com informação relevante, sejam avisos, resultados, perguntas ou sugestões. Esta janela tem um comportamento peculiar: enquanto não for premido um botão, não será possível fazer mais nada, já que essa janela tomou o controlo do computador. O utilizador é assim obrigado a atender à mensagem apresentada. Na Figura 12 encontra-se um exemplo de uma destas janelas. A sintaxe da função MsgBox é a seguinte: MsgBox(Mensagem, Características, Título) Em que os argumentos são: Mensagem Características Título Texto a apresentar (máximo de 1024 caracteres) Valor numérico que especifica o número de botões, o tipo do ícone e o botão de defeito (com o focus ), obtido pela soma de três valores parciais. Conteúdo da barra de título da janela (opcional) O 2 o argumento será calculado usando os valores da tabela abaixo: Botões de Comando Ícone Botão com o focus 0 - OK 0 - Nenhum 0-1 o Botão 1 - OK, Cancel 16 - Mensagem Crítica o Botão 2 - Abort, Retry, Ignore 32 - Mensagem de Aviso a Botão 3 - Yes, No, Cancel 48 - Mensagem de Aviso Yes, No 64 - Mensagem de Informação 5 - Retry, Cancel Assim, para obter a MsBox da Figura 12 o valor a utilizar para o parâmetro características seria obtido somando 3 valores, um de cada coluna da tabela, cada um deles especificando uma das características (Botões de Comando, Ícone e qual o botão com o 23
24 "Focus" 7 ): = 17 A MsgBox serve então para apresentar uma mensagem ao utilizador. No entanto, permite também recolher informação. Quando a caixa de mensagem apresenta mais do que um botão, está-se a pedir ao utilizador que escolha uma de entre duas ou três alternativas. Dependendo de qual o botão premido pelo utilizador, assim o valor numérico devolvido pela função MsgBox será um de entre 7 valores possíveis, descritos na tabela seguinte. Constante Valor Botão seleccionado vbok 1 OK vbcancel 2 Cancel vbabort 3 Abort vbretry 4 Retry vbignore 5 Ignore vbyes 6 Yes vbno 7 No De notar que caso a tecla ESC (Escape) seja premida o valor devolvido será 2, a que corresponde o botão Cancel (o que indica que as duas acções são equivalentes). Claro que quando se pretende aproveitar o valor devolvido pela função MsgBox será necessário usá-la com a seguinte sintaxe: Variável = MsgBox(Mensagem, Características, Título) Desta maneira, o valor devolvido pela função será guardado (atribuído) em Variável, podendo depois ser avaliado por instruções seguintes A função InputBox Esta função permite apresentar uma mensagem ao utilizador, recolhendo ao mesmo tempo uma string contendo a sua resposta. Assim, ao contrário da função MsgBox (ver Secção na página precedente), esta função produz um resultado do tipo string e não do tipo integer. Figura 13: Exemplo de InputBox 7 Por botão com o "Focus"entende-se o botão que está previamente assinalado e que será actuado se se premir a tecla Enter. Também se pode chamar botão por defeito. 24
25 Como poder ser visto na Figura 13 na página anterior, esta função cria um objecto composto (uma Caixa de Entrada) incluindo um caixa de texto, dois botões 8 e um rótulo dentro de uma pequena janela. A sua sintaxe é Variável = InputBox (mensagem, título, valor_de_defeito, xpos, ypos) Em que os argumentos são: Mensagem Título valor_de_defeito xpos e ypos Texto da mensagem a afixar na Caixa de Entrada (máximo de 1024 caracteres) Conteúdo da barra de título da janela (opcional) Texto a colocar à partida na caixa de texto da Caixa de Entrada (opcional) coordenadas da Input Box relativamente aos bordos esquerdo e superior do ecrã (opcionais) Forms Como vimos no início da Secção 4 na página 16, uma interface gráfica (em terminologia VBA, uma DialogBox) é construída dispondo os objectos adequados (genericamente designados por controlos) sobre uma janela especial, a form. Efectivamente uma form é utilizada como um contentor para outros objectos gráficos. Um objecto da classe User- Form pode ser criado no Editor do VBA através do Menu "Inser/User Form". Na Figura 14 na página seguinte pode ser visto o ambiente de desenvolvimento integradodo VBA, mostrando uma janela com uma form vazia recém-criada e um conjunto de janelas que permitem aceder às facilidades oferecidas pelo VBA para construção de interfaces gráficas. Uma dessas janelas é a Janela de Propriedades, onde podem ser consultadas ou alteradas as propriedades do objecto gráfico que nesse momento estiver seleccionado (neste caso, a form). Outra janela é a chamada Caixa de Ferramentas (ToolBox) e contem os objectos gráficos (os controlos) disponíveis. Usando a Janela de Propriedades, é possível especificar uma série de características que determinam a sua aparência e o seu comportamento. A seguir são apresentadas algumas das principais propriedades que podem ser configuradas numa 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 controlar o acesso à aplicação enquanto a Form estiver activa 8 Ao contrário da MsgBox, neste caso os dois botões são fixos. Por outro lado, a tecla ESC tem o mesmo comportamento 25
26 Figura 14: Criação de uma Form no VBA Font - controla o tipo e tamanho da letra utilizada Height - especifica a altura da Form Width - especifica a largura da Form Instalação dos Controlos Usando a Caixa de Ferramentas Toolbox, é possível escolher e instalar os controlos na Form. Para tal, basta accionar o símbolo do controlo pretendido e desenhá-lo com o rato na Form. A seguir, quer agindo directamente sobre o controlo, quer utilizando a Janela de Propriedades, podem-se fazer os ajustes necessários das suas características. Se bem que cada classe de controlos possua a sua lista própria de propriedades, existem algumas propriedades importantes que são comuns à maioria delas: 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 - especifica a altura do controlo 26
27 Width - especifica a sua largura Visible - especifica se o controlo está ou não visível Muitas destas proriedades, para além de serem alteráveis na Janela de Propriedades, durante a fase de concepção da interface, podem ainda ser modificadas durante o funcionamento do macro, usando instruções específicas para as manipular. Nas próximas secções, referiremos com algum detalhe os controlos de uso mais comum na construção de dialogboxes em VBA Botões de Comando Um botão de comando (objecto commandbutton), como o próprio nome sugere, é utilizado para permitir ao utilizador dar ordens (comandos) ao programa. Como se pode verificar na Figura 11 na página 20, é a este tipo de controlos que normalmente se associam as sub-rotinas que permitem responder a eventos como o clicar de um rato. As propriedades normalmente referidas em relação a esta classe de objectos são as que controlam as dimensões (Height e Width) e a propriedade Caption que permite especificar o texto afixado. A instrução seguinte serve de exemplo de como alterar programaticamente o estado de um botão de comando: cmdarranque.enabled = True O que fizemos com a instrução acima foi atribuir o valor booleano (lógico) True à propriedade Enabled do botão de comando cmdarranque. Estamos, assim, a tratar uma propriedade como sendo uma variável. De facto, uma propriedade pode ser considerada como uma variável especial Rótulos Os rótulos, também designados por etiquetas (label) são usados para apresentar texto na interface. Mais uma vez, a propriedade mais utilizada é a propriedade Caption, que permite especificar o texto a apresentar. Este controlo é usado não só para apresentar informação estática, que é escolhida na fase de concepção da interface, como também informação dinâmica, como seja a apresentação de resultados: lblresultado.caption = "O valor total é 235 metros" Caixas de Texto As caixas de texto (objecto TextBox) são uma classe de controlos muito versáteis que permitem a introdução pelo utilizador de diversos tipos de informação: texto, valores numéricos e, no caso do Excel, referências a células e mesmo fórmulas. Algumas das suas propriedades mais importantes são: Text - Permite obter ou alterar o texto contido no objecto. 27
28 MaxLenght - Especifica o tamanho máximo do texto (em caracteres) que o utilizador pode introduzir. MultiLine - Permite escolher entre autorizar ou não a inserção de várias linhas. Funções Val e Str A linguagem Visual Basic dispõe de um grande número de funções pré-definidas. Duas delas, relacionadas com "strings", são particularmente úteis para lidar com objectos da classetextbox: Função Val() Str() Descrição Retorna como valor numérico um número contido dentro duma string Retorna uma string representando um número Vamos supor que um macro precisa de calcular o peso total à custa de dois valores introduzidos pelo utilizador através de duas TextBox. A tentação seria usar a instrução: pesototal = txt1.text + txt2.text No entanto, o que a propriedade Text das TextBox contem é apenas texto, ainda que contendo algarismos. Para extrair a informação numérica de dentro do texto, haverá que utilizar a função Val(): pesototal = Val(txt1.Text) + Val(txt2.Text) Quadros Tais objectos destinam-se a agrupar outros objectos (controlos). São usados muitas vezes para organizar um dado conjunto de botões de opção (Secção na página seguinte), tornando-os independentes de outros botões de opção eventualmente existentes na mesma form. Figura 15: Uma Frame agrupando três botões de comando É importante criar o quadro antes de aí inserir os controlos. Se o controlo fôr criado antes do quadro, não será possível deslocá-lo para dentro do quadro uma vez este criado. Uma vez inserido um objecto dentro do quadro, esse quadro passa a constituir o contentor desse objecto. Quer isto dizer que a sua localização passa a ser definida não em relação à form mas em relação ao quadro que o contem. 28
29 Outra utilidade dos quadros é servir de moldura a um dado conjunto de controlos, de modo a melhorar a aparência e a organização da form em que estão inseridos, agrupando os diversos controlos de acordo com as suas funcionalidades Botões de Opção Estes objectos permitem ao utilizador efectuar escolhas entre diversas alternativas. São compostos pelo botão propriamente dito (de forma circular) e um pequeno texto que o acompanha, controlado pela propriedade Caption do objecto. Figura 16: Vários optionbutton agrupados numa frame Os botões de opção são geralmente agrupados em conjuntos de dois ou mais, estando interligados entre si, já que, ao mesmo tempo, só é possível existir um botão seleccionado dentro do mesmo grupo de botões de opção. São normalmente inseridos em frames (quadros - Secção na página precedente). Para além da propriedade Caption, outra propriedade importante dos botões de opção é a propriedade Value, que pode assumir o valor True ou False conforme o botão se encontrar ou não seleccionado Caixas de Verificação Estes objectos comportam-se de forma semelhante à dos botões de opção mas, neste caso, é possível encontrar vários controlos deste tipo activados simultaneamente, visto que tais objectos funcionam de forma independente (isto é, não se encontram relacionados entre si). Figura 17: Vários checkbox agrupadas numa frame 29
30 Possuem também uma propriedade Value que, neste caso, pode apresentar os seguintes valores: 0 não activada 1 activada 2 não disponível O texto a inserir junto de cada caixa de verificação deve ser especificado mediante a propriedade Caption Caixas de Listagem Este objecto serve para apresentar listas e permite que o utilizador escolha uma ou mais opções dentro de uma dada lista. Esta lista é apresentada numa caixa própria (com uma barra de deslocamento vertical à direita, no caso de a lista ser mais extensa que o número de linhas disponível na caixa). Figura 18: Exemplo de listbox Os elementos da lista podem ser especificados à partida usando a propriedade List, ou ser acrescentados durante a execução do programa mediante o método listbox.additem: listbox.additem elemento ou listbox.additem elemento, posição em que elemento posição é o novo elemento a acrescentar à lista refere-se à posição na lista em o elemento vai ser inserido A remoção de um elemento da lista pode ser feita mediante o método RemoveItem: Listbox.RemoveItem posição As propriedades mais relevantes desta classe de objectos são: 30
31 ListCount Sorted ColumnCount MultiSelect ListIndex List Text RowSource permite conhecer em qualquer momento o número de elementos contidos na lista permite especificar se a lista é ou não apresentada de maneira ordenada especifica qual o número de colunas em que a lista é apresentada permite controlar a forma de selecção de elementos na lista: 0 - só é possível seleccionar um elemento 1 - é possível seleccionar vários elementos simultaneamente, pressionando cada elemento 2 - é possível seleccionar vários elementos simultaneamente, usando a tecla Ctrl fornece ou especifica qual o índice do item actualmente seleccionado (ou 1 caso nenhum esteja). Sintaxe: objecto.listindex [= indice] permite aceder aos elementos duma lista, quer para os ler, quer para os modificar. Sintaxe: objecto.list(indice) [= string] permite obter o elemento actualmente seleccionado. Sintaxe: variavel = objecto.text no Excel, especifica qual a gama de células onde estará a informação a incluir na lista Existe uma variante da ListBox, chamada ComboBox, que combina uma TextBox com uma ListBox. O utilizador pode introduzir um item na TextBox ou seleccioná-lo na lista que, estando normalmente escondida, só aparecerá quando se clica num ícone próprio. É normalmente utilizado quando se pretende dar a possibilidade de escolher um elemento de uma lista mas sem ocupar muito espaço na form. 5 Estruturas de controlo do programa Um macro é um programa escrito na linguagem VBA. Vamos agora começar a analizar mais em detalhe a estrutura de um programa. Um programa é composto por um conjunto de instruções, cada uma delas executando uma tarefa específica. A sequência de instruções levará à solução do problema que o programa se propõe resolver. Mas essa sequência não tem que ser necessariamente linear, i.e., composta por uma lista de instruções que serão realizadas uma após outra, de forma imutável. Isso tornaria o programa inflexível, incapaz de se adaptar às circunstâncias ou aos diferentes desejos do utilizador. Já foi introduzida na Secção 3.4 na página 15 a noção de operação de atribuição. Com essa operação podemos já criar instruções simples, mediante as quais é possível copiar valores entre variáveis, ou armazenar resultados do cálculo de expressões. Mas um programa flexível não poderá ser construído apenas com instruções desse tipo. É preciso dispor de instruções que permitam alterar o fluxo do programa. Para tal vamos introduzir estruturas de controlo que possibilitam a alteração desse fluxo. 31
32 5.1 Estruturas de controlo condicional Uma estrutura de controlo fundamental é a estrutura condicional, ou de selecção. Usando esta estrutura, as instruções podem ser executadas condicionalmente. Se uma dada condição fôr verdadeira, será executada uma dada sequência de instruções. Se fôr falsa, uma sequência diferente será escolhida If...Then...Else A Figura 19 descreve a estrutura condicional If...Then...Else. Como o seu nome sugere, esta estrutura está baseada no teste de uma condição. Se essa condição fôr verdadeira, desencadeará a execução das instruções representadas na figura por Bloco de Instruções1. Em caso contrário, será executada o Bloco de Instruções 2. Figura 19: Estrutura de controlo condicional If...Then...Else A sintaxe desta estrutura é: 1 I f condicao Then 2 [ i n s t r u c o e s ] 3 Else 4 [ i n s t r u c o e s a l t e r n a t i v a s ] 5 End I f 32
33 Quando a condição é verdadeira serão executadas as instruções delimitadas por Then e Else. Em caso contrário, será executado o bloco alternativo de instruções. A condição pode consistir numa comparação ou outra operação lógica, ou ainda em qualquer expressão de que resulte um valor numérico: um valor não nulo será interpretado como Verdadeiro, enquanto um valor nulo será considerado como Falso. A condição é, portanto, uma expressão booleana (lógica). Uma expressão booleana representa um valor booleano, TRUE (verdadeiro) ou FALSE (falso) e pode ser constituída por uma variável, uma função ou uma combinação destas entidades através de operações If...Then Figura 20: Estrutura de controlo condicional If...Then Esta estrutura condicional existe em duas variantes: com ou sem a alternativa Else. No 1 o existe uma acção alternativa a ser executada caso a condição seja falsa. No 2 o caso, a alternativa será não fazer nada. O seu diagrama está descrito na Figura 20. A sua sintaxe será então: 1 I f condicao Then 2 [ i n s t r u c o e s ] 3 End I f 33
34 Nesta 2 a variante, quando a acção a realizar no caso a condição seja verdadeira puder ser executada com apenas uma instrução, é possível utilizar a seguinte sintaxe simplificada, sem o delimitador End If : 1 I f condicao Then i n s t r u c a o Expressões lógicas As expressões lógicas, utilizadas nas condições das estruturas de controlo, são construídas utilizando operadores lógicos específicos. A linguagem VBA prevê os seguintes operadores lógicos, utilizáveis em expressões: Operador Descrição > Maior que < Menor que = Igualdade <= Menor ou igual >= Maior ou igual <> Desigualdade And E Or Ou Not Negação Dos primeiros seis operadores não haverá muito a dizer. Já do And e do Or haverá alguns detalhes a esclarecer: AND Sintaxe: Expr1 And Expr2 Se Expr1 e Expr2 forem ambas verdadeiras, a expressão será verdadeira Basta que quer Expr1 quer Expr2 seja falsa, para a expressão ser falsa OR Sintaxe: Expr1 Or Expr2 Se Expr1 e Expr2 forem ambas falsas, a expressão será falsa. Basta que quer Expr1 quer Expr2 seja verdadeira, para a expressão ser verdadeira Estruturas condicionais embutidas É possível imbricar estruturas condicionais dentro de outras estruturas condicionais, permitindo, assim, a construção de estruturas de controlo mais complexas. Para inserir uma estrutura condicional dentro de outra, é utilizada a palavra reservada ELSEIF. A sintaxe desta estrutura é: 34
35 1 IF condicao1 THEN 2 Accao1 3 ELSEIF condicao2 THEN 4 Accao2 5 ELSEIF condicao3 THEN ELSE 8 AccaoN 9 ENDIF Esta estrutura condicional permite a selecção de uma entre várias alternativas mutuamente exclusivas. As instruções que se seguem à palavra reservada ELSE (aqui representadas por "AcçãoN") serão executadas apenas se nenhuma das condições se tiver verificado. Figura 21: Estrutura de controlo condicional If...Then Na Figura 21 pode-se ver o fluxograma de uma estrutura imbricada com quatro vias alternativas. A Acção 1 é executada caso a 1 a condição seja verdadeira. A Acção 3 será executada caso a Condição 3 for verdadeira e as duas anteriores falsas. A Acção 4 será executada caso todas as quatro condições se tiverem verificado falsas. Chama-se a esta acção, a acção por defeito, o que se faz quando todo o resto falha. É muito importante que se compreenda que estamos aqui a tratar de verdadeiras alternativas, i.e., mútuamente exclusivas. Cada vez que uma estrutura deste tipo é executada, só uma das acções será efectuada. O exemplo seguinte traduz uma situação em que o programa, confrontado com a necessidade de classificar uma nota numérica, pode escolher uma de entre seis notas 35
36 qualitativas diferentes. Só uma estrutura condicional imbricada lhe permitirá resolver o problema. Exemplo de aplicação If (nota < 0) Or (nota > 20) Then resultado = "Nota Invalida!" ElseIf nota < 6 Then resultado = "Mau" ElseIf nota < 10 Then resultado = "Mediocre" ElseIf nota < 14 Then resultado = "Suficiente" ElseIf nota < 17 Then resultado = "Bom" Else resultado = "Muito Bom" End If É possível imbricar um qualquer número de blocos ELSEIF dentro de uma dada estrutura condicional. 5.2 Estruturas de controlo repetitivo Como vimos, as estruturas de controlo condicional permitem alterar o fluxo do programa, ou seja, executar diferentes sequências de instruções conforme as circunstâncias do momento. As estruturas de controlo repetitivo (também conhecidas por ciclos) permitem repetir um dado conjunto de instruções o número de vezes que fôr necessário. Existem diversas variantes de ciclos, diferindo umas das outras pela forma como é controlada a execução das instruções contidas no corpo do ciclo. Genericamente, pode-se dizer que uma estrutura de controlo repetitiva (ou ciclo) assegura a execução repetida de um dado conjunto de instruções dependendo do resultado do teste de uma determinada condição de funcionamento. De facto, como veremos, também os ciclos dependem da verificação de uma condição, normalmente de forma explícita, noutros casos implicitamente Estruturas de Controlo Do...Loop Estão disponíveis quatro variantes deste ciclo: Do While e Do Until, com teste no princípio ou no fim. Vejamos em detalhe as diversas variantes. O fluxograma da primeira encontra-se na Figura 22 na página seguinte: Analizando esse fluxograma, pode-se observar que tudo roda à volta do teste a uma condição, descrita como condição de funcionamento. Caso, na altura em que o teste é executado, a condição for verdadeira, as instruções que compõem o chamado corpo do ciclo serão executadas, após o que novo teste à condição será efectuado. Enquanto 36
37 Figura 22: Estrutura de controlo repetitivo Do...While a condição se verificar ser verdadeira, o programa não sairá deste ciclo. Na 1 a vez em que a condição se mostrar falsa, o ciclo terminará e o programa poderá continuar coma s instruções seguintes. A sintaxe em VBA desta estrutura de controle é a seguinte: 1 Do While condicao 2 [ i n s t r u c o e s ] 3 Loop A segunda variante é muito semelhante à primeira. A grande diferença diz respeito à condição de controle. Neste caso, temos a chamada condição de termo (ou de fim) o que faz com que o ciclo funcione enquanto a condição for falsa ou, por outras palavras, até que a condição de termo seja verdadeira. A sintaxe desta variante será então: 1 Do 2 [ i n s t r u c o e s ] 3 Loop Until condicao Como se pode deduzir do atrás dito, é possível tranformar uma estrutura Do...While numa Do...Until desde que se substitua a palavra While pela Until e se negue a condição de controlo. Escolher uma outra estrutura de controlo depende, no fundo, do jeito do programador e, sobretudo quando se usam condições múltiplas, da forma como a expressão lógica traduz com maior ou menor facilidade a condição em linguagem normal Ciclos controlados por contador Usando como base estas duas estruturas de controlo repetitivo é possível construir dois tipos de ciclos: ciclos controlados por um contador e ciclos controlados por aquilo que se designa como sentinela. Comecemos pelos primeiro. 37
38 Figura 23: Estrutura de controlo repetitivo Do...Until Um ciclo controlado por contador baseado na estrutura Do While pode assumir a seguinte forma genérica: Decorrendo do que vimos na secção anterior, é possível construir este ciclo usando a estrutura Do...Until. Há que ter em conta as seguintes questões na construção de um ciclo controlado por contador usando as estruturas de controlo Do...While ou Do...Until: Especificar a condição de funcionamento do ciclo Inicializar a variável contadora Incluir no corpo do ciclo uma instrução que incremente ou decremente a variável contadora. Quando se usam estas estruturas, ao contrário do que se passa com a estrutura de controlo repetitivo For...To...Next, a analizar na Secção na próxima página, é da responsabilidade do utilizador assegurar-se de que tais acções são correctamente executadas. Um último aspecto a observar é o seguinte: só é viável construir um ciclo controlado por contador quando é possível conhecer à partida o número de vezes que ele vai funcionar ou,por outras palavras, o número de repetições necessárias. Isso nem sempre é possível. Nesses casos, a alternativa será usar ciclos controlados por sentinela Ciclos controlados por sentinela Quando não é possível conhecer antecipadamente o número de vezes que o ciclo deverá ser executado é necessário usar uma técnica diferente: ciclos controlados por sentinela. Por sentinela deve entender-se um valor limite que assinala o fim de uma dada sequência de valores, mas que não esteja incluído nesse conjunto de valores. 38
39 Figura 24: Ciclos controlados por contador Exemplo Se o utilizador estiver a introduzir os dados referentes a um conjunto de alunos identificados pelos seus números de matrícula, a introdução de um número com menos de 6 dígitos (no caso do ISEP) como, or exemplo, o valor 1, permitirá indicar ao programa que a presente sequência de introdução de dados deve terminar. A selecção do valor sentinela é da responsabilidade do programador, devendo ser escolhido fora do intervalo possível de valores a introduzir, podendo ainda, ter-se em atenção a possível ocorrência de valores fora desse intervalo que possam resultar de algum eventual erro de digitação. O valor sentinela escolhido não deve pois ser passível de facilmente ocorrer por mero acidente Estrutura de Controlo For...Next Este ciclo permite repetir um dado conjunto de instruções um número pré-determinado de vezes. Como vimos na secção anterior, nem sempre é possível saber de antemão quantas 39
40 Figura 25: Ciclos controlados por sentinela vezes as instruções contidas no corpo do ciclo devem ser repetidas. Nesse caso, deverão ser utilizadas as estruturas de controlo repetitivo estudadas na Secção na página 36. A sintaxe da estrutura For..To..Next é: 1 For contador = v a l o r _ i n i c i a l To v a l o r _ f i n a l 2 [ i n s t r u c o e s ] 3 Next Esta estrutura baseia-se na existência dum contador que incrementa automaticamente o conteúdo da variável contador, chamada variável de controlo do ciclo, cada vez que o ciclo funciona, isto é, cada vez que as instruções contidas no corpo do ciclo são executadas. No início contador vai conter o valor inicial e após valorfinal - valor inicial iterações atingirá o valor final. Nesse momento o ciclo terminará. A inicialização da variável contadora, o seu incremento/decremento e a verificação da condição de funcionamento do ciclo (contador <= fim) é da responsabilidade da própria estrutura de controlo. O programador deve, apenas, especificar qual o valor de início e de fim (ou, por outras palavras, o número de vezes que o ciclo vai funcionar) e quais as instruções que o ciclo vai repetir (o corpo do ciclo). O conteúdo da variável de controlo do ciclo pode ser utilizado por instruções contidas 40
41 no corpo do ciclo, mas não deve, sob pretexto algum, ser modificado por estas instruções, sob pena de se perder o controlo do funcionamento do ciclo. A estrutura de controlo verifica no início de cada iteração (repetição) do ciclo se a condição de funcionamento do ciclo é ainda verdadeira. Caso seja falsa, o ciclo terminará, e o programa passará a executar as instruções que se seguem. Pode ainda ser utilizada a seguinte sintaxe alternativa: 1 For contador = v a l o r _ i n i c i a l To v a l o r _ f i n a l Step passo 2 [ i n s t r u c o e s ] 3 Next A diferença está na utilização da palavra Step após a especificação do valor final. A sua inclusão é opcional: caso se pretenda que o conteúdo de variável seja incrementada uma unidade de cada vez, é desnecessário especificar o passo. Em caso contrário, Step passo permitirá incrementar o valor de variável de um valor diferente da unidade (positivo ou negativo). Caso o valor de passo seja positivo a variável contadora será incrementada. Se pretendermos, no entanto, efectuar um decremento, deverá ser utilizado um valor negativo para passo. Obviamente, nesse caso, a condição de funcionamento do ciclo passará a ser contador >= fim. Repara-se que nesta estrutura de controlo, ao contrário das estudadas anteriormente, o incremento ou decremento da variável de controle do ciclo é automático. Outro aspecto interessante é que a condição de funcionamento do ciclo é implícita. Ela existe e é verificada mas não é especificada de forma explícita, apenas de forma indirecta ao fixaremse os valores inicial e final da variável de contagem. Existe ainda em VBA uma estrutura de controlo que é uma variante da For...Next e que opera numa colecção de objectos. Uma colecção é um conjunto de objectos idênticos, pertencentes à mesma classe, e que são referenciáveis mediante um índice. Por exemplo, um Workbook é constituído por um conjunto de objectos da classe Worksheet 9. A sintaxe desta estrutura é a seguinte: 1 For Each elemento In Coleccao 2 [ i n s t r u c o e s ] 3 Next O bloco de instruções será aplicada a cada elemento da colecção de objectos em causa. A seguir é apresentado um exemplo de sub-rotina, utilizando esta estrutura de controlo: 1 Public Sub FormataBordo ( ) 2 Dim c e l l O b j e c t As Range 3 For Each c e l l O b j e c t In S e l e c t i o n 4 c e l l O b j e c t. BorderAround ColorIndex :=3, Weight:= xlthick 5 Next 6 End Sub É criada a variável cellobject para guardar um objecto do tipo Range (que representa uma gama de células - assunto tratado na Secção 7.4). O ciclo For Each...Next aplica 9 Por sua vez, um workbook é também um objecto. Um objecto pode assim ser ele próprio uma colecção de objectos. 41
42 o método BorderAround a cada uma das células contidas na gama representada por cellobject. Com os argumentos fornecidos no exemplo, este método formata o bordo dessas células a vermelho e uma linha grossa Estruturas de controlo repetitivo imbricadas Foi dito anteriormente que o corpo de um ciclo era constituído pelo conjunto de instruções que o ciclo irá executar repetidamente. Foi também dito que nesse conjunto de instruções se poderiam incluir qualquer tipo de instruções, mesmo constituindo outras estruturas de controlo repetitivo. Prosseguindo com os exemplos apresentados na secção anterior, abaixo se pode ver um exemplo de uma utilização de um ciclo dentro de outro. Destes ciclos se diz que se encontram imbricados um dentro do outro. Figura 26: Exemplo de Ciclos Imbricados 42
43 Exemplo de utilização de Ciclos Imbricados Leitura do 1 o número cujo factorial vai ser calculado num = InputBox("Introduza um n o positivo não nulo", "Calculo de factoriais") Do Until num < 0 calculo do factorial de num factorial = 1 contador = 1 Do Until contador > num factorial = factorial * contador contador = contador +1 Loop Leitura do número seguinte num = InputBox("Introduza um n o positivo não nulo", "Cálculo de factoriais") Loop 5.3 Variáveis indexadas - vectores e matrizes Até agora, temos trabalhado essencialmente com variáveis que podemos classificar como individuais (isto é, cada variável podendo conter ao mesmo tempo apenas um só valor). Como essas variáveis não podem conter simultaneamente mais que um dado, a atribuição de um novo valor a essa variável implica a destruição do valor anteriormente nela contido. Mediante a utilização de um novo tipo de variáveis, as variáveis do tipo Array (Vector), passa a ser possível armazenar na mesma variável múltiplos valores desde que sejam do mesmo tipo. Estamos, portanto, a utilizar agora variáveis que se podem classificar como variáveis múltiplas. Figura 27: Um vector é uma variável múltipla Um vector é uma lista ordenada de variáveis simples do mesmo tipo. Pode também ser visto como um conjunto de variáveis simples agrupadas. Todos as variáveis membros desse vector partilham o mesmo nome (o nome do vector). São identificadas individualmente mediante o valor dum índice, que determina qual a sua posição dentro do vector. É por isso que estas variáveis são conhecidas por variáveis indexadas. 43
44 Os valores do índice devem obrigatoriamente ser do tipo Integer. O primeiro valor do índice é zero 10. Figura 28: Um exemplo de vector de strings Um elemento de um vector é identificado utilizando o nome do vector seguido do valor do índice dentro de parêntesis nome_vector(indice) Exemplos: var_multipla(3) var_multipla(7) notas(14) nomes(0) 4 o elemento do vector var_multipla 8 o e último elemento do vector var_multipla 15 o elemento do vector notas 1 o elemento do vector nomes Declaração de vectores Como qualquer outra variável, uma variável do tipo Array deve também ser declarada (criada) antes de poder ser usada. Para tal, deve ser usada a instrução Dim, que reserva espaço em memória suficiente para armazenar o número previsto de elementos do vector 11. Uma das formas de utilizar a instrução Dim para declarar vectores é a seguinte: Dim nome_vector(num_elementos) As Tipo Exemplos: Dim var_multipla(8) As Integer Dim notas(30) As Single Dim nomes(100) As String Nota: num_elementos não se refere ao valor máximo que a variável índice pode assumir (7, no caso do vector var_multipla) mas sim ao número de elementos do vector (8, neste caso). Por este processo a declaração do limite inferior faz-se de forma implícita: por defeito assume-se como limite inferior do índice o valor zero (ou 1 se tal for especificado mediante a instrução Option Base 1 ). 10 É possível forçar que os índices dos vectores comecem do valor 1 usando a directiva Option Base Adicionalmente, a instrução Dim atribui valores iniciais a todos os elementos do vector (zeros no caso de vectores numéricos e strings nulas no caso de vectores alfa-numéricos). 44
45 Uma forma alternativa de utilizar a instrução Dim para declarar vectores implica a utilização da palavra reservada To, permitindo especificar o menor e o maior valor que o índice pode assumir: Dim nome_vector(menorindice To maiorindice) As Tipo Exemplos: Dim numeros(100 To 200) As Double Dim valores(-100 to 100) As Single Processamento de vectores Sendo um vector uma variável múltipla composta de elementos do mesmo tipo agrupados na mesma estrutura, a forma mais adequada de executar uma mesma acção sobre uma parte ou a totalidade dos seus elementos é utilizar uma estrutura de controlo repetitivo ou ciclo. Para perceber de forma mais clara o porquê da afirmação contida no parágrafo anterior, observe-se o problema descrito na Figura 29 e atente-se nas diferentes soluções propostas. Figura 29: Porquê usar ciclos para processar vectores? Quando confrontado com o problema de armazenar e actualizar a informação relativa ao preço de 100 produtos, um programador poderia ser tentado a criar 100 variáveis individuais para guardar cada um desses preços. Isso, no entanto, obrigá-lo-ia a incluir no seu programa 100 instruções Dim para criar outras tantas variáveis individuais. Por 45
46 outro lado, quando necessitasse de actualizar os preços em, por exemplo, 5%, teria que inserir 100 instruções do tipo preçon = preçon * 1,05. Do atrás exposto facilmente se verificará que esta solução não tem qualquer exequibilidade prática. Analizemos então a solução alternativa usando uma variável indexada: em vez de 100 variáveis individuais teremos apenas um vector de 100 elementos, cada elemento capaz de armazenar o preço de um produto. Consequentemente, teremos apenas uma instrução Dim, no caso, algo como Dim preços As single. E quando necessitar de actualizar os preços, como o vector é uma variável múltipla indexada, haverá apenas que construir um ciclo que percorra automáticamente o vector, actualizando cada um dos seus elementos. Exemplo Private Sub cmdgo_click() Dim vectorsqr(100) As Double Dim i As Integer variável índice Dim res As Single lsttabela.clear For i = 0 To txtmaior res = Sqr(i) vectorsqr(i) = res lsttabela.additem Format(res, "0.000") Next i End Sub Figura 30: Exemplo de processamento de um vector O programa descrito na Figura 30 permite calcular e apresentar sob a forma de uma tabela as raízes quadradas de todos os números inteiros compreendidos entre 0 e um dado limite superior a especificar pelo utilizador na TextBox txtmaior (a largura do intervalo não deve exceder 100, visto ser esta a dimensão do vector). Os valores calculados são armazenados num vector para eventual futura utilização. Na variante desta sub-rotina, contida no exemplo descrito na Figura 31 na próxima página, é possível especificar também o limite inferior do intervalo, para além de se demonstrarem algumas técnicas de formatação da saída de dados. De notar que na primeira versão do programa se usou a mesma variável i para controlar o ciclo For e para armazenar os valores dos índices do vector. Tal aconteceu porque foi possível estabelecer naquele caso uma correspondência directa entre os valores da variável de controlo do ciclo i e os valores do índice que controla as posições dos elementos do vector. Já na segunda variante do programa tal não era possível, visto que a variável de controlo do ciclo iria conter valores (desde o limite inferior ao limite superior do intervalo) que não deveriam corresponder às posições do vector em que o armazenamento dos resultados se iria efectuar. Em qualquer das variantes apresentadas, o processamento dos elementos do vector consistiu em operações de escrita (de atribuição) que modificaram o seu valor. É igual- 46
47 Exemplo Private Sub cmdgo_click() Dim vector(100) As Double Dim i As Integer Dim indice As Integer Dim res As Single Dim linha As String lsttabela.clear indice = 0 For i = txtmenor To txtmaior res = Sqr(i) vector(indice) = res linha = Format(Str(i), "##0") + - "+ Format(vector(indice), " ") lsttabela.additem linha indice = indice + 1 Next i End Sub Figura 31: Outro exemplo de processamento de um vector mente possível efectuar operações de leitura sobre todos ou parte dos elementos dum vector. Neste caso, como é óbvio, a variável do tipo Array deverá encontrar-se do lado direito de uma operação de atribuição: var = vector(indice) A instrução acima copia o conteúdo de vector na posição índice para a variável var. 6 Funções e Procedimentos 7 Programação do Excel usando VBA Nesta secção vamos aprender a trabalhar com os objectos do Excel mais comuns: o Workbook (Livro de trabalho), a Worksheet (Folha de cálculo) e o Range (gama de células). São objectos que pertencem, por sua vez, ao objecto principal que é a Application (Aplicação, neste caso, o próprio Excel). 7.1 Como aceder às funções standard do Excel Se bem que o VBA possua várias dezenas de funções pré-definidas, é muito conveniente poder utilizar directamente qualquer uma das centenas de funções standard oferecidas pelo Excel. Para poder aceder a elas a partir do VBA é necessário utilizar a propriedade 47
48 WorsheetFunction do objecto Application 12. Por 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: 1 med = Application. WorksheetFunction. Average ( Range ( "Dados" ) ) Esta instrução permite aceder à função standard Average do Excel, à qual é fornecido um objecto do tipo Range, representando a gama de células descritas sob o nome "Dados". 7.2 Trabalhar com objectos Workbook Usando estes objectos, o VBA pode criar novos livros de trabalho, abrir ou fechar existentes, entre outras acções possíveis. Para especificar qual o livro de trabalho com que queremos trabalhar podemos fazê-lo de três maneiras 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 VBA (e não o utilizador) está a operar. Para abrir um Livro de Trabalho aplica-se o método Open ao objecto Workbooks: 1 Sintaxe : 2 Workbooks. Open Nome_do_ficheiro 1 Exemplo : 2 Workbooks.Open "C: \ Documentos\ Excel \Dados. x l s " Os métodos Save e Close são utilizados de forma similar para salvaguardar o conteúdo dum ficheiro e para o fechar, respectivamente. 7.3 Trabalhar com objectos Worksheet Normalmente um livro de trabalho possui mais do que uma folha de cálculo (é normalmente criado logo à partida com três). Para escolher qual a folha de cálculo com que se pretende trabalhar usa-se o objecto Worksheets especificando um índice ou o nome da folha de cálculo em causa: 1 Worksheets ( 2 ) 2 Worksheets ( " Custos " ) Para acrescentar uma folha de cálculo ao livro de trabalho o método adequado será o Add: 1 Exemplo : 2 Worksheets.Add After := Worksheets ( "Medidas" ) 12 Claro que só as funções do Excel que não se encontram duplicadas no VBA podem ser acedidas por meio da propriedade WorsheetFunction. 48
49 7.3.1 Propriedades de Worksheet Nesta secção são referidas algumas das suas propriedades mais úteis: Worksheet.Name - permite mudar ou obter o nome da folha de cálculo. O exemplo abaixo muda o nome de "Folha 1" para "Medidas": 1 Worksheets ( " Folha 1" ).Name = "Medidas" Worksheet.StandardWidth - permite especificar a largura standard das colunas duma folha de cálculo Métodos de Worksheet Eis alguns dos métodos normalmente aplicados a este tipo de objectos: Worksheet.Activate - torna activa a folha de cálculo especificada 13. O exemplo seguinte torna activa a folha de cálculo "Custos" do livro de trabalho "Dados 2007": 1 Workbook ( "Dados 2007 " ). Worksheets ( " Custos " ). Activate Worksheet.Copy - copia a folha de cálculo especificada para outra posição dentro do livro de trabalho. 1 Sintaxe : 2 Worksheet.Copy [ P o s i t i o n ] O argumento Position é opcional e pode ter o valor Before ou After indicando a posição onde a cópia será inserida. Caso o argumento não seja incluído, a cópia será inserida num novo livro de trabalho. 1 Exemplo : 2 Worksheets ( 2 ).Copy After := Worksheets ( 3 ) O exemplo anterior faz uma cópia da 2 a folha de cálculo e insere-a a seguir à 3 a. O método Move usa uma sintaxe idêntica para mover uma determinada folha de cálculo para outra posição. Worksheet.Delete - permite eliminar a folha de cálculo especificada. 7.4 Trabalhar com objectos Range Um objecto do tipo Range pode representar uma simples célula, um conjunto de células, uma linha ou uma coluna. Não existe em VBA um objecto específico para representar uma célula individual. Para nos referirmos a uma célula ou gama de células podemos aplicar o método Range ao objecto Worksheet usando uma de duas sintaxes possíveis: 13 A folha de cálculo activa é aquela que está visível no momento. 49
50 1 Sintaxe 1 : 2 Worksheet. Range (Nome) 3 Range (Nome) 1 Sintaxe 2 : 2 Worksheet. Range ( Celula1, Celula2 ) A 1 a sintaxe usa nomes de gamas pré-definidos 14, enquanto que a 2 a utiliza as referências das células que definem dois vértices opostos da área rectangular contendo as células que se quer especificar. Caso se omita Worksheet em qualquer das sintaxes anteriores, o VBA pressupõe que se trata da folha de cálculo activa naquele momento. 1 Exemplos : 2 Range ( "C5" ). Value = Range ( "D1", "D10" ). Value = 0 4 Worksheets ( 3 ). Range ( "Dados" ). ClearContents O 1 o exemplo guarda o valor 100 na célula C5. O 2 o exemplo atribui o valor zero a todas as células da gama D1 a D10. O 3 o exemplo limpa o conteúdo das células da gama "Dados" da 3 a folha de cálculo. A propriedade Value dos objectos Range permite conhecer ou modificar o seu valor. Para identificarmos apenas uma célula podemos também utilizar o método Cells. 1 Sintaxe : 2 Objecto. C e l l s ( Linha, Coluna ) Objecto pode ser um objecto Worksheet ou Range. A sua omissão, leva o VBA a partir do princípio que se trata da folha de cálculo activa. 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 Exemplo : 2 For coluna = 2 To 13 3 C e l l s (2, Coluna ). Value = "Mes " & coluna 1 4 Next O exemplo acima usa um ciclo For...To para preencher todas as células da gama C2 a C13 com um texto "Mês X" em que X é o n o do mês. É usado o operador de concatenação de strings & para efectuar a colagem. Caso se pretenda identificar uma linha ou coluna completa, podem ser utilizados os métodos Rows e Columns. 1 Sintaxe : 2 Objecto. Rows( I n d i c e ) 3 Objecto. Columns ( I n d i c e ) Para ilustrar a utilização do método Rows atente-se no seguinte exemplo 16 : 14 Atribuídos em Excel usando o Menu "Name/Define". 15 Se o objecto for do tipo Range, Linha e Coluna referir-se-ão à linha e à coluna dentro da gama de células especificada. 16 Adaptado de um exemplo contido em [?]. 50
51 1 Sub I n s e r e L i n h a s (gama As Range, num As Integer ) 2 Dim num_linhas As Integer, ultima_linha As Integer 3 Dim i As Integer 4 With gama 5 num_linhas =. Rows. Count 6 ultima_linha =. Rows( num_linhas ). Row 7 For i = 1 To num 8. Rows( ultima_linha + i ). I n s e r t 9 Next 10 End With 11 End Sub Esta sub-rotina recebe como argumentos uma gama de células (um objecto do tipo Range) e um inteiro especificando o número de linhas a inserir abaixo da última linha dessa gama. A estrutura With...End...With é muito prática porque permite executar um conjunto de instruções sobre um determinado objecto, neste caso qualquer objecto Range que a sub-rotina receba como argumento. Dentro da estrutura With...End...With omite-se qualquer referência a esse objecto, usando-se apenas os seus métodos e propriedades. Assim,.Rows.Count refere-se ao número total de linhas da gama especificada e.rows(num_linhas).row fornece-nos o índice da última linha dessa gama. O ciclo For...To repete num vezes a aplicação do método Insert à ultima linha da gama. Para testar a sub-rotina InsereLinhas, use-se a seguinte rotina de teste: 1 Sub i n s e r e T e s t e ( ) 2 I n s e r e L i n h a s Worksheets ( 3 ). Range ( "Dados" ), 3 3 End Sub Apresentamos outro exemplo, agora referido ao método Columns em que a largura da coluna E (5 a coluna) é mudada para 15: 1 Columns ( 5 ). ColumnWidth = 15 8 Notas finais Parte da estrutura e alguns dos exemplos apresentados foram inspirados no livro de Paul McFredies[?]. Foram ainda reutilizados materiais contidos na Seventa de Introdução à Computação da minha autoria[2]. Referências [1] Paul McFredies. VBA for the Microsoft Office System, QUE. [2] António Silva. Sebenta de Introdução à Computação - Visual Basic, ISEP. 51
Variáveis Tipos de Dados. APROG (Civil) Aula 2
Variáveis Tipos de Dados APROG () Aula 2 Conteúdo Conceito de Variável Declaração de variáveis Tipos de Dados Operação de Atribuição Uso de Constantes 2 Variáveis Uma variável é uma localização de memória
Variáveis Tipos de Dados
Variáveis Tipos de Dados APROG () Aula 2 1 Conteúdo Conceito de Variável Declaração de variáveis Tipos de Dados Operação de Atribuição Uso de Constantes 2 2 Variáveis Uma variável é uma localização de
Programação de Computadores usando VBA
Aula 1 Programação de Computadores usando VBA Introdução - 1 Objectivo: aprendizagem das técnicas básicas de programação de computadores Ambiente: Excel e Editor de VBA Requesitos: Conhecimentos de Excel
VBA Visual Basic for Applications. APROG - Civil
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
Programação em VBA Texto Introdutório
Programação em VBA Texto Introdutório versão 2 António Silva DEI-Isep 2009-12-30 1 . Conteúdo 1 Introdução 9 2 Conceitos Básicos 9 2.1 O que é um Macro?.............................. 9 2.2 Técnicas de
Objectos Gráficos 1. APROG (Civil) Aula 4. Friday, November 2, 12
Objectos Gráficos 1 APROG () Aula 4 1 Objectos Gráficos Estes objectos são utilizados para construir interfaces gráficas permitindo uma interacção directa do macro com o utilizador. 2 2 Form Uma interface
APROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos
Conteúdo Exemplo de um programa Apresentação sumária da construção de um programa em VB. Objectos e o mecanismo de eventos Apresentação dos conceitos básicos de programação em ambiente MS Windows. Tipos
1 - Ambiente de desenvolvimento
Neste documento começa-se por apresentar o ambiente de desenvolvimento integrado do Visual Basic (menu bar, toolbars, toolbox, project explorer window, properties window, form designer e code editor window).
Objectos, Propriedades e Métodos
Cap. 4 Secção 5 Modelo de Objectos do Excel 1 O que são? Objectos São representações de elementos do Excel. Algo que pode ser controlado pelo V.Basic, tal como um botão, folha, livro, etc. Um objecto tem:
Objectos Gráficos 2. APROG (Civil) Aula 5
Objectos Gráficos 2 APROG () Aula 5 Botões de Opção O botões de opção (option buttons) permitem ao utilizador efectuar escolhas entre diversas alternativas. São compostos pelo botão propriamente dito e
O que é um programa em Visual Basic?
O que é um programa em Visual Basic? 1 Conteúdo Exemplo de um programa Apresentação sumária da construção de um programa em VB. Objectos e o mecanismo de eventos Apresentação dos conceitos básicos de programação
Fundamentos Programação
Fundamentos Programação A programação de computadores não é difícil. Realmente só requer algo como: Aprender alguns conceitos gerais Ser cuidadoso, organizado e lógico Praticar até aprender a dominar a
Introdução à Computação. Programas Básicos. ISEP DEI, Angelo Martins 2006 Programas Básicos - 1
Introdução à Computação Programas Básicos ISEP DEI, Angelo Martins 2006 Programas Básicos - 1 Conteúdo Exemplo de um programa Apresentação sumária da construção de um programa em VB. Objectos e o mecanismo
Apontamentos de VBA Texto Introdutório. António Silva
Apontamentos de VBA Texto Introdutório António Silva 2008-12-29 1 . Conteúdo 1 Introdução 5 2 Conceitos Básicos 5 2.1 O que é um Macro?.............................. 5 2.2 Técnicas de construção dum Macro.....................
PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO
PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO Módulo 8 - Int. ao Visual Basic 1. O Visual Basic É uma linguagem de programação que utiliza objectos programáveis como interface com o utilizador. Foi criada
Estruturas de Decisão. APROG (Civil) Aula 6
Estruturas de Decisão APROG () Aula 6 Conteúdo Estrutura If...Then Estrutura If...Then...Else 2 Conceito As Estruturas de Controlo servem para modificar o fluxo das instruções seguidas por um determinado
Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema
ALGORITMIA Resolução De Problemas Em Informática Docente: Ana Paula Afonso 2000-2001 Resolução de Problemas 1. Analisar o problema Conhecer o bem o problema Descrever o problema: subdividir, detalhar 2.
Módulo 1a: Introdução ao Visual Basic for Applications (VBA) - Eventos, Gráficos e Interfaces gráficas -
Módulo 1a: Introdução ao Visual Basic for Applications (VBA) Aula #3 - Eventos, Gráficos e Interfaces gráficas - Eventos em VBA - Excel É possível detectar e reagir a eventos ocorridos - Nas folhas (sheets)
Criar um recurso para QIM com ActivInspire - Studio
Como criar um recurso com o Software ActivInspire Studio Depois de abrir o Software ActivInspire deve criar uma nova página, ficheiro Novo e de seguida escolher o formato desejado. Nota: De forma a este
O AMBIENTE DE TRABALHO... 2 CRIAR, ABRIR E GUARDAR DOCUMENTOS... 6 EDIÇÃO DE DOCUMENTOS... 7 FORMATAÇÃO DE TEXTO Manual de Word INTRODUÇÃO...
INTRODUÇÃO... 2 Noção de processador de texto... 2 O AMBIENTE DE TRABALHO... 2 Área de trabalho... 3 Barra de menus... 3 Barras de ferramentas... 4 Réguas... 5 Botões de visualização... 5 Barra de estados...
FORMAÇÃO DE MICROSOFT EXCEL 2010
FORMAÇÃO DE MICROSOFT EXCEL 2010 Mário de Almeida Pedro, M. Sc. Novembro 2013 Bemvindo Identificação da UFCD UFCD nº 0756 Folha de Cálculo, com a duração de 50 horas Microsoft Excel 2010 Objectivos: No
VISUAL BASIC PARA APLICAÇÕES (VBA)
Departamento de Engenharia Informática VISUAL BASIC PARA APLICAÇÕES (VBA) Alberto A. C. Sampaio 1999 2003 Porto ÍNDICE 1. PROJECTOS EM VISUAL BASIC PARA APLICAÇÕES... 1 1.1 INTRODUÇÃO... 1 1.2 AMBIENTE
Programação em VBA Texto Introdutório. António Silva DEI-Isep 2009-10-28
Programação em VBA Texto Introdutório António Silva DEI-Isep 2009-10-28 1 . Conteúdo 1 Introdução 8 2 Conceitos Básicos 8 2.1 O que é um Macro?.............................. 8 2.2 Técnicas de construção
Tutorial de Extensibilidade
PRIMAVERA v7.00 Tutorial de Extensibilidade Importação de Pendentes por excel Versão 1.0 Abril de 2007 Índice ÍNDICE... 1 INTRODUÇÃO... 2 EXCEL DE IMPORTAÇÃO DE PENDENTES... 3 Enquadramento...3 Como utilizar
Gestão de Base de dados Formulários
Gestão de Base de dados Formulários Ano Letivo 2014/2015 Professora: Vanda Pereira Formulários Os Formulários constituem uma outra forma de visualizar os dados armazenados nas tabela ou disponibilizados
Gestão de Base de dados Tabelas e Chaves
Gestão de Base de dados Tabelas e Chaves Ano Letivo 2014/2015 Professora: Vanda Pereira Criar tabelas Considerações importantes: Os nomes das tabelas deverão ter por base as entidades que representam.
1 o º ciclo. Índice TUTORIAL
1 o º ciclo Índice ABRIR O EXCEL 2 O ambiente de trabalho do Excel.3 O botão do Office 4 OPERAÇÕES COM FOLHAS DE CÁLCULO.. 4 Criar um documento novo 4 Colunas, linhas e células. 5 Inserir Fórmulas 6 TUTORIAL
Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido
Página 1 de 8 Excel > Macros Executar uma macro Mostrar tudo Há várias maneiras de executar uma macro no Microsoft Excel. Macro é uma ação ou um conjunto de ações que você pode usar para automatizar tarefas.
Módulo 1a: Introdução ao Visual Basic for Applications (VBA)
Módulo 1a: Introdução ao Visual Basic for Applications (VBA) - Elementos básicos - O Excel (revisões ou não?) Folha de cálculo baseada em células Usa um sistema de coordenadas (letra, número) Recalcula
Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções
Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR Botão Direito do Mouse; Personalizar Faixa de Opções Marque a opção Desenvolvedor e clique no botão OK Opção 1: Vá até a
Iniciação à Informática
Iniciação à Informática Dr. Manuel Monteiro Conteúdo 5 Folha de Cálculo Conceitos básicos Os programas denominados de folhas de cálculo permitem aos seus utilizadores elaborar documentos com cálculos,
Visual Basic for Applications
Visual Basic for Applications Introdução É uma linguagem de programação baseada na conhecida linguagem BASIC Está concebida para funcionar em conjunto com diferentes aplicações de forma a potenciar a robustez
10. CRIANDO FORMULÁRIOS DO VBA
10. CRIANDO FORMULÁRIOS DO VBA O VBA possui classes apropriadas para a inserção de formulários e seus respectivos controles (caixas de texto, caixas de checagem, botões de comando etc.) em seus projetos.
Tecnologias da Informação e Comunicação
Tecnologias da Informação e Comunicação Unidade 2 Processador de texto Microsoft Word 2007 2008 Unicenter. Todos os direitos reservados Sobre o Word 2007 O Microsoft Word é um programa que faz parte das
Manual Prático. Elisabete Aguiar
Manual Prático Elisabete Aguiar Índice A BARRA DE OPÇÕES... 4 Abrir um documento existente... 6 Guardar um documento Word... 7 Ambiente de Trabalho no Microsoft Word 2007... 9 Configuração de Páginas...
APROG Civil. Estruturas de Decisão. Angelo Martins Dep. Eng. Informática - ISEP. Aula 2. ISEP DEI, Angelo Martins 2006 ISEP-DEI, António Silva, 2007
Angelo Martins Dep. Eng. Informática - ISEP Aula 2 1 Conteúdo Estruturas de decisão - conceito e aplicação Estrutura If... Then Apresentação das diversas variantes desta estrutura. Expressões lógicas complexas.
Introdução à Programação. João Manuel R. S. Tavares
Introdução à Programação João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de
FORMAÇÃO DE MICROSOFT EXCEL 2010
FORMAÇÃO DE MICROSOFT EXCEL 2010 Mário de Almeida Pedro, M. Sc. Novembro 2013 Bemvindo Identificação da UFCD UFCD nº 0756 Folha de Cálculo, com a duração de 50 horas Microsoft Excel 2010 Objectivos: No
FORMAÇÃO DE MICROSOFT WORD Mário de Almeida Pedro, M. Sc. Janeiro 2014
FORMAÇÃO DE MICROSOFT WORD 2007 Mário de Almeida Pedro, M. Sc. Janeiro 2014 Bemvindo Identificação da UFCD UFCD nº 0754 Processador de Texto, com a duração de 50 horas Microsoft Word 2007 Para criar um
MANUAL DE MICROSOFT EXCEL 2003 Sem bichos de sete cabeças
MANUAL DE MICROSOFT EXCEL 2003 Sem bichos de sete cabeças Trabalho realizado para Metodologia de Investigação I para a Professora M. Isabel Chagas por: Deolinda Canelo Dulce Mourato Sandra Gaspar Eugénia
Programação em VBA Texto Introdutório
Programação em VBA Texto Introdutório versão 3 António Silva DEI-Isep 2009-12-30 1 . Conteúdo 1 Introdução 9 2 Conceitos Básicos 9 2.1 O que é um Macro?.............................. 9 2.2 Técnicas de
Introdução à Programação
Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS FORMULÁRIOS
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS FORMULÁRIOS Os constituem uma outra forma de visualizar os dados armazenados nas tabela ou disponibilizados numa consulta. Também
UFCD 786 Instalação e configuração de sistemas de bases de dados
Pág 2 UFCD 786 Instalação e configuração de sistemas de bases de dados Formadora Elsa Almeida Índice 1 Introdução... 3 2 Formulários... 4 2.1 Criar Formulários... 4 2.2 Inserção de Novos Registos e Manipulação
OpenOffice.org. tutorial apresentação
tutorial apresentação Criar uma nova apresentação Assistente Apresentação Inserir diapositivos Seleccionar diapositivos Formatar uma página Formatar diapositivos Vistas do espaço de trabalho Iniciar apresentação
Modulo 2 Gestão de Base
Didáxis - Escola Cooperativa de Vale S. Cosme Modulo 2 Gestão de Base de Dados Aula Nº 55 / 56 09-01-2008 Sumário: Programa de gestão de bases de dados. Introdução ao estudo das tabelas. 2 Gestão de Base
Escola Profissional Agrícola de Lamego Ano Lectivo 2008 / 2009
OBJECTIVOS / COMPETÊNCIAS Elaborar e editar documentos Identificar os comandos e operações básicas Executar operações básicas de elaboração e edição do documento CONTEÚDOS PROCESSAMENTO DE TEXTO Introdução
Macros e Programação VBA
SI Macros e Programação VBA 1/ 15 Macros e Programação VBA Sistemas de Informação MIEM / MIEIG SI Macros e Programação VBA 2/ 15 O que são macros? São sequências de instruções simples cujo objectivo é
Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários.
BARRA DE FERRAMENTAS DE FORMULÁRIOS Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários. A Barra de Ferramentas de Formulário contém objectos gráficos
Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.
Programação Um programa é uma sequência de instruções de uma linguagem de programação (VB no nosso caso). Cada instrução representa uma qualquer acção que nós pretendemos ver executada. Programar consiste
Tecnologias da informação e comunicação
TIC Excel Tecnologias da informação e comunicação Módulo n.º 1 (32 horas) Folha de cálculo MS Excel Módulo n.º 2 (32 horas) Gestão de bases de dados MS Access Módulo n.º 3 (36 horas) Páginas web Avaliação
FERRAMENTA DE COMPRESSÃO E CIFRAGEM
Programa de COMPRESSÃO E CIFRAGEM SECRETZIP (apenas para Windows) O programa está incluído na unidade Flash USB. Consulte o manual na unidade Flash USB ou visite www.integralmemory.com para transferir
UFCD 778 Folha de Cálculo Formadora: Sónia Rodrigues
UFCD 778 Formadora: Sónia Rodrigues UFCD 778 - - Operação e Programação Objectivos da UFCD: Utilizar e programar aplicações informáticas de folha de cálculo. UFCD 778 - - Operação e Programação 2 1 Folha
Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores
Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo
w w w. b a l a n c a s m a r q u e s. p t B M G e s t
M a n u a l d e U t i l i z a d o r w w w. b a l a n c a s m a r q u e s. p t B M G e s t Índice 1 INTRODUÇÃO... 1 1.1 REQUISITOS DO SISTEMA... 1 1.2 INSTALAÇÃO... 1 1.3 PRIMEIRA EXECUÇÃO... 1 1.3.1 Seleccionar
ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011
Manual Profissional BackOffice Mapa de Mesas v2011 1. Índice 2. INTRODUÇÃO... 2 3. INICIAR O ZSRest Backoffice... 3 1 4. Confirmar desenho de mesas...... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5.
Aplicações de Escritório Electrónico
Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho
Dispor e organizar folhas de cálculo
Dispor e organizar folhas de cálculo O Excel fornece várias funcionalidades para o ajudar a trabalhar e visualizar com as folhas de cálculo. Fixar linhas e colunas Pode fixar (ou bloquear) linhas e colunas
Informática II Cap. 4-4
Cap. 4-4 1 Estruturada Quando precisamos de escrever código para resolver um determinado problema, dizemos normalmente que precisamos de um "programa" para esse fim. Programa, aqui, é entendido como um
Como construir uma animação em Excel Proporcionalidade Directa. Gráfico da função y = k.x
Como construir uma animação em Excel Proporcionalidade Directa. Gráfico da função y = k.x Supõe que um carro viaja de Lisboa ao Porto (~300 km) a uma velocidade constante de 90 km/h. Neste caso a distância
Variáveis Escalar e de Array
Variáveis Escalar e de Array Em alguns casos você apenas necessita designar um único valor para uma variável. Uma variável contendo um único valor é chamada de escalar. Entretanto é conveniente designar
777 Processador de Texto
Word 2007 777 Processador de Texto Microsoft Office Word 2007 Microsoft Office 2007 Processador de texto Formadora: Sónia Rodrigues 1 Formadora: Sónia Rodrigues 2 Introdução Microsoft Office Word 2007,
Aplicações de Escritório Electrónico
Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho
I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.
Capítulo 4 TESTES, ESCOLHAS E MALHAS DE REPETIÇÃO 1. INTRODUÇÃO Em muitos exemplos e exercícios realizados nos capítulos anteriores, não foram raras as vezes em que fizemos uso de elementos disponíveis
Vantagens da Folha de Cálculo. UFCD 3776 Informática folha de cálculo e base de dados. Formadora: Sónia Rodrigues.
UFCD 776 Informática folha de cálculo e base de dados Objectivos da UFCD: Utilizar aplicações informáticas de folha de cálculo e de base de dados. UFCD 776 Informática folha de cálculo e base de dados
Desenho/Formas SmartArt
Desenho/Formas SmartArt 1 WordArt Para criar textos com efeitos Gráficos Embora o Word 2007 seja um processador de texto, permite a criação de gráficos em tudo semelhantes à folha de cálculo Excel 2007.
Para abrir um documento deve utilizar uma das abordagens seguintes.
RESUMO O software Excel apresenta as melhores condições para se elaborar as ferramentas estratégicas de importância inigualável para o Planejamento das Estruturas, que proporcionam inclusive extrema versatilidade
O que é e como funciona o VBA no excel?
Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série O Excel já é por si só uma ferramenta poderosa de elaboração de planilhas simples e sofisticadas, capazes de oferecer uma infinidade
SEBENTA INTRODUÇÃO Á ALGORITMIA
SEBENTA INTRODUÇÃO Á ALGORITMIA O desenvolvimento de programas para computador está sempre baseado na tarefa de programar um computador para seja resolvido um problema ou executada uma função e assim dar
Tarefa Orientada 3 Criação de tabelas
Tarefa Orientada 3 Criação de tabelas Objectivos: Criação de Tabelas. Definição de chave primária. Definição de índices. Definição de propriedades (restrições) de campos. O Sistema de Gestão de Bases de
2.2.5 EXPRESSÕES - Regras para o cálculo de valores
Métodos de Programação I Departamento de Matemática, FCTUC 30 2.2.5 EXPRESSÕES - Regras para o cálculo de valores As expressões fornecidas ao computador, quer tenham variáveis, constantes ou apenas literais,
Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
O Ambiente de Trabalho Candy
O Ambiente de Trabalho Candy ÍNDICE INTRODUÇÃO 2 OS ELEMENTOS PRINCIPAIS DO AMBIENTE DE TRABALHO 2 1 Barra de Título 2 2 Separador de Aplicação (Application Tabs) e informação acerca da versão do programa
Iniciação à Informática
Iniciação à Informática Dr. Manuel Monteiro Conteúdo 4 Processamento de Texto Conceitos básicos Os programas denominados de processador de texto oferecem um conjunto de meios que facilitam a elaboração
Sistemas de Gestão De Bases de Dados. Criação de Tabelas na vista estrutura. Módulo 2. A Professora: Vanda Pereira
Sistemas de Gestão De Bases de Dados Criação de Tabelas na vista estrutura A Professora: Vanda Pereira Módulo 2 Para criar uma tabela basta clicar no separador Criar grupo Tabela Vai aparecer no lado esquerdo
Folha de cálculo Microsoft Excel
TIC Excel Folha de cálculo Microsoft Excel O Microsoft Excel é um programa que faz parte do conjunto de aplicações que constituem o Microsoft Office. Para além de ser uma excelente ferramenta para a realização
Manual do Utilizador. Declaração Anual Suporte Informático. Anexo J /Modelo 10
Manual do Utilizador Declaração Anual Suporte Informático Anexo J /Modelo 10 TSR Sistemas de Informação, Lda. FEVEREIRO 2010 Pág. 2 Índice Objectivo... 3 Instalação... 3 Utilizadores... 3 Utilitários de
Associações de Ficheiros. Mike McBride Tradução: José Pires
Mike McBride Tradução: José Pires 2 Conteúdo 1 Associações de Ficheiros 4 1.1 Introdução.......................................... 4 1.2 Como usar este módulo.................................. 4 1.2.1
Cypedoc. Manual de utilização e manutenção do edifício
Cypedoc. Manual de utilização e manutenção do edifício Cypedoc. Manual de utilização e manutenção do edifício Software para Arquitetura, Engenharia e Construção 2 IMPORTANTE: ESTE TEXTO REQUER A SUA ATENÇÃO
Microsoft Excel Ficha prática n. 8
1. Inicie o Microsoft Excel e abra o livro apoio_ficha8.xlsx. 2. Grave o livro com o nome Ficha8. 3. Crie uma macro, usando o gravador de macros, que formate a vermelho as notas finais negativas duma pauta
BMLABEL MANUAL DO UTILIZADOR
MANUAL DO UTILIZADOR Ao executar o programa abre-se uma janela com a lista das empresas registadas e 2 menus activos: Menu Seleccionar para seleccionar a empresa. Menu Sair para sair da aplicação. Para
