Informática II EXCEL. Visual Basic (TÓPICOS ABORDADOS NAS AULAS DE INFORMÁTICA II) Por: Cristina Wanzeller / Jorge Loureiro



Documentos relacionados
EXCEL. Visual Basic. Informática II Gestão Comercial e da Produção (TÓPICOS ABORDADOS NAS AULAS DE INFORMÁTICA II)

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

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Capítulo 2: Introdução à Linguagem C

Módulo III. Folhas de Cálculo

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

Informática II Ficha 5_resolução

AMBIENTE DE PROGRAMAÇÃO PYTHON

Aluísio Eustáquio da Silva

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

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel

OPERADORES E ESTRUTURAS DE CONTROLE

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

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

Aplicações de Escritório Electrónico

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

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

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

Programação. Folha Prática 3. Lab. 3. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Fórmulas e Funções 7

EXCEL TABELAS DINÂMICAS

Tarefa Orientada 18 Tabelas dinâmicas

Algoritmos com VisuAlg

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

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Manipulação de Células, linhas e Colunas

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

O que é o JavaScript?

Javascript 101. Parte 2

Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA

Capítulo Tabelas e Gráficos

Introdução aos cálculos de datas

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

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

1. Ambiente de Trabalho

MANUAL DO UTILIZADOR

Tarefa Orientada 10 Obter informação a partir de uma tabela

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Programação Básica em Arduino Aula 2

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

INF 1005 Programação I

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

AULA TEÓRICA 9. Tema 4. Introdução ao Microsoft Excel (cont). Funções Organização de dados Gráficos Recursos adicionais Impressão

Algoritmos e Programação Estruturada

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Usando o Excel ESTATÍSTICA. Funções

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

Linguagem algorítmica: Portugol

APOSTILA DE EXCEL 2007

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.

Usando o Excel ESTATÍSTICA. A Janela do Excel Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.

e à Linguagem de Programação Python

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

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

Visual Basic for Applications

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Organização e Arquitetura de Computadores I

Oficina de Construção de Páginas Web

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

4 RECURSOS AUTOMATIZADOS DO EXCEL

Tarefa Orientada 13 Agrupamento e sumário de dados

ESTRUTURA CONDICIONAL

Componentes da linguagem C++

Treinamento em BrOffice.org Calc

Resumo da Matéria de Linguagem de Programação. Linguagem C

SAFT para siscom. Manual do Utilizador. Data última versão: Versão: Data criação:

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

INTRODUÇÃO À PROGRAMAÇÃO DO ACCESS BASIC

Tarefa Orientada 14 Subconsultas

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Algoritmos em Javascript

Guia de Estudo Folha de Cálculo Microsoft Excel

Orientação a Objetos

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

Engenharia de Software

Procalc v1.0. Versão Programador

Aplicações de Escritório Electrónico

Arquitetura de Computadores. Tipos de Instruções

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

2 echo "PHP e outros.";

Folha de cálculo. Excel. Agrupamento de Escolas de Amares

Manual do Ambiente Moodle para Professores

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

INTRODUÇÃO À LINGUAGEM C++

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

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

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

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

JSP - ORIENTADO A OBJETOS

Tutorial de Matlab Francesco Franco

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto

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

Tarefa Orientada 15 Manipulação de dados

Transição de POC para SNC

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.

Transcrição:

Informática II EXCEL Visual Basic (TÓPICOS ABORDADOS NAS AULAS DE INFORMÁTICA II) Por: Cristina Wanzeller / Jorge Loureiro

Informática II ÍNDICE 1. INTRODUÇÃO..1 2. PROCEDIMENTOS EM VISUAL BASIC..2 2.1 TIPOS DE PROCEDIMENTOS...2 2.2 COMPONENTES DUM PROCEDIMENTO...2 2.3 LIGAR PROCEDIMENTOS...2 3. COMO É ORGANIZADO UM MÓDULO EM V. BASIC3 4. DECLARAÇÕES EM VISUAL BASIC...4 4.1 TIPOS DE VARIÁVEIS EM V. BASIC 4 4.2 TIPO DE INFORMAÇÃO CARACTER - CHARACTER.5 4.3 DECLARAÇÃO DE VARIÁVEIS5 4.4 DECLARAÇÃO DE CONSTANTES.6 4.5 ÂMBITO DE UMA VARIÁVEL E DE UMA CONSTANTE...6 5. OPERADORES..7 6. FUNÇÕES PREDEFINIDAS7 7. EXPRESSÕES8 8. INSTRUÇÕES BÁSICAS..9 8.1 INSTRUÇÕES DE ATRIBUIÇÃO...9 8.2 INSTRUÇÕES DE LEITURA...10 8.3 INSTRUÇÕES DE ESCRITA11 9. COMENTÁRIOS.12 10. ESTRUTURAS DE CONTROLO..13 10.1 SEQUÊNCIA 13 10.2 SELECÇÃO..13 10.2.1 Instrução de Selecção Se... Então... Senão.13 10.2.2 Instrução de Selecção Seleccionar Caso... Fim Seleccionar17 10.3 REPETIÇÃO.19 10.3.1 Instrução de Repetição Faz... Ciclo.19 10.3.2 Instrução de Repetição Para... Seguinte.25 10.3.3 Instrução de Repetição Para Cada... Seguinte27 11. VARIÁVEIS DE TIPO ESTRUTURADO OU ARRAYS29 11.1 ALTERAR O TAMANHO DE UM ARRAY EM RUN-TIME (ARRAYS DINÂMICOS)32 11.2 ARRAYS MULTIDIMENSIONAIS...33 12. TIPOS DE DADOS CRIADOS PELO UTILIZADOR.37

Visual Basic do Excel 1. Introdução O objectivo de um programa é o cálculo de valores. O computador manipula representações de valores, que não são mais do que configurações de bits ou palavras da memória. As representações físicas variam segundo os objectos a representar. É necessário a especificação do tipo de valores a manipular. Cada objecto terá um nome, para além de um tipo e de um valor. Os nomes dos objectos no programa chamam-se identificadores (exceptuando as palavras reservadas à linguagem V. Basic). Os objectos podem ser: Constantes - nome fixo, tipo fixo e valor fixo. Exemplo: Kb - constante de nome "Kb", do tipo inteiro e valor de 1024 Variáveis - nome fixo, tipo fixo e valor variável. Exemplo: Factor - variável de nome factor, do tipo inteiro e de valor variável. A variável toma um valor, ou mais, durante a execução do programa. Objectos V. Basic ou Excel - Um botão, caixa de diálogo, folha, livro, podendo ter propriedades e métodos. Exemplo: CaixaTexto1 - Objecto que é uma caixa de texto (onde se pode escrever texto), cuja propriedade Valor [Value em ], contém a string mostrada nessa caixa. Para atribuirmos esse valor à variável Nome, faremos: Nome = CaixaTexto1.Valor [Nome = CaixaTexto1.Value] Um programa em linguagem Visual Basic deve ser constituído por três partes fundamentais: o cabeçalho, onde é indicado o nome do procedimento, tipo e também as origens dos dados de entrada e dos resultados; as declarações de todas as variáveis e constantes que intervêm no programa, e as definições dos seus tipos; e o corpo do programa, onde aparecem as instruções que determinam as acções a executar ao longo do programa. Esta estruturação não é de todo obrigatória, já que a declaração de variáveis e constantes não é obrigatória e pode também fazer-se em qualquer local do corpo do programa. De qualquer forma, recomenda-se a especificação obrigatória das variáveis e constantes e, pelo menos as mais relevantes deverão ser definidas no início de cada procedimento ou módulo. Informática II Cap. III - Excel Visual Basic Pág. 1

2. Procedimentos em Visual Basic Os procedimentos são blocos de código V.Basic, que é digitado num módulo V.B., sendo cada um executado como uma unidade. O código V.B. de um procedimento, indica o que fazer; Uma instrução é uma unidade sintacticamente completa de código, que expressa uma acção; Ex.Lucro_Líquido=Lucro_Bruto - Margem Uma função retorna um valor; Ex. Maiúscula [Ucase em ], retorna o texto em letras maiúsculas. 2.1 Tipos de Procedimentos Os procedimentos podem ser: Procedimentos Proc [Sub em ] - Não retornam um valor Inicia com um Proc e termina com Fim Proc [End Sub em ] Procedimento Função [Function em ] - Retornam um valor ao procedimento chamante Inicia com Função e termina com Fim Função [End Function em ] 2.2 Componentes dum Procedimento Um procedimento tem: Função... Fim Função [Function... End Function] ou ou Proc... Fim Proc [Sub... End Sub] Nome Argumentos (opcionais) Código Visual Basic Valor de retorno que existe na função e não existe no Proc/Sub. 2.3 Ligar Procedimentos Idealmente um procedimento deve fazer uma coisa e bem. Devem criar-se procedimentos curtos, reutilizáveis, fáceis de manter e que possam trabalhar em conjunto. Procedimentos curtos são mais facilmente desenháveis, de implementar, de corrigir e alterar, dado que têm muito menos código. Com muitos procedimentos pode também evitar-se a escrita do mesmo código muitas vezes, colocando o código a repetir num procedimento e invocá-lo, quando necessário. Um procedimento pode chamar outros e este invocar outros e assim sucessivamente. Informática II Cap. III - Excel Visual Basic Pág. 2

3. Como é organizado um módulo em V. Basic Um módulo em V. Basic, contém usualmente, vários procedimentos. A sua ordem é irrelevante, a não ser por uma questão de sistematização do problema. Há no entanto regras que devem ser obedecidas. No início há uma área, denominada Secção de Declarações, onde devem ser declaradas constantes e variáveis comuns ao módulo ou ao livro, outras informações e opções de funcionamento do V.B. Exemplo: Em Início do Módulo ESPECIFICAR OPÇÕES DO V. BASIC Opção Explícita Option Explicit Diferenças em DECLARAÇÕES DE CONSTANTES E VARIÁVEIS DO MÓDULO Declaração de constantes Público Const DowJones=3500 Public Const DowJones=3500 Declarações de variáveis Decl Prec_Orig Dim Prec_Orig Decl Num_Vendas, Prec_Venda Dim Num_Vendas, Prec_Venda Fim de declarações. PROCEDIMENTOS Proc Vendas_Stock() Inicializar_Folha Busca_Dados_Stock Insere_Valores Fim Proc Proc Inicializar_Folha() Fim Proc Sub Vendas_Stock() Fim Sub Sub Inicializar_Folha() Fim Sub Informática II Cap. III - Excel Visual Basic Pág. 3

4. Declarações em Visual Basic 4.1 Tipos de variáveis em V. Basic Na linguagem V. Basic qualquer tipo de informação (dado) tem associado o seu tipo, implícita ou explicitamente, de tal modo que: o tipo da informação determina a gama de valores que esta pode tomar e a gama de operações que lhe pode ser aplicada; cada informação tem um tipo, que pode ser redefinido internamente pelo V.B. em caso de necessidade; o tipo de informação pode ser deduzido só pela sua forma ou contexto, sem qualquer conhecimento do valor que lhe poderá ser atribuído durante a execução do programa; cada operador requer operandos e produz resultados de um determinado tipo. Na tabela seguinte são mostrados os tipos de variáveis do V. Basic. Tipo de Dados Tipo de Dados Ocupação Intervalo de valores possíveis (em ) (em ) (em bytes) Booleano Boolean 2 bytes Verdadeiro/True ou Falso/False Inteiro Integer 2 bytes -32768 a 32767 Longo Long 4 bytes -2,147,483,648 a 2,147,483,647 (Inteiro Longo) Simples (VF de Single 4 bytes Ver manual Precisão Simples) Duplo (VF de Double 8 bytes Ver manual Precisão Dupla) Moeda Currency 8 bytes Valores com 4 casas décimais e até aos biliões Data Date 8 bytes 1 de Jan 0100 até 31 Dez 9999 Cadeia String 1 bytes p/ caracter 0 a 65535 ou mais em alguns sistemas Variante Variant Como apropriado Texto ou valores até Double Objecto Object 4 bytes Qualquer referência a um objecto Definida pelo Definida pelo Número requerido O de cada elemento que constitui Utilizador Utilizador pelos elementos o tipo de dados definido Informática II Cap. III - Excel Visual Basic Pág. 4

4.2 Tipo de Informação Caracter - Character Tem como gama de valores o conjunto de caracteres existentes no computador. Podem-se dividir em 4 grupos: Letras - A, B,..., Z e a, b,..., z; Dígitos - 0, 1,..., 9; Caracteres especiais -! " # $ % & ' ( ) * + -,. / : ; < = >? @ [ \ ] ^ _ ` { } ~ etc Caracter branco ou espaço. O valor do tipo caracter é designado entre aspas: A 3! Os caracteres são representados internamente no computador por um conjunto de zeros e uns, por exemplo, a tabela ASCII. 4.3 Declaração de Variáveis Como já atrás foi dito, as variáveis em V.B. não têm de ser obrigatoriamente explicitadas, embora seja conveniente faze-lo, pois torna o código de execução mais rápida e mais explícito. Para que o V.B verifique da existência de declaração de variáveis, colocar o statement Opção Explícita [Option Explicit] no início de cada módulo (secção de declarações). Uma variável é definida por um identificador com um nome fixo, tipo fixo e valor variável. Exemplos: Declarações (em ) Decl S como Cadeia, Nome como Cadeia Decl ENome como Cadeia * 50 (ENome - variável de tamanho fixo) Decl DataDia como Data Decl Botão como Objecto Decl Número1 como Inteiro Decl SimNao como Booleano Decl QualquerCoisa como Variante Declarações (em ) Dim S As String, Nome As String Dim ENome As String * 50 (ENome - variável de tamanho fixo) Dim DataDia As Date Dim Botão As Object Dim Número1 As Integer Dim SimNao As Boolean Dim QualquerCoisa As Variant Informática II Cap. III - Excel Visual Basic Pág. 5

4.4 Declaração de constantes Uma constante é um identificador utilizado em substituição de um determinado valor. As constantes tornam-se particularmente úteis quando existe um valor que é utilizado várias vezes no programa e/ou quando um valor é difícil de memorizar. Por outro lado, a utilização de constantes torna um programa mais claro e facilita a sua manutenção. Exemplos: Const PI=3.14159265 Const PI2=PI * 2 4.5 Âmbito de uma variável e de uma constante Caso uma variável seja definida dentro dum procedimento, só o código dentro desse procedimento pode aceder ou alterar o valor da variável. Por vezes, é necessário que o valor duma variável seja visível, fora do procedimento (em todo o módulo ou em todo o livro), chamando-se a essa disponibilidade de aceder à variável o seu âmbito. Dependendo onde se declarar a variável, o respectivo âmbito pode ser de 3 tipos: Âmbito Local Módulo Publico Declaração da Variável Decl [Dim] ou Estática [Static] dentro do procedimento Decl [Dim], Estática [Static] ou Priv [Private] no início do módulo Público [Public] no início do módulo O âmbito de uma constante também depende do local e da forma como esta é declarada. Assim sendo os âmbitos possíveis são: Âmbito Local Módulo Publico Declaração de Constante Declaração da constante dentro do procedimento Priv[Private] Const... no início do módulo Público[Public] Const... no início do módulo Informática II Cap. III - Excel Visual Basic Pág. 6

5. Operadores Aritméticos: +, -, /, *, ^, \ (divisão inteira) e Resto [Mod em ] (resto inteiro) Concatenação: & Lógicos: E [And], Eqv, Imp, Não [Not], Ou [Or] e OuX [XoR] Comparação: =, <, <=, >, >= e <> For [Is] (operador equivalência) e Semelhante [Like] (operador semelhança) Ex. Texto = Mystery Semelhante M*y [ Texto = Mystery Like M*y ], retorna o valor lógico Verdadeiro. 6. Funções Predefinidas As funções aceitam dados e produzem e devolvem resultados. Enumeram-se as seguintes: Funções em F. em Significado ABS(x) - Calcula o módulo de x; ARCTG(x) [ATN] - Ângulo, compreendido entre 0 e n, cuja tangente é x. COS(x) - Coseno de x, com x em radianos; e EXP(x) - Exponencial de x, e x ; FIXAR(x) [FIX] - Devolve parte inteira de um número; INT(x) - Devolve parte inteira de um número; LN(x) [LOG] - Logaritmo Natural de x, para x > 0; RAIZQ(x) [SQR] - Calcula a raiz quadrada de x. SEN(x) [SIN] - Seno de x, com x em radianos; ASC(str) - Devolve código associado ao 1º caracter da string str; CAR(c) [CHR] - Devolve caracter correspondente ao código c; VAL(str) - Devolve números contidos na string str; MEIO(str,i,n) [MID] - Devolve n caracteres da string str a partir da posição i; REMESP(str) [TRIM] - Devolve string str sem espaços no início e no fim; NÚMEROCAR(x) [LEN] - Se x for uma string devolve nº de caracteres da string; Há centenas de outras que poderão ser consultadas no manual OnLine, em caso de necessidade. Exemplos: Em Fixar(99.8) = Int(99.8) = 99 Fix(99.8) = Int(99.8) = 99 Fixar(-99.8) = -99 Int(-99.) = -100 Fix(-99.8) = -99 Int(-99.) = -100 Car(65) = A Car(90)= Z Chr(65) = A Chr(90)= Z Car(97)= a Car(122)= z Chr(97)= a Chr(122)= z Asc( A ) =65 Asc( a )=97 (=) Informática II Cap. III - Excel Visual Basic Pág. 7

Em Car(Asc( a )-32)= A Chr(Asc( a )-32)= A Meio("Excel", 2, 3) = xce Mid("Excel", 2, 3) = xce RemEsp(" Excel v7 ") = Excel v7 Trim(" Excel v7 ") = Excel v7 NúmeroCar(" Excel v7 ") = 12 Len(" Excel v7 ") = 12 NúmeroCar(RemEsp(" Excel v7 ")) = 8 Len(Trim(" Excel v7 ")) = 8 7. Expressões Expressões são regras para calcular valores, consistindo num conjunto de operandos ligados por operadores. No V. Basic os operadores têm as seguintes prioridades: () NÃO * / \ RESTO E + - OU = <> > >= < <= OPERADORES () NOT * / \ MOD AND + - OR = <> > >= < <= PRIORIDADES 4 3 2 1 As regras para o cálculo de expressões são as seguintes: Se todos os operadores têm igual prioridade, o cálculo é efectuado da esquerda para a direita; Se os operadores têm prioridades diferentes, as operações são efectuadas por ordem de prioridade, começando na prioridade mais elevada; e As duas primeiras regras podem ser alteradas por utilização de parêntesis, efectuando-se neste caso primeiro as operações dentro de parêntesis. Informática II Cap. III - Excel Visual Basic Pág. 8

8. Instruções Básicas 8.1 Instruções de Atribuição Instruções de atribuição são as instruções utilizadas para atribuir um valor particular a uma variável, valor esse que é especificado sob a forma de uma expressão. DIAGRAMA SINTÁTICO IDENTIFICADOR := EXPRESSÃO O operador da instrução de atribuição é: Exemplos: = - toma o valor de I = 3 a variável I toma o valor 3; J = I a variável J toma o valor da variável I; x = I * J + 5 a variável x toma o valor da expressão; Informática II Cap. III - Excel Visual Basic Pág. 9

8.2 Instruções de Leitura Mostram uma caixa de diálogo e esperam que o utilizador escreva texto ou escolha um botão, retornando então o conteúdo da caixa de texto. Sintaxe em: CxEntrada(Prompt [,títulol][,val.defeito][,x pos][,y pos]) InputBox(Prompt [,títulol][,val.defeito][,x pos][,y pos]) Se o utilizador seleccionar o botão OK ou bater Enter, a função CxEntrada/InputBox retorna o conteúdo da caixa de texto. Com Cancelar ou Escape, retorna uma string de comprimento nulo. Exemplo: Cod= CxEntrada( Indique o Código do Produto, Consulta a Produtos ) Cod= InputBox( Indique o Código do Produto, Consulta a Produtos ) Obs. A função CxEntrada/ InputBox, retorna uma string. Caso o tipo de dados da variável para a qual vai ser transferida o valor retornado pela função, seja de outro tipo, deve usarse a função conveniente para conversão de dados. Exemplo: N=Val(CxEntrada( Numero Inteiro entre 1 e 100 ) N=Val(InputBox( Numero Inteiro entre 1 e 100 ) Informática II Cap. III - Excel Visual Basic Pág. 10

8.3 Instruções de Escrita Mostram uma mensagem numa caixa de diálogo. A caixa só é fechada depois de o utilizador clicar um dos botões disponíveis. O valor retornado pela função, indica o botão que foi clicado pelo utilizador. Sintaxe: CxMsg(prompt [,botões] [título] [fich_ajuda, contexto]) MsgBox(prompt [,botões] [título] [fich_ajuda, contexto]) Obs. Para informações quanto ao item botões e valor retornado, recomenda-se a consulta ao help do V. Basic. Exemplo: O exemplo que se segue, usa a função CxMsg/MsgBox para mostrar uma mensagem crítica de erro, com o botão Sim e Não. O botão Não é especificado como botão de resposta por defeito. O valor retornado pela CxMsg/ MsgBox, depende do botão seleccionado pelo utilizador. Para os propósitos deste exemplo, assume-se que o Help.Hlp é um ficheiro de help que contém um tópico de ajuda de contexto com nº 1000. Msg= Quer Continuar? Msg= Quer Continuar? Style=vbSimNão+vbCrítico+vbBotãoAssumido2 Style=vbYesNo+vbCritical+vbDefaultButton2 Title= Demostração da CxMsg Title= Demostração da MsgBox Help= Help.Hlp Help= Help.Hlp Ctxt=1000 Ctxt=1000 Mostra a mensagem Mostra a mensagem Resp= CxMsg(Msg, Style, Title, Help, Ctxt) Resp= MsgBox(Msg, Style, Title, Help, Ctxt) Se Response=vbSim Então If Response=vbSim Então MyString = Sim OBS. 1 MyString = Sim OBS. 1 Senão Else MyString = Não OBS. 2 MyString = Não OBS. 2 Fim Se End If OBS: 1- O utilizador clicou o botão Sim 2- O utilizador clicou o botão Não As instruções de escrita podem ser formatadas, isto é, para cada saída podemos indicar a largura (em caracteres) desse campo e também o número de casas decimais, se o campo for do tipo real. Utiliza-se a função Formatar [Format], cuja sintaxe e informação adicional se recomenda consulta no Help OnLine. Informática II Cap. III - Excel Visual Basic Pág. 11

9. Comentários São frases dentro do programa que ajudam à sua compreensão. Os comentários são constituídos por uma sequência de caracteres iniciados por plica ( ) e que termina no fim da linha. Quer isto dizer que poderemos escrever uma instrução e indicar no final dela o respectivo propósito em comentário. Se pretendermos que toda a linha seja um comentário, então colocaremos a plica no seu início. Exemplos: I = I + 1 Incrementar a variável I Procedimento destinado a calcular os números primos até ao inteiro a indicar Proc Perímetro() calcula o perímetro de uma circunferência, de raio R Const PI = 3.14 Decl R como simples, Per como simples Inicio do tratamento R=Val(CxEntrada( Insira o Raio da circunferência ) Cálculo do valor do perímetro, utilizando a fórmula respectiva Per = 2 * PI * R; Impressão do resultado CxMsg( O perímetro da circ. de raio & R & é igual a & Per) Fim Proc Sub Perímetro() calcula o perímetro de uma circunferência, de raio R Const PI = 3.14 Dim R As Single, Per As Single Inicio do tratamento R=Val(InputBox( Insira o Raio da circunferência ) Cálculo do valor do perímetro, utilizando a fórmula respectiva Per = 2 * PI * R; Impressão do resultado Msgox( O perímetro da circ. de raio & R & é igual a & Per) End Sub Informática II Cap. III - Excel Visual Basic Pág. 12

10. Estruturas de Controlo Existem três estruturas de controlo: sequência, repetição e selecção. 10.1 Sequência As instruções são executadas sequencialmente.... Inst. 1 Inst. 2... Na mesma linha podem colocam-se 2 ou mais instruções, desde que separadas com dois pontos (:). Obs. Apesar duma linha poder ter um maior comprimento do que a largura do ecran disponível, sendo efectuado o scroll horizontal automaticamente, pode suceder que pretendamos continuar uma instrução na linha seguinte. Para esse propósito, coloca-se no fim da linha um underscore (_). 10.2 Selecção As instruções de selecção permitem a execução condicional entre uma ou mais instruções. Existem no Visual Basic duas instruções de selecção: Se... Então... Senão... [ If... Then... Else...] Seleccionar Caso [Select Case] 10.2.1 Instrução de Selecção Se... Então... Senão... DIAGRAMA SINTÁTICO SE Condição ENTÃO Instrução SENÃO Instrução Informática II Cap. III - Excel Visual Basic Pág. 13

ESQUEMA Falsa Expressão? Verdadeira Instrução 1 Verdadeira Falsa Expressão? Instrução 1 Instrução 2 A instrução Se pode ser composta. Existem duas maneiras de ela ser composta: - se a instrução depois do Senão[Else] é outra instrução Se [If]. Exemplo: Se condição1 Então instrução1 SenãoSe condição2 Então instrução2 Senão instrução3 Fim Se If condição1 Then instrução1 ElseIf condição2 Then instrução2 Else instrução3 End If - se a instrução depois do Então [Then] é outra instrução Se [If]. Exemplo: Se condição1 Então Se condição2 Então Se condição3 Então instrução1 Senão instrução2 Fim Se Senão instrução3 Fim Se Senão instrução4 Fim Se Informática II Cap. III - Excel Visual Basic Pág. 14

If condição1 Then If condição2 Then If condição3 then instrução1 Else instrução2 End If Else instrução3 End If Else instrução4 End If Exemplo: Programa que lê três números inteiros indicados por ordem crescente e diz se poderão ser considerados como os lados de um triângulo; em caso afirmativo diz de que tipo de triângulo se trata. Proc Triângulo() Decl a, b, c Como Inteiro a=val(cxentrada( Introduza o Comp. do 1º lado do triângulo )) b=val(cxentrada( Introduza o Comp. do 2º lado do triângulo )) c=val(cxentrada( Introduza o Comp. do 3º lado do triângulo )) Se a + b > c Então Se a = c Então CxMsg( a= & a &, b= & b &, c= & c & - Triângulo Equilátero ) SenãoSe ( a = b ) ou ( b = c ) Então CxMsg( a= & a &, b= & b &, c= & c & - Triângulo Isósceles ) Senão CxMsg( a= & a &, b= & b &, c= & c & - Triângulo Escaleno ) Fim Se Senão CxMsg( Não é um Triângulo!!! ) Fim Se Fim Proc Informática II Cap. III - Excel Visual Basic Pág. 15

Sub Triângulo() Dim a, b, c As Integer a=val(inputbox( Introduza o Comp. do 1º lado do triângulo )) b=val(inputbox ( Introduza o Comp. do 2º lado do triângulo )) c=val(inputbox ( Introduza o Comp. do 3º lado do triângulo )) If a + b > c Then If a = c Then Msgbox( a= & a &, b= & b &, c= & c & - Triângulo Equilátero ) ElseIf ( a = b ) Or ( b = c ) Then Msgbox ( a= & a &, b= & b &, c= & c & - Triângulo Isósceles ) Else Msgbox ( a= & a &, b= & b &, c= & c & - Triângulo Escaleno ) End If Else Msgbox ( Não é um Triângulo!!! ) End If End Sub Informática II Cap. III - Excel Visual Basic Pág. 16

10.2.2 Instrução de Selecção Seleccionar Caso... Fim Seleccionar ESQUEMA C1 C2, C3 Expressão? C5 C7 Instrução 1 Instrução 2 Instrução 3 Sintaxe Formal: Em Seleccionar Caso expressão_de_teste Caso lista1expressão Instruções Caso lista2expressão Instruções.... Caso Senão Instruções Fim Seleccionar Em Select Case expressão_de_teste Case lista1expressão Instruções Case lista2expressão Instruções.... Case Else Instruções End Select Cada listaexpressão é uma lista de um ou mais valores, se muitos, serão separados por vírgulas. Se mais de um Caso é igual a expressão_de_teste, só o bloco de instruções associado ao 1º caso é executado. O V. Basic executará as instruções do Caso Senão, se nenhum dos listaexpressão satisfizer a expressão_de_teste. Informática II Cap. III - Excel Visual Basic Pág. 17

Exemplo: Programa para escrever o último dia de um determinado mês e de um ano compreendido entre 1900 e 2000. Proc ultimodia() Decl mes, ano Como Inteiro mes=val(cxentrada( Introduza o Mês )) ano=val(cxentrada ( Introduza o Ano )) Seleccionar Caso mes Caso 1, 3, 5, 7, 8, 10, 12 CxMsg(mes & tem 31 dias! ) Caso 4, 6, 9, 11 CxMsg(mes & tem 30 dias! ) Caso 2 Se (ano Resto 4) = 0 Então CxMsg(mes & tem 29 dias! ) Senão CxMsg(mes & tem 28 dias! ) Fim Se Fim Seleccionar Fim Proc Sub ultimodia() Dim mes, ano As Integer mes=val(inputbox( Introduza o Mês )) ano=val(inputbox ( Introduza o Ano )) Select Case mes Case 1, 3, 5, 7, 8, 10, 12 MsgBox(mes & tem 31 dias! ) Case 4, 6, 9, 11 MsgBox (mes & tem 30 dias! ) Case 2 If (ano Mod 4) = 0 Then MsgBox (mes & tem 29 dias! ) Else MsgBox (mes & tem 28 dias! ) End If End Select End Sub Informática II Cap. III - Excel Visual Basic Pág. 18

10.3 Repetição As instruções de repetição implicam a existência de um ciclo no programa, que vai permitir a repetição de uma instrução ou de uma instrução composta, sujeita a uma condição que determina o final da instrução de repetição. Existem no V. Basic três instruções de repetição: Faz... Ciclo [ Do... Loop ] Para... Seguinte [ For... Next ] Para Cada... Seguinte [ For Each... Next ] 10.3.1 Instrução de Repetição Faz... Ciclo ESQUEMA Verdadeira Expressão? Falsa Instrução Há três variantes desta instrução: 1. Com teste prévio à condição no início do Ciclo, enquanto condição for verdadeira. 2. Idem à anterior, com teste à condição no final do Ciclo, executando as instruções do Ciclo, pelo menos uma vez. 3. Correr o Ciclo até que condição seja verdadeira. 1. Faz Enquanto Condição Ciclo Do While Condição Loop A expressão condição, deverá produzir um valor lógico. É de realçar que a condição é verificada antes da execução de qualquer instrução do Ciclo. Assim, essas instruções podem nunca ser executadas, desde que a condição do Ciclo seja inicialmente falsa. Obs. Caso o Ciclo esteja mal construído, motivando a sua execução infinita, situação que deve obviamente ser evitada, pode parar-se a execução com a tecla Esc. Exemplos: Informática II Cap. III - Excel Visual Basic Pág. 19

A função que se segue, conta as ocorrências de uma string - string_a_procurar - dentro de outra string - stringlonga -, efectuando sucessivos Ciclos enquanto a string_a_procurar seja encontrada. O ciclo pode correr um número qualquer de vezes, podendo também nunca ser executado, se inicialmente a condição for falsa. Função ContaStrings (stringlonga, string_a_procurar) pos = 1 Faz Enquanto PosCadeia(pos,stringLonga,string_a_Procurar) Retorna verd./falso pos= PosCadeia(pos, stringlonga, string_a_procurar) + 1 Contador=Contador + 1 Ciclo ContaStrings=Contador Fim Função Function ContaStrings (stringlonga, string_a_procurar) pos = 1 Do While Instr(pos, stringlonga, string_a_procurar) Retorna verdade/falso pos=instr(pos, stringlonga, string_a_procurar) + 1 Contador=Contador + 1 Loop ContaStrings=Contador End Function Obs: A função PosCadeia [Instr] devolve a posição da primeira ocorrência de uma string noutra string. Para obtenção de informação adicional recomenda-se a consulta ao help do V. Basic. Informática II Cap. III - Excel Visual Basic Pág. 20

Este outro programa lê dois inteiros positivos e divide o primeiro pelo segundo, usando só as operações de soma e subtracção. Proc divisao1() Decl x, y, quociente, resto Como Inteiro Inicio do tratamento x = Val(CxEntrada( Insira o Dividendo )) y = Val(CxEntrada( Insira o Divisor )) resto = x : quociente = 0 Faz Enquanto resto >= y quociente = quociente + 1; resto = resto - y Ciclo; CxMsg(x & dividido por & y & é & quociente &,resto & resto) Fim Proc Sub divisao1() Dim x, y, quociente, resto As Integer Inicio do tratamento x = Val(InputBox( Insira o Dividendo )) y = Val(InputBox( Insira o Divisor )) resto = x : quociente = 0 Do While resto >= y quociente = quociente + 1; resto = resto - y Loop; MsgBox(x & dividido por & y & é & quociente &,resto & resto) End Sub Informática II Cap. III - Excel Visual Basic Pág. 21

2. Faz Ciclo Enquanto Condição Do Loop While Condição Neste caso, a instrução permite correr as instruções do Ciclo antes e no final de cada Ciclo efectuar o teste à condição. Esta variação de procedimento, garante que as instruções contidas no Ciclo são executadas pelo menos uma vez. ESQUEMA Instrução 1 Instrução 2 Instrução n Falsa Expressão? Verdadeira Exemplos: Faz ProcDados Chama o procedim. que processa os dados pelo menos uma vez Resposta=CxMsg( Pretende processar mais dados?, vbsimnão) Ciclo Enquanto Resposta = vbsim Do ProcDados Chama o procedim. que processa os dados pelo menos uma vez Resposta=MsgBox( Pretende processar mais dados?, vbyesno) Loop While Resposta = vbyes Informática II Cap. III - Excel Visual Basic Pág. 22

O proc. Divisao1, mas partindo do princípio que o primeiro inteiro é maior que o segundo. Proc divisao2 Decl x, y, quociente, resto Como Inteiro x = Val(CxEntrada( Insira o Dividendo )) y = Val(CxEntrada( Insira o Divisor )) resto = x : quociente = 0 Faz quociente = quociente + 1 resto = resto - y Ciclo Enquanto resto < y CxMsg(x & dividido por & y & é & quociente &,resto & resto) Fim Proc Sub divisao2 Dim x, y, quociente, resto As Integer x = Val(InputBox( Insira o Dividendo )) y = Val(InputBox( Insira o Divisor )) resto = x : quociente = 0 Do quociente = quociente + 1 resto = resto - y Loop While resto < y MsgBox(x & dividido por & y & é & quociente &,resto & resto) End Sub Informática II Cap. III - Excel Visual Basic Pág. 23

3. Faz AtéQue Condição Ciclo Do Until Condição Loop ou Faz Ciclo AtéQue Condição Do Loop Until Condição Também com duas variantes, tal como o Ciclo Enquanto, com teste prévio ou no final do Ciclo. A diferença entre este tipo de Ciclo e o anterior, reside no facto de, neste caso, o Ciclo é executado enquanto a condição for falsa em vez de verdadeira. Exemplos: 1. Com teste prévio Faz AtéQue Resposta = vbnão ProcDados Chama o procedim. que processa os dados pelo menos uma vez Resposta=CxMsg( Pretende processar mais dados?, vbsimnão) Ciclo Do Util Resposta = vbno ProcDados Chama o procedim. que processa os dados pelo menos uma vez Resposta=MsgBox( Pretende processar mais dados?, vbyesno) Loop Informática II Cap. III - Excel Visual Basic Pág. 24

2. Com teste no final do Ciclo Faz ProcDados Chama o procedim. que processa os dados pelo menos uma vez Resposta=CxMsg( Pretende processar mais dados?, vbsimnão) Ciclo AtéQue Resposta = vbnão Do ProcDados Chama o procedim. que processa os dados pelo menos uma vez Resposta=MsgBox( Pretende processar mais dados?, vbyesno) Loop Until Resposta = vbno 10.3.2 Instrução de Repetição Para... Seguinte Sintaxe: Para contador = início Até Fim [Inc incremento] instruções Seguinte [contador] For contador = início To Fim [Step incremento] instruções Next [contador] É usada quando o número de repetições não depende do efeito das instruções dentro do ciclo. A variável de controlo vai sendo incrementada ou decrementada do valor dado por incremento, desde um valor inicial, correspondente a início (literal ou expressão), até a um valor final, dado pelo Fim (literal ou expressão). Os argumentos contador, início, fim e incremento são todas numéricas. O incremento pode ser positivo ou negativo. Informática II Cap. III - Excel Visual Basic Pág. 25

Exemplo: Programa para calcular a soma de vários inteiros positivos. O primeiro valor a entrar é um inteiro que dá o número de inteiros cuja soma se pretende calcular. Proc soma() Decl comp, k, I, soma Como Inteiro comp = Val(CxEntrada( Somar quantos números inteiros? )) soma = 0; Para k = 1 até comp I = Val(CxEntrada( Próximo Número a somar )) soma = soma + 1 Seguinte k CxMsg( A soma é : & soma) Fim Proc Sub soma() Dim comp, k, I, soma As Integer comp = Val(InputBox( Somar quantos números inteiros? )) soma = 0; For k = 1 TO comp I = Val(InputBox( Próximo Número a somar )) soma = soma + 1 Next k MsgBox( A soma é : & soma) End Sub Obs. Quando o V.Basic executa um Ciclo Para... Seguinte, [For... Next] segue os seguintes passos: 1. Coloca o contador igual a início 2. Testa para ver se contador é maior do que o Fim. Se for, o V. Basic sai do Ciclo. 3. Corre as instruções 4. Incrementa o contador de 1, ou de incremento, caso tenha sido especificado 5. Repete os passos 2 a 4. Informática II Cap. III - Excel Visual Basic Pág. 26