VISUAL BASIC PARA APLICAÇÕES (VBA)



Documentos relacionados
Objectos, Propriedades e Métodos

1 - Ambiente de desenvolvimento

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Programação de Computadores usando VBA

Iniciação à Informática

Visual Basic for Applications

VBA Visual Basic for Applications. APROG - Civil

Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções

VBA USANDO TABELA DO WORD COMO BANDO DE DADOS

APROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos

Objectos Gráficos 1. APROG (Civil) Aula 4

777 Processador de Texto

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

FORMAÇÃO DE MICROSOFT EXCEL 2010

Introdução à Computação. Programas Básicos. ISEP DEI, Angelo Martins 2006 Programas Básicos - 1

Modulo 2 Gestão de Base

BARRA DE PROGRESSO EM VBA

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

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Fundamentos Programação

Excel - VBA. Macrocomandos (Macros) O que é uma macro? São programas que executam

TIC 1 Processamento de Texto UMA INTRODUÇÃO AO PROCESSADOR DE TEXTO MS WORD [André Coutinho]

1) Mostrando uma mensagem. 10 exemplos de macros essenciais no Excel. Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

Modelagem em Engenharia C & A Aula 1- Introdução e informações

Criar sequências/sucessões/progressões com alça de arrastamento

Dispor e organizar folhas de cálculo

Microsoft Excel Ficha prática n. 8

Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários.

O que é e como funciona o VBA no excel?

10. CRIANDO FORMULÁRIOS DO VBA

777 Processador de Texto

Tutorial de Extensibilidade

2-Introdução e Conceitos Básicos das TIC

Índice. Bloco Visual Basic v 0.3 A. Martins Página 1/18

Fichas de Excel. Carlos Alberto Rosa Ferreira Faculdade de Motricidade Humana Universidade Técnica de Lisboa

Crie uma folha de cálculo para registo de dados com Excel e VBA.

Desenho/Formas SmartArt

OpenOffice.org. tutorial apresentação

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Folha de Cálculo. Manual de Apoio. Fórmulas e Gráficos

Olá... Eu sou a Sementinha, vem. Isabel Monteiro da Silva

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha.

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Sistemas de Gestão De Bases de Dados. Criação de Tabelas na vista estrutura. Módulo 2. A Professora: Vanda Pereira

Aula 01 Microsoft Excel 2016

O que é um programa em Visual Basic?

Tutorial 2 Básico do VBA do Excel

Atalho de teclado CTRL + P

Introdução à Computação

FORMAÇÃO DE MICROSOFT EXCEL 2010

Aplicações de Escritório Electrónico

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Aplicações de Escritório Electrónico

Este Exame é individual, sem consulta e com a duração de 90 minutos. Responda às questões no próprio teste, no espaço próprio.

Excel. Aula Prática n o 6 VBA. 1. Inicie o Microsoft Excel e abra o ficheiro "Excel_6" que se encontra no directório APROG.

É qualquer entidade legal, empresas ou um "usuário final (doméstico)".

Integração por Web Services

EISnt Centro de Formação em Tecnologia

Correio electrónico. Agrupamento de Escolas de Albufeira

Gráficos. Utilização do Assistente de Gráficos Propriedades, opções globais e formatação de Gráficos

Módulo 1a: Introdução ao Visual Basic for Applications (VBA) - Eventos, Gráficos e Interfaces gráficas -

Introdução Capítulo 1: Um Olhar sobre as Funcionalidades e Interface do Microsoft Excel

Escola Secundária c/ 3º Ciclo de Ferreira Dias. CURSOS PROFISSIONAIS Ano Letivo 2012 / Atividade 2

Tecnologias da informação e comunicação

Excel 2016 com VBA. Aula 2. Prof. Guilherme Nonino Rosa

atualização gratuita *para clientes Gnotarium com contrato de manutenção ativo.

O Ambiente de Trabalho Candy

FORMAÇÃO DE MICROSOFT EXCEL 2010

GESPOS WINDOWS. Manual do Utilizador GESTÃO DE CORES E TAMANHOS

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS FORMULÁRIOS

Partilha de ficheiros por rede entre Mac e Windows

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Escola Secundária Ferreira Dias Agualva - Sintra CURSOS PROFISSIONAIS. Atividade 23

Manual Prático. Elisabete Aguiar

A Professora: Vanda Pereira. Ambiente de Trabalho. Estrutura de uma Folha de Cálculo. Microsoft Office Excel Módulo 1

UFCD 778 Folha de Cálculo Formadora: Sónia Rodrigues

Criar um recurso para QIM com ActivInspire - Studio

Tabelas Dinâmicas Excel

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Microsoft Excel Macro V. Índice 16-) Formulários ) Gerando código para o Formulário... 49

ÍNDICE. PowerPoint CAPÍTULO 1... CAPÍTULO 2... CAPÍTULO 3...

Capítulo I Preliminares: Visual Basic na planilha eletrônica Excel.

Pelos serviços da Biblioteca Elisabete Ribeiro 2012 Página 1

Centro de Formação em Tecnologia

Dicas de VBA - Personalizar o Friso I

Concepção e Fabrico Assistido por Computador

INICIAÇÃO AO EXCEL Renato Albuquerque abril de 2016

Tutotial Microsoft Word

INFORMÁTICA DE GESTÃO

VBA e Excel I. Macros

Estruturas de Controlo Repetitivo. APROG (Civil) Aula 8

FORMAÇÃO DE MICROSOFT WORD Mário de Almeida Pedro, M. Sc. Janeiro 2014

Variáveis Tipos de Dados

PLANILHA ELETRÔNICA EXCEL

Criar e Apresentar Apresentações

Associações de Ficheiros. Mike McBride Tradução: José Pires

Introdução à Informática. Aula 06 MS WINDOWS XP MS WORD. Prof. Fábio Nelson

Exercícios Data Modeling

Transcrição:

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 DE DESENVOLVIMENTO... 1 2. OBJECTOS E COLECÇÕES... 3 2.1 OBJECTOS ESPECÍFICOS DOS APLICATIVOS... 3 2.2 COLECÇÃO... 4 2.2.1 Aceder a Um Elemento de uma Colecção... 4 2.2.2 Instrução Específica para Percorrer Uma Colecção... 4 3. SELECÇÃO E INTERVALO... 6 4. PROPRIEDADES DAS CÉLULAS... 7 5. CRIAÇÃO DE APLICAÇÕES VBA... 8 5.1 UTILIZAÇÃO DE FORMULÁRIOS... 8 5.2 INSERÇÃO DE OBJECTOS NA FOLHA DE CÁLCULO... 8 5.2.1 Objectos do VBA... 8 5.3 ADICIONAR OUTRAS ROTINAS...10 5.4 UTILIZAÇÃO DE VARIÁVEIS...11 5.5 EXERCÍCIOS...11 I

1. Projectos em Visual Basic para Aplicações 1.1 Introdução No Excel é possivel elaborar pequenas rotinas, chamadas macros, sem ter de programar. Para isso há que recorrer ao gravador de macros do Excel. No entanto, para ser útil, é geralmente necessário alterar posteriormente o código gravado às necessidades do momento. Caso não o faça essas macros gravadas ser-lhe-ão de pouca utilidade. Se o leitor pretende maximizar o potencial do Excel, então terá de programar no Excel, e para isso serão aqui introduzidos conceitos importantes para programação usando-se o Visual Basic para Aplicações. As instruções são as mesmas do Vuaisl Basic. 1.2 Ambiente de Desenvolvimento Desde a versão Excel 97, que se passou a ter na aplicação Excel um ambiente de desenvolvimento em Visual Basic específico para essa aplicação. Para se aceder ao ambiente, seleccione a partir da barra de o menus, Tools>Macro>Visual Basic Editor 1. Também se pode aceder através do atalho de teclas, Alt+F11. O ambiente do VBA é mostrado na figura seguinte. janela de projecto janela das propriedades Figura 1-1 Ambiente de Desenvolvimento do VBA. Tem como principais características, permitir permitir vários projectos em simultâneo, e possuir uma estrutura hierárquica. 1 Também pode tornar visível a barra de ferramentas das Macros, e ter assim sempre disponível botões relativos ao Visual Basic. Para se inserir essa barra deverá escolher do menu, View>Toolbars>Visual Basic. VBA Alberto A. C. Sampaio 1

A janela de Projecto no Excel, lista todos os projectos e seus itens, como exemplificado na figura seguinte: Os botões correspondem a: View Code (ver janela de código) View Object (ver objectos) Toggle Folders (projecto por pastas) Figura 1-2 Janela dos projectos Como se vê existe um projecto para cada livro, com as folhas destes. Por projecto podem-se ter os seguintes componentes 2 : Objectos do Excel Formulários criados pelo programador Módulos de código O código VBA terá de estar associado a estes componentes de um projecto. Logo, todos eles têm associada uma janela de código, aonde se pode introduzir o respectivo código. Estas janelas são como editores de texto, bastante simples, e especializados para código VB. Na parte superior de cada janela especificam-se opções do VB, constantes e variáveis. O restante espaço serve para as rotinas pré-definidas de eventos, e para as rotinas criadas pelo programador. 2 Existem também módulos de classe, que não serão aqui abordados. VBA Alberto A. C. Sampaio 2

2. Objectos e Colecções 2.1 Objectos Específicos dos Aplicativos Para além dos objectos do Visual Basic (ex: formulários, botões, etc.) existem objectos específicos de cada aplicativo que suporta VBA. Estes objectos vão sendo alterados com o surgimento de novas versões dos aplicativos, por isso é conveniente consultar a respectiva ajuda (através de F1). Objectos do Microsoft Excel (Office 2000): são mostrados na figura seguinte. Figura 2-1 Objectos do Microsoft Excel Os objectos do Excel da janela de projecto (ver Figura 1-2) estão obviamente relacionados com alguns destes objectos. Por exemplo, existirá um projecto para cada livro. Para cada objecto dos tipos livro, folha ou gráfico existem rotinas associadas a cada evento que esses objectos suportam. O objecto Application representa a própria aplicação, neste caso o Excel. Em cada momento existe apenas um livro activo, uma folha activa, etc. O application possui propriedades que contêm essas informações, por exemplo: ActiveWorkbook o livro activo (que está a ser usado) ActiveSheet - a folha activa do livro activo ActiveCell a célula activa Muitas destas propriedades não necessitam ser antecedidas do especificador application. Por exemplo, em lugar de Application.ActiveWorkbook.Name, pode-se escrever apenas, ActiveWorkbook.Name. VBA Alberto A. C. Sampaio 3

2.2 Colecção Alguns dos elementos do modelo de objectos são colecções. Uma colecção é um objecto que contém outros objectos, normalmente do mesmo tipo. Os mais relevantes são: Workbooks livros abertos; Worksheets folhas de um livro; Cells células. Para se saber quantos elementos tem uma colecção, todas as colecções possuem a propriedade Count. A colecção Cells é uma propriedade que representa todas as células do objecto a que se aplica. Pode ser aplicada aos objectos aplicação, intervalo (ver mais à frente) e folha. O objecto folha é um elemento da colecção Worksheets. 2.2.1 Aceder a Um Elemento de uma Colecção Cada elemento pode ser identificado pelo nome ou por um número de ordem de criação. Todas as colecções possuem a propriedade Item que permite identificar um elemento da colecção pela sua posição. Por outro lado, sempre que esta propriedade é a propriedade por pré-definição, então não é necessário escrevê-la. Ex: Considerar que o primeiro livro aberto no Excel se chama notas.xls. Então, as duas expressões seguintes produzem o mesmo resultado. Workbooks(1) identifica o primeiro livro aberto, e Workbooks( notas.xls ) identifica especifica/e o livro notas.xls. No caso da colecção Cells, para se identificar uma célula em particular, a colecção tanto pode ser usada de forma unidimensional como bidimensional, sendo neste caso semelhante a uma matriz, tendo por base a posição 1,1. ActiveSheet.Cells(1,2) ActiveSheet.Cells(1) refere-se à célula A2 refere-se à célula A1 Associado a cada célula existe a propriedade Value que contém o valor da respectiva célula. ActiveSheet.Cells(1,1).value=5 insere 5 na célula A1 Para se se tornar um dado objecto activo usa-se o método Activate. 2.2.2 Instrução Específica para Percorrer Uma Colecção A instrução For Each repete um bloco de instruções para cada elemento da colecção (ou vector). A sua sintaxe é: For Each Elemento In Grupo [bloco_instruções] Next [Elemento] Os componentes da instrução são: VBA Alberto A. C. Sampaio 4

Elemento Obrigatório. Uma variável usada para iterar através dos elementos da colecção (Grupo). Para colecções deve ser do tipo Variant, ou objecto (genérico ou não). Para vectores apenas pode ser Variant. Grupo Obrigatório. Nome da colecção ou vector (neste caso não pode ser de tipos definidos pelo utilizador (com Type)). bloco_instruções Opcional. Uma ou mais instruções executadas para cada elemento de Grupo. Podem-se imbricar estes ciclos, mas cada Elemento deve ser único. Exemplo1: Escreve o nome de cada livro aberto (colecção Workbooks).... For Each livro In Workbooks MsgBox livro.name Next livro... VBA Alberto A. C. Sampaio 5

3. Selecção e Intervalo Um intervalo é uma célula ou um conjunto de células num dado intervalo de endereços de células. Para se representar um intervalo existe uma propriedade própria chamada Range. Podemos definir o número de intervalos que pretendermos. Range( A1 ) Intervalo de apenas uma célula, A1. Range( A1, C2 ) Intervalo de 6 células, de A1 a C2. A propriedade Range produz um objecto do tipo Range. Este tipo de objectos também pode ser obtido por outras formas, por exemplo através da propriedade (colecção) Cells. Um objecto Range também possui uma propriedade Cells. A propriedade Range aplica-se a uma folha, a uma aplicação, ou a um objecto Range. Se não se especificar a folha, então aplica-se à folha activa. Quando a propriedade é aplicada a um objecto Range os endereços são relativos a este intervalo. Um intervalo de apenas uma célula é idêntico a uma célula. Alguns exemplos: Range("A1").Value = Range( B1 ).value Worksheets("Sheet1").Range("A1").Value = 10 Uma selecção significa a selecção de um objecto numa janela. A propriedade relativa à selecção chama-se Selection. Aqui interessa-nos a selecção de células. Neste caso Selection produz um objecto do tipo intervalo (Range). Logo é possível usar uma selecção numa expressão que espere um objecto do tipo intervalo. Por exemplo, passar uma selecção de células feita pelo utilizador para uma sub-rotina desenvolvida por nós. VBA Alberto A. C. Sampaio 6

4. Propriedades das Células Frequentemente há necessidade de alterar alguma característica das células, ou do seu conteúdo. Por exemplo, mudar a cor de fundo, ou o estilo do conteúdo das células. Para se alterar o conteúdo de uma célula ou intervalo de células, basta alterar a propriedade respectiva. Por exemplo a mudança de cor do conteúdo consiste em alterar a côr da fonte para o intervalo. Exemplo: Formatação da célula activa a negrito. ActiveCell.Font.Bold = True Algumas propriedades da fonte: Tabela 4-1 Bold Booleana: True activa estilo negrito; False desactiva estilo Color Cor da fonte. Italic Booleana: True activa estilo itálico; False desactiva estilo Size Um valor para o tamenho da fonte (por exemplo 12). Underline Booleana: True activa estilo sublinhado; False desactiva estilo Processo idêntico ocorre com o interior de uma célula e coma moldura. VBA Alberto A. C. Sampaio 7

5. Criação de Aplicações VBA 5.1 Utilização de Formulários A utilização de formulários em VBA é idêntica à utilização no VB. A caixa de ferramentas não é visível até que se insira o primeiro formulário. A inserção pode ser feita através do botão, ou através do menu, Insert>>UserForm. Na figura seguinte é mostrado um formulário contendo um botão. Um formulário pode ser chamado a partir de uma qualquer sub-rotina. Quando chamado ele aparecerá com a folha de cálculo por trás. A utilização de formulários no VBA é idêntica à utilização no VB, pelo que não será aqui feita. Uma das diferenças mais significativas reside nos nomes dos objectos. Por exemplo, o formulário chama-se UserForm em VBA, enquanto se chamava Form em VB. A abordagem para implementação também deverá ser a já utilizada em Visual Basic. 5.2 Inserção de Objectos na Folha de Cálculo Em adição aos formulários, também é possível colocar objectos directamente na folha de cálculo. No Excel esses objectos podem ser de dois tipos: objectos de formulário do Excel, e objectos VBA da caixa de ferramentas. Estes podem ser inclusivamente misturados. Neste texto apenas se abordam os objectos VBA. 5.2.1 Objectos do VBA Utilizando objectos do VBA também se podem colocar objectos na própria folha de cálculo e depois, caso se pretenda, associá-los a rotinas de eventos desenvolvidas pelo programador. Existe uma barra de botões com esses objectos. Previamente deverá fazer aparecer a barra de botões do Visual Basic. Para isso deverá escolher a partir do menu, VBA Alberto A. C. Sampaio 8

View>Toolbars>Visual Basic. Nesta barra existem diversos botões como mostrado na figura seguinte. Premindo-se o botão faz aparecer a caixa de ferramentas. Da caixa de ferramentas seleccionam-se os objectos que se pretendem incluir na folha. A passagem ao modo de desenho é automática assim que se selecciona um controlo da caixa de ferramentas. Após o desenho dos objectos na folha associa-se-lhes o respectivo código. Para se associar código ao objecto prime-se duas vezes o botão esquerdo do rato sobre o objecto, ou se prime o botão direito e escolhe-se a opção View Code. Para se alterarem propriedades do objecto, prime-se o botão direito e escolhe-se a opção Properties. As rotinas associadas aos eventos suportados por esses objectos ficam ligadas automaticamente no VBA aos objectos folha do excel (por exemplo sheet1). Os principais objectos do VBA são: a etiqueta ( Label ), a caixa de texto ( TextBox1 ) e o botão ( CommandButton ). O VBA dá o nome aos objectos inseridos na folha de cálculos adicionando um número sequencial ao tipo de objecto. Por exemplo, a primeira etiqueta terá o nome Label1. Esses objectos são idênticos aos do VB. Tal como no VB esses nomes podem ser alterados. Vamos em seguida exemplificar a utilização do botão. Exemplo 5-1 Elaborar um projecto VBA para somar os valores das células A1 e A2, carregando num botão que deverá ter sido criado na folha de cálculo. Pretende-se que o resultado surja na célula A3. Resolução: Para desenhar o botão, selecciona-se o botão da barra e desenha-se o botão no local pretendido 3. Em seguida altere o texto do botão para Somar. Agora prima duas vezes o botão esquerdo para aparecer o editor de VBA aonde se escreverá o código que permite somar os dois valores. 3 A nossa abordagem de implementação em VB está aqui bastante simplificada. VBA Alberto A. C. Sampaio 9

Private Sub CommandButton1_Click() Cells(3,1) = Cells(1,1) + Cells(2,1) End Sub Para executar, há que voltar à respectiva folha e após serem preenchidas as células A1 e A2 com valores, premir o botão Somar. Antes, deve ter saído do modo de desenho carregando novamente no botão. Como nota final, apesar de ser utilizado o tipo Single, este não tem a precisão adequada, pelo que se recomenda a utilização do tipo Double. 5.3 Adicionar Outras Rotinas Poderiam ser adicionadas outras rotinas à janela de código para além das dos eventos associados aos objectos colocados na(s) folha(s) de cálculo. No caso de se pretender que essass rotinas sejam utilizadas por rotinas noutras janelas, então essas rotinas deverão ser desenvolvidas num módulo de código (module). Para fazer surgir um module seguir o menu do VBA Insert>Module. Vamos colocar o cálculo da soma numa sub-rotina no módulo module1. Sub soma2() Cells(3, 1) = Cells(1, 1) + Cells(2, 1) End Sub E alterar a rotina do evento para: Private Sub CommandButton1_Click() Call soma2 End Sub O resultado é mostrado na figura seguinte. VBA Alberto A. C. Sampaio 10

5.4 Utilização de Variáveis A utilização de variáveis é idêntica ao Visual Basic. Por exemplo, para o exemplo anterior poder-se-ia ter procedido do seguinte modo: Sub soma2() Dim n1 As Single, n2 As Single n1 = Cells(1, 1) n2 = Cells(2, 1) Cells(3, 1) = n1+n2 End Sub 5.5 Exercícios Como exercício implemente a solução para o problema dos desvios. VBA Alberto A. C. Sampaio 11