Programação em Visual Basic for Applications & Excel

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

4 Criação de macros e introdução à linguagem VBA

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

Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda:

Noções básicas sobre macros no Access 97. Construção de algumas macros simples. Noções básicas sobre procedimentos VBA no Access 97

A1;A7 é o mesmo que A1 e A7 A1:A7 é o mesmo que A1 até A7 (abrange A1, A2, A3, A4, A5, A6, A7).

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

EXCEL e VBA. Visual Basic for Applications. Tutoriais de VBA

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

FTIN Formação Técnica em Informática Módulo de Automação de Escritório AULA 05. Prof. Fábio Diniz

2. Altere o nome da folha1 para Stocks e da folha2 para Vendas.

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Visual Basic for Applications

Tarefa Orientada 2 Criar uma base de dados

APOSTILA DE VBA PARA EXCEL MARCOS DE BARROS OUTUBRO DE RISK MANAGEMENT

Folha de Cálculo (Excel)

Tutorial 1 - Básico do VBA do Excel

1. Ambiente de Trabalho

Visual Basic Formação Profissional DATAS HORÁRIO DURAÇÃO LOCALIZAÇÃO OBJECTIVOS

Índice. Excel Básico e Intermédio. Parte 1

OBJECTIVO Primeiros passos no processamento de texto

Manipulando Strings no VBA (Replace, Mid e InStr)

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

7.3. WINDOWS MEDIA PLAYER 12

BARRA DE PROGRESSO EM VBA

Findo o processo de normalização, obtemos o conjunto de tabelas indicado na tabela 1.28.

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

Visual Basic for Applications: # 1

Fórmulas e Funções 7

Sumário. Capítulo l - Introdução ao VBA

Guia de Estudo Folha de Cálculo Microsoft Excel

Oficina de Construção de Páginas Web

Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel

Módulo III. Folhas de Cálculo

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico

Manual. Formações Modulares Certificadas. A Relha Cooperativa de Serviços CRL. Formador/a: Ricardo Cabral. Data: 05/2013. N.

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

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

Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel

Introdução à programação em VBA ÍNDICE

Excel Macros e Visual Basic for Applications. Índice

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Sistema Operativo em Ambiente Gráfico

Esta aplicação permite desempenhar tarefas relacionadas com o cálculo, análise e apresentação gráfica de dados, de uma forma rápida e eficaz.

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

COMO OTIMIZAR A SUA PLANILHA ATRAVÉS DA GRAVAÇÃO DE UMA MACRO EM EXCEL

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Aplicações de Escritório Electrónico

Introdução à realização de macros

Criação de Páginas Web - MS Word 2000

Tarefa Orientada 18 Tabelas dinâmicas

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

2 echo "PHP e outros.";

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO

Procedimentos para a divulgação de eventos no site da ECUM

Aplicações de Escritório Electrónico

Manual de Administração Intranet BNI

Os elementos básicos do Word

Sumário. Visual Basic Application para Excel. Prof. Luiz Bianchi Universidade Regional de Blumenau

Manipulando Strings no VBA (Replace, Mid e InStr)

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

Ambiente de trabalho. Configurações. Acessórios

MANUAL DO EXCEL. Um campo é um espaço que contém determinada informação (ex: Nome do cliente X, Telefone do Sr. Y)

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

MICROSOFT EXCEL AVANÇADO

Trabalhando com Arquivos de Texto no VBA

ISCAP. Algoritmia. Pág. 1. Ana Paula Teixeira

Aplicações de Escritório Electrónico

AMBIENTE DE PROGRAMAÇÃO PYTHON

NOÇÕES ELEMENTARES DE BASES DE DADOS

Javascript 101. Parte 2

Conteúdo de Formação

EDITOR DE VISUAL BASIC FOR APPLICATIONS...

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Microsoft Windows. Aspectos gerais

JSP - ORIENTADO A OBJETOS

Aplicações de Escritório Electrónico

MANUAL DE UTILIZADOR Aplicativo: Análise do Estudo da Lição da Escola Sabatina. 0. INTRODUÇÃO ARRANQUE DO APLICATIVO Início...

Microsoft Office FrontPage 2003

FICHA ORIENTADA Nº1. Barra de fórmulas. Área de trabalho T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O

Escola Superior de Tecnologias e Gestão Instituto Politécnico de Portalegre MS EXCEL. Fevereiro/ Portalegre

O que é o JavaScript?

Table of Contents. PowerPoint XP

Referencial do Módulo B

1. Criar uma nova apresentação

Tutorial 2 Básico do VBA do Excel

Portal AEPQ Manual do utilizador

Configuração do Ambiente de Trabalho

ZS Rest. Manual Avançado. Menus. v Certificado

Relatório SHST

Introdução aos cálculos de datas

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

ÍNDICE... 2 INTRODUÇÃO... 4

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

Sub AcessaWeb(url, x) ' recebe uma url para pesquisar e devolve uma planilha ' Solicita a criação da planilha x

OBJECTIVO Utilização da Função ProcV e listas pendentes

Transcrição:

Programação em Visual Basic for Applications & Excel Ricardo Campos (ricardo.campos@ipt.pt) Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

Autoria Bibliografia Autoria Esta apresentação foi desenvolvida por Ricardo Campos, docente da Unidade Departamental de Tecnologias de Informação e Comunicação do Instituto Politécnico de Tomar. Encontra-se disponível na página web do autor [http://www.ccc.ipt.pt/~ricardo], no link Publications - Syllabus, ao abrigo da seguinte licença: Mais detalhes em: http://creativecommons.org/licenses/by-nc/3.0/deed.pt O uso de parte ou da totalidade da apresentação pressupõe a utilização da seguinte referência: Campos, Ricardo. (2014). Apresentação de Programação em Visual Basic for Applications & Excel. 77 slides. A sua disponibilização em formato PPT pode ser feita mediante solicitação (email: ricardo.campos@ipt.pt)

Autoria Bibliografia Bibliografia Recursos: M.J.Sousa Domine a 110% Excel 2010 FCA Editora de Informática A.Carvalho Exercícios Resolvidos com Excel para Economia & Gestão FCA Editora de Informática

Autoria Bibliografia Bibliografia Recursos on-line (tutoriais): A. Silva (2009). Programação em VBA. Texto Introdutório http://www.dei.isep.ipp.pt/~tmatos/aprog_civil_20132014/programming-in-vba-v3.pdf Júlio Battisti http://www.juliobattisti.com.br/cursos/excelavancado/modulo5.asp http://www.juliobattisti.com.br/cursos/excelavancado/modulo6.asp Nota: Não é possível garantir a existência futura dos endereços (URL s), citados nos recursos on-line. Como se sabe, os endereços são virtuais e a sua vida útil depende única e exclusivamente dos seus autores e proprietários.

Visual Basic for Applications Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

História Separador Programador História do VBA Editor VBA Linguagem de programação utilizada por aplicações Windows; Objetivo: automatização de tarefas rotineiras; Microsoft lança Office 95 cujas aplicações (Excel, Word, PowerPoint, etc) incluem VBA, adaptação da linguagem de programação Visual Basic (lançada em 1991) ao ambiente das aplicações Office;

História Separador Programador Editor VBA Ativar o Separador Programador Não é necessária nenhuma instalação extra para ter acesso ao VBA. Basta: Activar o separador Programador Ficheiro Opções Personalizar Friso Seleccionar o separador Programador.

História Separador Programador Painel das Propriedades Editor VBA Apresenta as propriedades do projecto seleccionado. Propriedades do objecto (View-Properties)

História Menu Programador Painel de Código Editor VBA Código (View-Code) Área destinada à escrita de código.

História Menu Programador Painel do Projecto Editor VBA Explorador do Projecto (View-Project Explorer) Apresenta uma listagem dos projectos e de todos os itens nele contidos. Cada livro do excel tem um projecto associado (ex: VBAProject(Livro1)

Objectos Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

Objectos do Excel Objectos de Interacção Pesquisador de Objectos Objectos Mais Utilizados no Excel Application: objecto que representa o próprio Excel. Exemplo: Application.ActiveWindow.ActiveCell.Font.Name = Helvetica Workbooks: objecto que representa o ficheiro (livro) do Excel. Exemplo(s): Workbooks.Open("Dados.xls"); ThisWorkbook.Close Worksheets: objecto que representa as folhas do Excel. Na hierarquia situase abaixo de Workbook. Exemplo: Worksheets( Livro1").Select Range: utilizado para representar uma ou mais células de uma worksheet. Exemplo: Range( a2 ).Value = 3 Cells: uma outra forma de se referir a uma célula do Excel. Exemplo: Cells(2,2).Value = 6 Mais: http://www.juliobattisti.com.br/cursos/excelavancado/modulo6.asp

Objectos do Excel Hierarquia de Objectos Objectos de Interacção Pesquisador de Objectos Application Workbooks Worksheets Range O objecto Application contém o objecto Workbook; O objecto Workbooks contém o objecto Worksheets; O objecto Worksheets contém o objecto Range.

Objectos do Excel Objectos de Interacção Pesquisador de Objectos Propriedades, Métodos e Eventos Os objectos são caracterizados por: Propriedades; Métodos; Eventos;

Objectos do Excel Objectos de Interacção Propriedades Pesquisador de Objectos Propriedades: características dos objectos (exemplo: cor, a designação, etc). No exemplo abaixo é possível ver as propriedades da Folha1: A sintaxe genérica para nos referirmos a uma propriedade de um objecto é a seguinte: Objecto.Propriedade Exemplo: Worksheets( Folha1).Range( A9 ).Value = 5

Objectos do Excel Objectos de Interacção Métodos Pesquisador de Objectos Métodos: representam procedimentos que executam uma determinada tarefa; A sintaxe genérica para nos referirmos a um método de um objecto é a seguinte: Objecto.Método (argumento 1, argumento 2,.) Exemplo: Range( A9 ).Select

Objectos do Excel Objectos de Interacção Eventos Pesquisador de Objectos Eventos: ocorrências habitualmente despoletadas pelo utilizador (exemplo: a inserção de uma nova folha de cálculo no livro) que implicam a ocorrência de uma resposta automática; Para que um objecto possa reagir a um dado evento deverá existe o event handler (tratador de eventos), que especifica o que fazer caso esse evento ocorra. Sem isso, o objecto detectará esse acontecimento mas não saberá o que fazer. Nenhuma resposta será produzida;

Objectos do Excel Objectos de Interacção MsgBox Pesquisador de Objectos MsgBox: mostra uma mensagem no Excel. Sintaxe: MsgBox (mensagem, características, título) Mensagem: texto a apresentar; Caracteristicas: especifica os diferentes tipos de botões; Título: título a apresentar na MsgBox; MsgBox ( Tem a certeza?, vbyesno + vbquestion, Confirmação ) A MsgBox serve para apresentar uma mensagem ao utilizador, mas também para recolher informação.

Objectos do Excel Objectos de Interacção MsgBox Pesquisador de Objectos Sintaxe: variável = MsgBox (mensagem, características, título) O valor numérico a devolver depende do botão premido pelo utilizador: VbOk 1 VbCancel 2 VbAbort 3 VbRetry 4 VbIgnore 5 VbYes 6 VbNo 7 If MsgBox("Tem a certeza?", vbyesno + vbquestion, "Confirmação") = vbyes Then Selection.ClearContents End If

Objectos do Excel Objectos de Interacção InputBox Pesquisador de Objectos InputBox: permite que o utilizador introduza dados. Sintaxe: variável = InputBox (mensagem, título) nome = InputBox ("Indique o seu nome", "Introdução de nomes")

Objectos do Excel Objectos de Interacção Pesquisador de Objectos Pesquisador de Objectos O pesquisador dos objectos permite ver uma lista dos procedimentos em cada objecto do nosso projecto, seja ele um módulo, um formulário, uma folha, etc. Um duplo clique em cima do procedimento permite ter acesso automático a ele; O acesso ao pesquisador de objectos faz-se através do menu View Object Browser ou em:

Variáveis Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

Operadores Diferentes tipos de Operadores Aritméticos +; -; *; / ^ (exponenciação); / (divisão inteira); mod (retorna o resto inteiro de uma operação de divisão) Relacionais = (igual); <> (diferente); > (maior); >= (maior ou igual); < (menor); <= (menor ou igual) Lógicos And; Or; Not Texto & (concatenação) Outros Caracteres (linha de comentários) Variáveis Arrays

Operadores Noção de Variável. Tipos de Dados. Declaração de Variáveis Contêm dados temporários; Embora não seja obrigatório, é uma boa prática declarar variáveis; O tipo de informação a guardar numa variável depende do tipo de dados: Byte (0 a 255); Boolean (True ou False); Integer; Long; Single; Double; Currency; Date; String; Object (serve para suportar qualquer tipo de objecto do excel, i.e., livro, folha, intervalo de células); Variant (tipo de dado default para variáveis não declaradas) As declarações de variáveis são feitas com recurso a Dim: Dim result as long Dim description as string Dim startdate, enddate as date Dim Range_1 as object Variáveis Arrays

Operadores Variáveis Atribuir Valores a Variáveis Arrays <NomeDaVariável> = <Valor> Total = Valor_1 + Valor_2 Resultado = sqrt (Total)

Operadores Variáveis Âmbito das Variáveis Arrays Zona do programa em que a variável é conhecida; Public numero as Integer As variáveis públicas ficam disponíveis para todos os procedimentos, de todos os módulos, em todas as aplicações; Private numero as Integer As variáveis privadas ficam disponíveis para o módulo em que são declaradas; Dim numero as Integer Visível apenas no próprio procedimento;

Operadores Variáveis Constantes Arrays Nome que é dado a um valor numérico ou a uma cadeia de caracteres. Útil no caso de um valor constante ser utilizado múltiplas vezes ao longo do programa Const nome as tipo = expressão Const PI = 3,14159265 O VB tem várias constantes incorporadas precedidas pelas letras xl ou vb

Operadores Variáveis Arrays Tipos de Dados definidos pelo Utilizador Criação de um tipo de dados que representa uma estrutura com dados de diferentes tipos. Esta definição deverá ocorrer no início do módulo; Type DadosPessoais Nome As String Idade As Integer Nasc As Date CC As Long End Type

Operadores Variáveis Arrays Tipos de Dados definidos pelo Utilizador Como utilizar as estruturas de dados? Dim Pessoa As DadosPessoais Pessoa.Nome = InputBox ("Indique o seu nome", Nome") Pessoa.Idade = InputBox ("Indique a sua idade", Idade") Pessoa.Nasc = InputBox ("Indique a sua data de nascimento", Data") Pessoa.CC = InputBox ("Indique o seu número de cartão do cidadão", CC") MsgBox Pessoa.Nome & Chr(13) & "Data de Nascimento: " & Pessoa.Nasc & Chr(13) & CC: " & Pessoa.CC

Operadores Variáveis Noção de Array Arrays Um Array é um tipo especial de variável, que pode armazenar diversos valores numa única variável; Cada valor armazenado no Array é um elemento do conjunto. Exemplo: Podemos criar um Array para armazenar os nomes dos meses do ano. Com isso teríamos um Array de 12 elementos Cada elemento de um Array, é acedido através do nome da variável Array e de um índice.

Operadores Variáveis Declaração de Arrays Arrays Para declarar um Array chamado dias, com 7 elementos, utilizaríamos o seguinte comando: Dim dias(7) As String ou Dim dias(1 to 7) As String De seguida atribuímos os valores para os dias da semana: Dias(1)= "Segunda-feira Dias(2)= "Terça-feira".. Dias(7)= "Domingo"

Operadores Arrays Multi-Dimensionais Variáveis Arrays Um array pode também armazenar dados multidimensionais. Suponha-se a seguinte tabela de vendas: 2012 2013 CDs 200 40 DVDs 300 100 Dim Arr(2,2) As Integer ou Dim Arr(1 to 2, 1 to 2) As Integer arr(1,1) = 200 arr(1,2) = 40 arr(2,1) = 300 arr(2,2) = 100

Operadores Variáveis Arrays de Arrays Arrays É possível criar um array do tipo Variant e preenche-lo com arrays de diferentes tipos: Dim Arr(2) As Variant Arr(1) = ArrA() Arr(2) = ArrB() //declara array com 2 elementos Sendo que ArrA é um array de inteiros: Dim ArrA(5) As Integer Sendo que ArrB é um array de strings: Dim ArrB(5) As String MsgBox Arr(1)(2) MsgBox Arr(2)(2) //Imprime o valor que se encontra na posição 2 de ArrA //Imprime o valor que se encontra na posição 2 de ArrB

Estruturas de Controlo Condicional Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

If-Then Select Case If Then As estruturas de controlo repetitivo permitem efectuar testes a condições para, em função do resultado, executar determinadas instruções; Não existe qualquer acção a executar quando a condição é falsa: If condicao Then Instruções End If If faltas > 3 Then MsgBox Perde o bónus End If

If-Then Select Case If Then Else Estrutura baseada no teste de uma condição. Se essa condição for verdadeira desencadeará a execução das Instruções1, se for falsa desencadeará a execução das Instruções2. Análoga à função SE do Excel If condicao Then Instruções1 Else Instruções2 End If If faltas > 3 Then MsgBox Perde o bónus Else MsgBox Ganha o bónus End If

If Then Else (aninhados) Permite a selecção de uma entre várias alternativas. É possível embutir um qualquer números de blocos ElseIf dentro de uma dada estrutura condicional; If condicao1 Then Else Instruções1 If condicao2 Then Instruções2 Else End If End If If-Then Select Case Instruções3

If-Then Select Case Select Case Executa um de vários grupos de expressões consoante o valor de uma expressão. Projectada para evitar os If-Then-Else (aninhados). Select Case expressão Case Condição1.. Instruções 1 Case Condiçãon Instruções n Case else End Select Instruções a executar no caso das anteriores serem falsas

If-Then Select Case Select Case Dim Mult as double Mult = Range( a1 ).Value * Range( b1 ).Value Select Case Mult Case Is < 10 MsgBox Menor que 10 Case Is < 20 MsgBox Menor que 20 Case else MsgBox Maior do que 20 End Select

Estruturas de Controlo Repetitivo Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

While For While As estruturas de repetição permitem executar conjuntos de instruções de forma cíclica; Repete um conjunto de instruções enquanto a condição for verdadeira. Se a condição for falsa no primeiro teste, o ciclo não é executado. Do while condicao Loop Instruções Repete um conjunto de instruções enquanto a condição for verdadeira. Como o teste é feito no fim do ciclo, este é executado pelo menos uma vez, mesmo se a condição for falsa. Do Instruções Loop while condicao

While For While Dim Contador as Integer Dim Total as double Contador = 2 Total = 0 Do while Range( a & Contador).Value <> Sul Total = Total + Range( b & Contador).Value Contador = Contador + 1 Loop Range( d2).value = Total

While For For-To-Next Repete um número de instruções um determinado número de vezes. Usada quando sabemos o número de vezes que uma determinada secção de código deve ser repetida. Baseia-se na existência de um contador que incrementa automaticamente o conteúdo da variável contador (variável de controlo do ciclo) cada vez que o ciclo funciona. For contador = inicio to fim Instruções Next contador Por defeito a variável contador produz um incremento de 1. No entanto, é possível utilizar a palavra Step para especificar um incremento diferente. For contador = inicio to fim Step x Instruções Next contador

While For For-To-Next Dim Contador as Integer Dim Total as double Total = 0 For Contador = 2 to 15 Total = Total * Contador Next Contador Range( d2).value = Total

For-Each-In-Next While For Repete um número de instruções um determinado número de vezes. Usada quando não sabemos à partida o número de vezes que uma determinada secção de código deve ser repetida. Baseia-se na existência de uma colecção (Range, Worksheet, Workbook) ou array. Não é possível executar um loop for each em objectos individuais For each ItemNoGrupo in GrupoDeItems Instruções Next ItemNoGrupo

For-Each-In-Next While For Exemplo. Suponha que se pretende ocultar todas as linhas (entre o range C1 e C10) que contenham o valor 0 Sub hide_zero() Dim rng As Range Dim cell As Range Set rng = Range("C1:C10") For Each cell In rng If cell.value = 0 Then cell.entirerow.hidden = True End If Next Variáveis que são objectos (range, etc) são assignados valores através da palavra set Dim declara o nome da variável e o tipo; Set atribui o valor à variável. End Sub

Funções VBA Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

Funções de Texto Funções de Data/Hora Funções de Texto Len(string) Determina o tamanho da String que foi passada como parâmetro para a função. Exemplo: MsgBox Len("Este é um exemplo de uso da função Len!!") retorna 41 caracteres; Lcase(string) Converte para minúsculas, a String que foi passada como parâmetro para a função; UCase(string) Converte para MAIÚSCULAS, a String que foi passada como parâmetro para a função

Funções de Texto Funções de Data/Hora Funções de Texto Left(string,n) Retorna um número especificado de caracteres, a partir do início de uma String. Note que espaços também são considerados; Right(string,n) Retorna um número especificado de caracteres, a partir do fim de uma String. Note que espaços também são considerados; Mid(String, posicao_inicio, n) Retorna um número especificado de caracteres, a partir de uma posição especificada, dentro da String. Note que espaços também são considerados; String(n, caracter) Retorna um determinado caractere, um número especificado de vezes. Exemplo: MsgBox String(35,"*")

Funções de Data/Hora Funções de Texto Funções de Data/Hora Date() Retorna a data atual do sistema. Exemplo: MsgBox "Data do Sistema: " & Date() Time() Retorna a hora atual do sistema. Exemplo: MsgBox "Data do Sistema: " & Time() Day(data) Recebe como parâmetro uma data, e retorna um número entre 1 e 31, indicando o dia do mês.; Month(data) Recebe como parâmetro uma data, e retorna um número entre 1 e 12, indicando o mês do ano.

Funções de Data/Hora Funções de Texto Funções de Data/Hora Now() Retorna a hora e a data atual do sistema. Exemplo: MsgBox "Data e Hora do Sistema: " & Now() MonthName() Recebe como parâmetro um número, indicativo do mês do ano (1 - Janeiro, 2 - Fevereiro, e assim por diante). Exemplo: MsgBox "Mês do ano: " & MonthName(Month(Date)) DateDiff(intervalo, data1, data2) Determina o número de intervalos (em dias, trimestres, semestres, anos, etc), entre duas datas. O parâmetro intervalo é uma String que diz que tipo de intervalo vamos calcular yyyy (anos); q (trimestres); m (meses); d (dias); w (semanas); h (horas); n (minutos); s (segundos). Exemplo: DateDiff("m","22/04/1500","31/12/1999")

Funções de Data/Hora Funções de Texto Funções de Data/Hora DateAdd(intervalo, número de intervalos, data) Esta função pode ser utilizada para determinar uma data futura, tendo por base uma data fornecida, o tipo de período a ser acrescentado (dias, meses, anos, etc), e o número de períodos a serem acrescentados. Exemplo: DateAdd("m",1000,"22/04/1500") //mil mêses após 22/04/1500 Year(data) Recebe como parâmetro uma data, e retorna o ano. Exemplo: MsgBox "Ano atual: " & Year(Date( ))

Programando em VBA Ricardo Campos [ h t t p : / / w w w. c c c. i p t. p t / ~ r i c a r d o ] Programação em Visual Basic for Applications & Excel

Procedimentos Sub-Rotinas (Macros) Tipos de Procedimentos Funções Um programa é um conjunto de instruções com vista a realizar um determinado conjunto de tarefas: No VBA os programas são chamados de procedimentos. Cada módulo pode conter diversos procedimentos; Existem dois tipos de procedimentos: Sub-rotinas (macros); Funções;

Procedimentos Sub-Rotinas (Macros) O que são macros? Funções Programa escrito em VBA que inclui instruções sobre como executar determinada tarefa. Útil quando uma série de acções repetidas é utilizada frequentemente; As macros ou sub-rotinas não recebem parâmetros do exterior; O corpo da rotina é composto por um conjunto de instruções que devem estar localizadas em linhas diferentes; Sub nomerotina() End Sub instruções Sub ola() End Sub MsgBox Olá

Procedimentos Sub-Rotinas (Macros) Funções Segurança Ativação de Macros Habilitar as macros; Ficheiro Opções Centro de Fidedignidade Definições do Centro;

Procedimentos Sub-Rotinas (Macros) Funções Livros com Permissão para Macros Uma vez escrita a macro, é necessário guardar o livro de excel com o tipo: Se não o fizermos vamos obter a seguinte mensagem:

Procedimentos Gravador de Macros Sub-Rotinas (Macros) Programando em VBA Funções Formas de Criar uma sub-rotina (macro) Existem duas formas de criar uma sub-rotina (macro): Com recurso ao gravador de macros; Programando em VBA;

Procedimentos Sub-Rotinas (Macros) Funções Como Gravar uma Macro? Gravador de Macros Programando em VBA Programador Gravar Macro; Ver Macros Gravar Macro;

Procedimentos Sub-Rotinas (Macros) Funções Onde Guardar a Macro? Gravador de Macros Programando em VBA Se pretende que a macro fique sempre disponível deve seleccionar a opção guardar macro em novo livro pessoal de macros. As instruções serão gravadas numa pasta oculta chamada Pessoal.xls Clique em OK. Efectue as acções de gravação. Clique em Terminar Gravação

Testar a Macro Procedimentos Sub-Rotinas (Macros) Funções Gravador de Macros Programando em VBA Para testar a macro: Ver Macros Ver Macros - Executar;

Procedimentos Gravador de Macros Sub-Rotinas (Macros) Programando em VBA Funções Criar um Módulo. Inserir Procedimento. É possível criar uma macro a partir do zero sem utilizar o gravador de macros; Programador Visual Basic Para iniciar a programação é necessário primeiro criar um módulo (elemento que contém o código VBA): De seguida é necessário inserir um procedimento: Insert - Procedure

Procedimentos Sub-Rotinas (Macros) Funções Âmbito do Procedimento Gravador de Macros Programando em VBA Public significa que a função ficará disponível para todos os livros do Excel; Private significa que a função ficará disponível apenas para o livro aberto;

Procedimentos Sub-Rotinas (Macros) Funções Exemplos de Sub-Rotinas Gravador de Macros Programando em VBA Exemplo 1: Crie uma macro que proceda à soma dos valores 34 e 66 introduzidos nas células A1 e A2; sub First() Range("A1").Value = 34 Range("A2").Value = 66 Range("A3").Formula = "=A1+A2" Range("A1").Select End Sub Para testar a macro: Run - Run;

Procedimentos Sub-Rotinas (Macros) Funções Exemplos de Sub-Rotinas Gravador de Macros Programando em VBA Exemplo 2: Com recurso ao gravador de macros, crie uma macro ( Limpar ) que permita apagar o conteúdo de qualquer célula. Posteriormente edite a macro de forma a introduzir uma MsgBox que obrigue o utilizador a confirmar a acção Sub Limpar() If MsgBox("Tem a certeza?", vbyesno + vbquestion, "Confirmação") = vbyes Then Selection.ClearContents End If End Sub

Procedimentos Sub-Rotinas (Macros) Funções Exemplos de Sub-Rotinas Gravador de Macros Programando em VBA Exemplo 3: Pretende-se criar uma macro Soma que solicite ao utilizador a introdução de dois valores (X e Y), procedendo posteriormente à sua soma e à apresentação dos resultados através de uma MsgBox; Sub Soma() Dim x As Integer Dim Y As Integer Dim Soma As Integer x = InputBox("Introduza X", "Introdução de Dados") Y = InputBox("Introduza Y", "Introdução de Dados") Soma = x + Y MsgBox "Soma de " & x & "+" & Y & "=" & Soma End Sub

Procedimentos Sub-Rotinas (Macros) Funções Exemplos de Sub-Rotinas Gravador de Macros Programando em VBA Exemplo 4: Pretende-se criar uma macro com o nome Celula que possibilite a introdução de um texto numa célula à escolha do utilizador; Sub Celula() Dim Cell As String Dim Texto As String Cell = InputBox("Especifique a Célula", "Introdução de Dados") Texto = InputBox("Introduza o Texto", "Introdução de Dados") ActiveSheet.Range(Cell) = Texto End Sub

Protecção de Macros Procedimentos Sub-Rotinas (Macros) Funções Gravador de Macros Programando em VBA É possível evtar o acesso ao código introduzido: Tools VBAProject Properties;

Procedimentos Gravador de Macros Sub-Rotinas (Macros) Programando em VBA Funções Associar Macros à Barra de Inicialização Rápida

Procedimentos Sub-Rotinas (Macros) Funções Associar Macros a um Botão Gravador de Macros Programando em VBA Programador Inserir Botão Atribuir Macro

Procedimentos Sub-Rotinas (Macros) Noção de Função Funções Conjunto de declarações que retornam um valor; Exemplos de funções no Excel são a soma(), etc; A função é identificada pelo nome, pelo número e pelo tipo de parâmetros recebidos, e tem como objectivo executar um conjunto de instruções e produzir um valor final. Function nomefunção (parametro1, parametro2) End Function nomefunção = valor A função pode ser chamada noutra parte do código das três seguintes formas: Variavel = nomefunção (a, b) //Se a função retorna um valor Call nomefunção (a,b) nomefunção a, b //pode-se chamar uma função ou macro com Call //se Call não for utilizada os parêntesis não são usados

Procedimentos Sub-Rotinas (Macros) Funções Funções vs Sub-rotinas (macros) Funções começam com a palavra Function e terminam com a palavra End Function. Sub-rotinas começam com a palavra Sub e terminam com a palavra End Sub; As funções retornam uma valor. As sub-rotinas não; As funções têm uma variável com o mesmo nome da função para retornar o valor. As sub-rotinas não; As funções podem ser usadas em células de fórmulas no Excel. As sub-rotinas não; As sub-rotinas podem ser atribuídas a menus, a botões, etc. As funções não. Ambas podem obter propriedades de informações de qualquer objecto, tais como valores de células da folha de cálculo.

Procedimentos Sub-Rotinas (Macros) Criar uma Função Funções Processo idêntico ao da criação de uma sub-rotina; Insert - Module; Insert - Function;

Procedimentos Sub-Rotinas (Macros) Criar uma Função Funções Function Saldo (Receitas As Double, Despesas As Double) End Function Saldo = Receitas - Despesas As funções criadas são adicionadas no Excel à categoria de funções Definidas pelo utilizador ;

Procedimentos Sub-Rotinas (Macros) Passagem de Parâmetros Funções A passagem de parâmetros para uma função pode ser feita de duas formas: ByVal: indica que o parâmetro é passado por valor. Isto significa que a função utiliza uma cópia interna dos parâmetros ByRef: indica que o parâmetro é passado por referência. Este tipo de passagem de parâmetros é muito útil no caso de pretendermos que a função devolva mais do que um resultado a = 100 b = 400 Imprime valores a e b Mult a, b //Chama o procedimento Imprime valores a e b Mult (ByRef x as Integer, ByVal y as Integer) x = x * 1.1 Y = y * 1.1

Procedimentos Sub-Rotinas (Macros) Exemplos de Funções Funções Exemplo 1: Defina uma função (PDesconto) que calcule o preço de um produto após a aplicação de uma taxa de desconto Function PDesconto(Valor As Double, Taxa As Single) As Double PDesconto = Valor - Valor * Taxa End Function

Procedimentos Sub-Rotinas (Macros) Debug de Funções Funções View Immediate Window Utilize o código? NomeDaFuncao (arg 1, arg 2, ) no painel imediato para devolver o resultado da função. Utilize o breakpoint para suspender a execução de um código. Dê um clique na linha de código onde quer proceder à suspensão. De seguida escreva novamente no painel imediato o seguinte código:? NomeDaFuncao (arg 1, arg 2, ) Utilize a instrução Debug.print NomeDaVariável (no próprio código) para ver os resultados de uma expressão na janela de depuração. Escreva novamente no painel imediato o seguinte código:? NomeDaFuncao (arg 1, arg 2, )