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

Documentos relacionados
Informática II Cap. 4-4

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

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

Variáveis Tipos de Dados. APROG (Civil) Aula 2

Variáveis Tipos de Dados

Exercícios de VBA. Paulo Melo Joana Dias Óscar Lourenço 17 de Maio de 2006

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

Estruturas de Decisão. APROG (Civil) Aula 6

Informática II Ficha 4_resolução

Programação de Computadores usando VBA

Introdução à Computação

Informática II Cap. 4-3

Visual Basic. III Procedimentos. CFAC Concepção e Fabrico Assistidos por Computador. João Manuel R. S. Tavares

Exercícios Data Modeling

CFAC: Visual Basic: III - Procedimentos

Fundamentos Programação

Programação de Computadores III

Programação de Computadores III

Módulo 3 Subprogramas

Ficha Informativa n.º 2. Variavéis, tipos de dados e constantes em PHP

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.

Introdução à Programação. João Manuel R. S. Tavares

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Subprogramação. Leonardo Gresta Paulino Murta.

Variáveis primitivas e Controle de fluxo

Informática II Cap. 4-2

Páginas seleccionadas

Métodos de Programação I Ana Maria de Almeida

Introdução à Programação

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

Compilador de LP3 para C3E e P3

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

SEBENTA INTRODUÇÃO Á ALGORITMIA

Sintática: como é escrito cada elemento da linguagem de programação.

Programação I Estruturas de Repetição

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

Linguagens de Programação

FACCAT Sistemas de Informação. Estruturas de Dados

Como construir um compilador utilizando ferramentas Java

Introdução à Computação

Programação I Apresentação

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

3. Linguagem de Programação C

Aula 15 - Aula sobre Funções e Procedimentos

Programação de Computadores I Procedimentos e Funções PROFESSORA CINTIA CAETANO

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

Análise Semântica e Tratamento de Erros Dependentes de Contexto

Escrever scripts de PHP com HTML

Edição Nº 6 29 de Maio de 2018 ISSN Print: ISSN Online: X DOI:

Explicação do programa:

MODULARIZAÇÃO - PARTE 1

Informática II Ficha 6_Resolução

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções

TÉCNICO DE INFORMÁTICA - SISTEMAS

Universidade Estadual do Maranhão Curso de Engenharia da Computação Mestrado em Engenharia da Computação e Sistemas

Trabalho final Formulário com VBA

Métodos de Programação I Ana Maria de Almeida

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Introdução à Programação

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica

AMBIENTE DE PROGRAMAÇÃO PYTHON II

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Informática para Ciências e Engenharias 2013/14. Teórica 3

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

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

Introdução à Lógica de Programação

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Objectos, Propriedades e Métodos

Aula 11: Modularização

Programação: Vetores

DESENVOLVIMENTO DE SOFTWARE

Linguagem de programação: Pascal

Programação I Estruturas de Decisão

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Mestrado em Engenharia Física Tecnológica

Programação estruturada no Fortran 90-1

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Modularidade - Funções e Procedimentos

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Introdução à Computação

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

Aula 4: Introdução à Linguagem C++

Paradigmas de Linguagens de Programação. Subprogramas

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

As funções são blocos de instruções que facilitam o entendimento do código. Sua sintaxe é:

Blocos, Escopo de variáveis, procedimentos e funções. 1- Blocos

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Bertolo Por que Laços no VBA?

Programação em SGDB s

Working 03 : Conceitos Básicos I

Métodos Computacionais em Física

O que é um programa em Visual Basic?

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

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Transcrição:

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 conjunto de código que visa resolver um determinado problema. Embora o programa possa ser concebido usando simplesmente um procedimento, a realidade é que, ou pela sua extensão ou por questões de ordem semântica, em geral preferimos dividir a codificação do programa em vários procedimentos que estão relacionados entre si. Ao fazer a distribuição do código por vários procedimentos, dividindo sucessivamente a tarefa principal em tarefas mais elementares, estamos a fazer aquilo a que se chama de programação estruturada. Podemos definir o nosso programa como sendo um procedimento principal que faz algumas coisas e que chama outros procedimentos para fazer outras coisas. Cada um desses procedimentos pode ainda, se necessário, chamar mais procedimentos. Quando um procedimento precisa de chamar outro, basta-lhe indicar o nome desse tal procedimento e, se necessário, passar-lhe os respectivos argumentos. Deve-se usar a lógica para dividir o programa em vários procedimentos. Um procedimento deve representar uma única operação funcional Decidir quando uma operação particular deve ter uma funcionalidade isolada é em grande parte uma questão de preferência e de experiência. Vantagens em separar o programa em diversas sub-rotinas: Se quisermos usar uma rotina VBA repetidamente, precisamos escrever essa rotina somente uma vez. Fazer isso também facilita a sua edição porque temos que fazer alterações somente num lugar. Podemos separar o código VBA em segmentos pequenos e lógicos que são mais fáceis de ser codificados, corrigidos e mantidos. 2

Estruturada Ao contrário do que acontece em outras linguagens de programação, a definição de um procedimento em VBA nunca pode ser feita dento de outro procedimento. Em VBA a definição dos procedimentos é sempre independente, isto é, a definição de um procedimento só pode começar depois de acabar a definição de outro. 3

Sub ou Function Em VBA, quando precisamos de escrever um procedimento temos duas opções: escrever um Sub ou uma Funtion Sintaxe Tipo do valor a devolver. Não pode ser do tipo Array Sub nome [(lista de argumentos)] [instruções] [Exit Sub] [instruções] Function nome [(lista de argumentos)] [As tipo] [instruções] [nome = expressão] [Exit Function] [instruções] [nome = expressão] End Function Diferenças Function permite devolver um valor ao procedimento que a tiver chamado e Sub não tem essa capacidade. Têm que ser do mesmo tipo! Function pode ser chamada através das fórmulas inseridas nas células do Excel. 4

Sub ou Function Notas: Em ambos os casos o código é incluso entre uma primeira linha que descreve o procedimento (Sub ou Function) e uma linha final que indica o fim do procedimento ( ou End Function). Em ambos os casos existe também a possibilidade de indicar a lista de argumentos com que o procedimento trabalhará. Para que a função devolva um determinado valor é necessário que dentro do seu código se atribua esse valor ao seu nome. Se isso não for feito, o VBA fará com que a função devolva um valor por defeito. Os argumentos e os valores de retorno são do tipo Variant por defeito, senão for especificado nenhum tipo de dado. 5

Definição Versus Chamadas Um procedimento Sub é uma série de instruções Visual Basic delimitada por instruções Sub e, que efectuam acções mas não devolvem um valor. Um procedimento Sub pode aceitar argumentos Um procedimento Function é uma série de instruções Visual Basic delimitada pelas instruções Function e End Function. Um procedimento Function é idêntico a um procedimento Sub, mas uma função pode devolver um valor. Um procedimento Function pode aceitar argumentos. A definição de um procedimento é o código que descreve aquilo que ocorre quando o procedimento for executado, ou seja, quando for chamado. A chamada de um procedimento é um pedido para que o procedimento seja executado, isto é, para que o controlo passe para o código que constitui a definição do procedimento. A chamada pode envolver a passagem de parâmetros e eventualmente a devolução de um valor (no caso das funções). 6

Exemplos: Sub Area() Dim Comp As Double Dim Larg As Double Comp = 10 Larg = 20 CalculaArea Comp, Larg 'Chamada do Procedimento CalculaArea Sub CalculaArea(Ocomp As Double, Alarg As Double) Dim Area As Double ' Declara variável local. If Ocomp = 0 Or Alarg = 0 Then Exit Sub ' Sai do Procedimento imediatamente End If Area = Ocomp * Alarg ' Calcula a área do rectângulo. MsgBox Area ' Mostra a área. Definição do Procedimento CalculaArea 200 7

Exemplos: Sub Multiplicar() Dim Var1 As Integer Dim Var2 As Integer Dim Var3 As Integer Var1 = 5 Var2 = 10 Var3 = Multiplica(Var1, Var2) Chamada da Função Multiplica MsgBox Var3 A instrução em que é feita uma atribuição ao nome da função especifica o valor de retorno da função Função que devolve o produto de dois argumentos Function Multiplica(ByVal Var1, ByVal Var2) Multiplica = Var1 * Var2 End Function Definição da Função Multiplica 9 8

Argumentos Nomedoargumento AS Tipodoargumento, Nomedoargumento AS Tipodoargumento... Exemplo: Sub Subtrai ( x1 As Integer, x2 As Integer) MsgBox x1 x2 Na declaração do Procedimento Este procedimento não pode ser executado só por si, já que só funciona se lhe forem passados dois argumentos (neste caso dois inteiros); logo temos de o chamar a partir de outro procedimento onde lhe possamos fornecer esses valores. Os argumentos declarados passam a funcionar, dentro do procedimento, como variáveis. Sub FazContas () Estes Valores têm de ser do mesmo Tipo do Argumento correspondente na definição do procedimento a ser chamado! Senão dá erro! Subtrai 5, 6 Subtrai 25,12 Na chamada do Procedimento 9

Argumentos Notas: Para chamar o procedimento Subtrai, indicamos uma lista de valores correspondentes a cada um dos argumentos, separados por virgulas. Uma vez concluída a execução do procedimento Subtrai ( com estes argumentos) o controlo é devolvido ao procedimento Fazcontas. Depois é executada a instrução seguinte à chamada do procedimento Subtrai. É muito importante a ordem pela qual os argumentos são passados. O primeiro argumento dado vai corresponder ao primeiro argumento recebido e assim sucessivamente. Subtrai 5, 6 é diferente de Subtrai 6,5. 10

No exemplo anterior apresentámos sempre constantes como argumentos. No entanto, podemos também apresentar variáveis ou mesmo expressões, desde que o seu tipo seja compatível com o tipo do argumento correspondente no procedimento chamado. A regra continua a ser a mesma: aquilo que for apresentado como primeiro argumento a passar vai ser usado como o primeiro argumento no procedimento chamado e assim sucessivamente. Exemplo: Sub FazContas () Dim x As Integer, y As Integer x = 5 y = 6 Subtrai x, y Subtrai x + y, 2 * x Esta chamada vai provocar a execução do procedimento Subtrai usando o valor de x como primeiro argumento e o valor de y como o segundo argumento. -1 Esta chamada vai provocar a execução do procedimento Subtrai usando o valor de x + y como primeiro argumento e o valor de 2 * x como o segundo argumento. 1 11

Argumentos Não existe qualquer relação entre o nome dos argumentos do procedimento chamado e o nome dos argumentos usados na chamada. Ou seja, o facto de termos dado os nomes x1 e x2 aos argumentos do procedimento Subtrai (na sua definição) não quer de forma alguma dizer que este procedimento só possa ser chamado com variáveis que tenham esse mesmo nome! O VBA encarrega-se de fazer as necessárias correspondências. Em geral, quando se passam argumentos a um procedimento, o VBA trata de adequar cada um deles aos que se encontram descritos na definição do dito procedimento. A adequação é feita respeitando a sequência em que os argumentos são representados. Assim, o primeiro argumento declarado na definição do procedimento vai tomar o valor do primeiro argumento apresentado nessa chamada do procedimento; o segundo argumento declarado na definição do procedimento vai tomar o valor do segundo argumento apresentado nessa chamada do procedimento; e assim sucessivamente para cada um dos argumentos. Sub Exemplo ( v As Integer, msg1 As String, msg2 As String)... End sub Dentro de outro procedimento S = Olá Exemplo 3, s, Bom dia 12

Regras Gerais de utilização de parêntesis Ao Utilizar uma função numa expressão do lado direito de uma instrução de atribuição ou como argumento de um procedimento, deve-se colocar os argumentos dessa função entre parêntesis. Também se pode chamar uma função ou procedimento Sub utilizando a palavra - chave Call, caso em que se deve novamente colocar quaisquer argumentos entre parêntesis. Se a função ou procedimento Sub for chamada por ela mesmo não como parte de uma expressão e sem usar a palavra-chave Call -, não se deve colocar os argumentos entre parêntesis. 13

Ficheiro Help On-Line Do VBA: Os procedimentos Sub, as instruções incorporadas e alguns métodos que não devolvem um valor. Quando chama um deles, não necessita de colocar os seus argumentos entre parêntesis, como se mostra no exemplo seguinte. MeuSub "argumentocadeia", ArgumentInteiro Os procedimentos Function, as funções incorporadas e alguns métodos que não devolvem um valor. Não necessita de incluir parêntesis se ignorar o valor devolvido. Neste caso, chama a função da mesma forma que chama um procedimento Sub. Deve omitir os parêntesis e listar os argumentos (se existirem) e não atribuir a função a uma variável, como se mostra no exemplo seguinte. MsgBox "Tarefa concluída!", 0, "Caixa de tarefa" Se quiser utilizar o valor de retorno de uma função, necessita de colocar os argumentos entre parêntesis, como se mostra no exemplo seguinte. Answer3 = MsgBox("Está contente com o seu salário?", 4, "Pergunta 3") Uma instrução num procedimento Sub ou Function pode passar valores a um procedimento chamado, utilizando argumentos com nome. Aplicam-se as linhas de orientação relativas à utilização de parêntesis, quer utilize ou não argumentos com nome. Os argumentos com nome são sempre seguidos de dois pontos e de um sinal de igual (:=) e depois do valor de argumento. O exemplo seguinte chama a função MsgBox, utilizando argumentos com nome e ignora o valor de retorno. MsgBox Title:="Caixa de tarefa", Prompt:="Tarefa completa!" O exemplo seguinte chama a função MsgBox utilizando argumentos com nome e atribui o valor de retorno à variável answer3. answer3 = MsgBox(Title:="Pergunta 3", _ Prompt:="Está contente com o seu salário?", Buttons:=4) 14

Argumentos passados por valor ou por referência Argumento passado por referência Quando se apresenta uma variável como argumento na chamada de um procedimento, é passada uma referência dessa variável ao argumento correspondente no procedimento chamado. Assim, o procedimento chamado pode alterar o valor da variável (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por referência utilizamos a palavra-chave ByRef na declaração do procedimento em causa. Argumento passado por valor Quando se apresenta uma variável como argumento na chamada de um procedimento, é passada uma cópia do valor dessa variável ao argumento correspondente no procedimento chamado. Assim, O procedimento chamado não pode alterar o valor da variável (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por Valor utilizamos a palavra-chave ByVal na declaração do procedimento em causa. 15

Exemplo: Public Sub Experiência(ByRef X As Integer, ByVal Y As Integer) X = 5 Y = 10 Public Sub Teste() Dim A As Integer, B As Integer A = 0 B = 0 Experiência A, B MsgBox "A = " & A & "; B = " & B O Valor da variável passada como 1º argumento pode ser alterado pelo procedimento chamado. O Valor da variável passada como 2º argumento não pode ser alterado pelo procedimento chamado. A = 5; B = 0 16

Notas: Por defeito, O VBA faz as passagens de argumentos por referência ou seja, quando não se indica ByRef ou ByVal é assumido ByRef. A decisão entre os dois tipos de passagem (para cada argumento) é tomada aquando da definição de cada procedimento. Na chamada dos procedimentos tudo o que temos que fazer é sujeitarmo-nos à forma como o procedimento foi definido. Quando desejarmos que uma variável apresentada como argumento (numa chamada) sofra alterações dentro do procedimento chamado, temos de usar uma passagem por referência. Quando apenas queremos passar o seu valor para o procedimento chamado, utilizamos uma passagem por valor. 17

Exemplo completo: Public Sub Experiência(ByRef X As Integer, ByVal Y As Integer) MsgBox "Xini = " & X MsgBox "Yini = " & Y X = 5 Y = 10 MsgBox "Xfin= " & X MsgBox "Yfin = " & Y Public Sub Teste() Dim A As Integer, B As Integer A = 0 B = 0 MsgBox "Aini = " & A MsgBox "Bini = " & B Experiência A, B MsgBox "Afin = " & A & "; Bfin = " & B 18