Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Sumário Conceitos de Lógica de Programação Algoritmo 5 Formas de Representação de Algoritmos 5 Descrição Narrativa 6 Pseudocódigo 7 Portugol 7 Algumas palavras-chave 8 Regras para a construção do Algoritmo 8 Fases Fundamentais 8 Analogia do homem 9 Teste de mesa 10 Variáveis 11 Constantes 11 Tipos de Variáveis 12 Declaração e Atribuição de Variáveis 12 Estrutura de um Algoritmo 13 Imaginando o funcionamento de um computador 13 Programas de Computador 14 Fluxograma Convencional 14 Simbologia 15 Operadores e Funções 16 Operadores Aritméticos 16 Hierarquia das Operações Aritméticas 17 Operadores Relacionais 17 Operadores Lógicos 18 Funções Intrínsecas 18 Funções Aritméticas 19 Funções Literais Usuais 19 Estruturas Básicas de Controle 19 Decisão 20 Introdução às Macros Macro e o Ambiente VBA 26 Ativação da guia Desenvolvedor 26 2 Arquivos do Excel 28 Tipos de Macro 29 Ambiente Microsoft Visual Basic 31 Construção de uma Macro 35 Características Típicas de Macros em VBA 39 Linhas de Comentários 39 Comandos Sub / End Sub 39 Nome do Procedimento 40 Código-Fonte do Procedimento 40 Executar uma Macro 41 Macros de Endereço Absoluto e Relativo 42 Técnicas Gerais de Programação Conceitos Básicos 49 Procedimentos 49 Comandos e Instruções 49 Objetos 49 Propriedades 50 Métodos 50 Funções 50 Valores de uma Propriedade 51 Múltiplos Métodos e Propriedades 54 Hierarquia das Propriedades 56 Variáveis, Constantes e Aritmética 60 Tipos de Dados 64 Entrada de Dados 66 Desvios Condicionais 69 Laços 89 Depurar Macros 98 VBA (Visual Basic for Applications) Introdução 111 Conceitos Básicos de Programação 111 Algoritmos e Linguagem de Programação 112 Linguagem de Programação 113 Ambientes de Programação 114 VBA (Visual Basic for Applications) 115 Uma passagem rápida pelo Visual Basic 116 3 Macro 116 Considerações 121 Funções Definidas pelo Usuário Característica Funcional 122 Desenvolver Funções com o VBA 122 Função RaizTotal 122 Função Fibonacci 124 Função Hipotenusa 126 Verificação de Funções Definidas 127 Macros com Excel Definição da Planilha 132 Área de Recepção de Dados 133 Macro para Recepção dos Dados 134 Macro para Transporte dos Dados 138 Macro para Transporte Original 142 Macro para Transporte com Alteração 143 Macro para Cadastro dos Dados 145 Macro para Ordenar Dados 148 Classifica Curso: SortCurso 149 Classifica Data: SortData 150 Classifica Participante: Sortparticipante 151 Classifica Várias Chaves: SortRelatorio 153 Macro para Salvar Dados 156 Macros Interativas Botões para Executar Macros 164 Editar Texto 167 Associar Macros aos Botões 168 Mensagens na Barra de Status 170 Ordenação do Campo Curso com Mensagem 172 Ordenação do Campo Data com Mensagem 173 Ordenação do Campo Participante com Mensagem 174 Ordenação de Vários Registros com Mensagem 175 Mensagens com Caixas de Mensagens 176 Ordenação do Campo Curso com Caixa de Mensagem 176 4 Ordenação do Campo Data com Caixa de Mensagem 177 Ordenação do Campo participante com Caixa de Mensagem 178 Ordenação de Vários Registros com Caixa de Mensagem 179 VBA e a Interface com o Usuário Desenvolver Formulário 189 Caixa de Diálogo para Cadastrar 210 Atribuir Nomes aos Campos Inseridos 212 Determinar a Tabulação dos Campos 213 Executar a Macro para o Cadastro 216 Melhora da Execução de Macros 226 Macro do Botão de Ordenação 226 Macro do Botão OK de CxCadastra 227 Barra de Menus 233 Exercícios Propostos Conceitos de Lógica de Programação 239 Introdução às Macros 240 Técnicas Gerais de Programação 241 VBA (Visual Basic for Applications) 242 Funções Definidas pelos Usuário 243 Macros com Excel 244 Macros Interativas 245 VBA e a Interface com o Usuário 246 5 Conceitos de Lógica de Programação Algoritmo Uma sequência de ações finitas encadeadas e lógicas que descrevem como um determinado problema deve ser resolvido. Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que executam uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. Como exemplos de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos, como um aparelho de som, que explicam passo-a-passo como, por exemplo, gravar um evento. Até mesmo as coisas mais simples do nosso dia a dia, podem ser descritas por sequências lógicas. Por exemplo: Apesar do nome pouco usual, algoritmos são comuns em nosso cotidiano, como por exemplo, uma receita de bolo. Nela está descrita uma série de ingredientes necessários e uma sequência de diversos passos (ações) que devem ser fielmente cumpridos para que se consiga fazer o alimento desejado, conforme se esperava, antes do início das atividades (objetivo bem definido). Observa-se, porém que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica. No exemplo do parágrafo anterior para fazermos um bolo não podemos começar por colocar os ingredientes no forno. É necessário todo um processo passo a passo para se chegar a este fim. Formas de Representação de Algoritmos Existem diversas formas de representação de algoritmos, mas não há um consenso com relação à melhor forma delas. 6 O critério usado para classificar hierarquicamente estas formas está diretamente ligado ao nível de detalhe, inversamente ao grau de abstração oferecido. Algumas formas de representação de algoritmos tratam os problemas apenas em nível lógico, abstraindo-se de detalhes de implementação muitas vezes relacionados com alguma linguagem de programação específica. Por outro lado, existem formas de representação de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurecer a ideia principal, o algoritmo, dificultando seu entendimento. Dentre as formas de representação de algoritmo mais conhecidas, destacam-se: A descrição narrativa; O fluxograma convencional; O pseudocódigo, também conhecido como linguagem estruturada ou Portugal. Descrição Narrativa Nesta forma de representação, os algoritmos são expressos em linguagem natural. Exemplo: “Receita de um bolo” 1. Separar os ingredientes 2. Bater os ovos em neve na batedeira 3. Acrescentar açúcar e farinha de trigo 4. Colocar extrato de baunilha 5. Acrescentar uma colher de manteiga 6. Acrescentar uma colher de Fermento em pó 7. Verificar se esta doce o suficiente 8. Colocar na forma 9. Colocar no forno e assar 10. Retirar do forno 11. Tirar da forma e servir 12. Fim do processo Quando elaboramos um algoritmo devemos especificar ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzem um estado final previsível e bem definido. Isto significa que o algoritmo fixa um padrão de comportamento a ser seguido, uma normade execução a ser trilhada, com vistas a alcançar, como resultado final, a solução de um problema, garantindo que sempre que executado, sob as mesmas condições, produza o mesmo resultado. 7 A importância de se construir um algoritmo: conseguimos visualizar e testar ainda no papel, a solução criada com lógica de programação sem nos preocupar com detalhes computacionais e uma vez concebida uma solução algorítmica para um problema, esta pode ser traduzida facilmente para qualquer linguagem de programação e ser agregada das funcionalidades disponíveis nos diversos ambientes, ou seja, a codificação. Pseudocódigo Como foi visto até agora, o fluxograma convencional é a primeira forma de notação gráfica, mas existe outra, que é uma técnica narrativa denominada pseudocódigo, também conhecida como português estruturado ou chamada por alguns de portugol. Esta técnica de algoritmização é baseada em uma PDL – Program Design Language (Linguagem de Projeto de Programação). Aqui vamos apresentá-la em português. A forma originas de escrita é conhecida como inglês estruturado, muito parecida com a notação da linguagem PASCAL. A PDL (neste caso, o pseudocódigo) é usada como referência genérica para uma linguagem de projeto de programação, tendo como finalidade mostrar uma notação para elaboração de algoritmos, os quais serão utilizados na definição, criação e desenvolvimento de uma linguagem computacional (Clipper, C, Fortran, Pascal, Delphi, Visual-Objects) e sua documentação. Abaixo é apresentado um exemplo deste tipo de algoritmo. Os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo. O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação. Portugol A maioria esmagadora das linguagens de programação de computadores é em língua inglesa. Para facilitar o aprendizado de lógica de programação foram criadas algumas pseudolinguagens. O Portugol é uma pseudolinguagem de programação, uma simbiose de Português, Algol e Pascal, criada originalmente em inglês, com a proposta de ser independente da linguagem nativa (ou seja, existe em japonês, javanês, russo...). Basicamente, é uma notação para algoritmos, a ser utilizada na definição, criação, desenvolvimento e documentação dos programas. 8 Algumas Palavras-chave Início, Fim, Algoritmo, Enquanto, Se, então, Para, Até, Até que, Leia, Escreva, Faça, Repita, FimSe, FimEnquanto, FimSelecione, entre outras que veremos adiante. Regras para a construção do Algoritmo Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas: 1. Usar somente um verbo por frase 2. Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática 3. Usar frases curtas e simples 4. Ser objetivo 5. Evite usar palavras que tenham sentido dúbio 6. Procure dividir o problema em etapas menores. Fases Fundamentais Vimos que ALGORITMO é uma sequência lógica de instruções que podem ser executadas. É importante ressaltar que qualquer tarefa que siga comportamento padrão pode ser descrita por um algoritmo. Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais... ENTRADA → PROCESSAMENTO → SAÍDA Entrada: São os dados de entrada do algoritmo. Processamento: Procedimentos utilizados para chegar ao resultado final. Saída: São os dados já processados. 9 Analogia do homem Exemplo de Algoritmo Imagine o seguinte problema; Calcular a média final dos alunos. Pelas prova os alunos receberão 2 notas: N1, N2. Onde: Média Final = (N1+N2)/2 Para montar o algoritmo proposto, faremos três perguntas: Perguntas Respostas 1) Quais são os dados de entrada? Os dados de entrada são N1, N2. 2) Qual será o processamento a ser utilizado? O procedimento será somar todos os dados de entrada e dividi-los por 2 (dois). 3) Quais serão os dados de saída? O dado de saída será a média final. INÍCIO do algoritmo Receba a nota da prova 1 Receba a nota da prova 2 Some todas as notas e divida o resultado por 2 Mostre o resultado da divisão FIM do algoritmo 10 Teste de Mesa Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não, escrevendo todas as variáveis e resultados em uma tabela. Programa média Var Nome: caractere N1, N2: real Soma, média: real Início Imprima “Informe nome e notas do aluno:” Leia nome Leia n1 Leia n2 Soma <= n1 + n2 Média <= soma / 2 Imprima Nome Imprima Média Se média >= 5 Então Imprima “Aprovado” Caso contrário Imprima “Reprovado” Fim – Se Fim A diferença entre uma linguagem de programação de alto nível utilizada em computação e uma PDL é que esta (seja escrita em português, inglês, ou qualquer outro idioma) não pode ser compilada em um computador (por enquanto). Porém, existem “Processadores de PDL” que possibilitam traduzir essa linguagem numa representação gráfica de projeto, fornecendo uma variedade de informações, como: tabelas de referência cruzada, mapas de aninhamento, índice operacional do projeto, entre tantas outras. ATENÇÃO: Lembramos que o fluxograma e o pseudocódigo são as duas técnicas importantes para a documentação da solução de um problema computacional Constantes, Variáveis e Tipos de Variáveis Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória (endereço de memória) do computador para armazenar um conteúdo de determinado tipo, variável durante a execução do algoritmo. 11 Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos podem ser por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores. Variáveis Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode ser alterado ao longo do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Exemplos de variáveis: Nome Média = Soma / 20 Nome é o nome dado a uma posição de memória para armazenar um conteúdo com letras; Média é o nome dado a uma posição de memória para armazenar um valor real; Soma é o nome dado a uma posição de memória para armazenar um valor real. Constantes Constante é uma determinada variável que possui um valor fixo (que não se modifica) durante a execução de um algoritmo. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal. Exemplos de constante: Nome = “José da Silva” Peso = 85 12 Tipos de Variáveis As variáveis e as constantes podem ser basicamente de seis tipos: Numérica Específicas para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as Reais são para o armazenamento de números que possuam casas decimais (números fracionários). Caractere Específicas para armazenamento de conjunto de caracteres que não contenham números (literais). Ex: nomes. Alfanumérica (Expressões) Específicaspara dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para expressões (operações matemáticas). Lógica Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso. Indexada Armazenam variáveis uni e multidimensionais. Usuário Utilizada para variáveis não básica. São definidas através da instrução TIPO. Declaração e Atribuição de Variáveis As variáveis para utilizadas no programa devem ser declaradas (criadas) logo no início do algoritmo, na seção DECLARAÇÕES, quando será reservado espaço na memória. Só podem armazenar valores de um mesmo tipo. Todas as variáveis quando são criadas tem um conteúdo nulo (ou seja, nenhum conteúdo). Utilizamos o comando ATRIBUIÇÃO ( ), para atribuir valor a uma variável, bem como inicializá-la com um determinado valor. O sentido a seta é sempre da direita para a esquerda, e deve ser entendida como : ... um valor ATRIBUIDO a uma variável. 13 Estrutura de um Algoritmo ALGORITMO(“Nome do algoritmo”) {Declarações} Nome: caracter {a variável Nome é criada como caracter} Idade: inteiro {a variável Idade é número inteiro} {Atribuições} Nome ← “José da Silva” Peso ← 85 INÍCIO (Nome do bloco) {se for o caso, de refinamento} {Instruções} FIM Nome ← “José da Silva” (A variável “nome” recebe valor “José da Silva”) Peso ← 85 (A variável “Peso” recebe valor igual a 85) Observação: As seções Declarações e Atribuições são PÚBLICAS dentro do programa. Ou seja, são “vistas” em qualquer parte do programa. Dentro do Bloco, as seções Declarações e Atribuições são LOCAIS ao Bloco, ou seja, são privadas (particulares, internas) ao Bloco, conforme veremos em Refinamentos Sucessivos. Imaginando o funcionamento de um computador Vamos agora criar um algoritmo para somar dois números quaisquer. Podemos criar uma sequência de passos lógicos e encadeados para executar esta tarefa. Vamos ainda imaginar que você é um computador e que estes passos são ordens que você deverá seguir à risca. Cada retângulo abaixo é uma tela do computador onde estarão as instruções a serem executadas Passo 1 Início do processo – Separa três posições de memória para armazenar temporariamente 3 números aleatórios. Duas posições para armazenar 2 números a serem informados e 1 posição para armazenar o resultado solicitado da operação entre os dois primeiros números. Passo 2 Leia o número que eu estou digitando agora na sua tela de vídeo: 25. Passo 3 Leia o segundo número que estou digitando agora na sua tela de vídeo: 30. Passo 4 Some estes dois números. Passo 5 Mostre o resultado nesta mesma tela: 55. Passo 6 Fim do processo. 14 Observamos até que um algoritmo precisa: 1. Ter um início; 2. Ser escrito em termos de ações (comandos) bem definidos; 3. Que as ações sigam uma sequência ordenada e lógica. 4. Ter um ponto de finalização. Programas de Computador Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador, normalmente em inglês, (Pascal, C, Cobol, Fortran, Visual Basic, Delphi entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Notem que dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos da vida real. No nosso exemplo do tópico anterior nos antecipamos a este conceito que deverá ser melhor entendido agora. Para programar um computador precisamos dar “ordens” escritas ao mesmo “passo a passo”. Um computador é apenas uma máquina e não raciocina como nós humanos. Cada ordem é composta basicamente por um verbo que indique qual ação queremos que o mesmo execute, assim se queremos que o computador escreva algo na tela podemos usar algo como: WRITE (‘ESTOU ESCREVENDO ALGO NA TELA’) Fluxograma Convencional Sabemos que uma figura fala por mil palavras. No processo de aprendizado fixamos com mais facilidade imagens do que conceitos escritos. O diagrama de blocos ou fluxograma é uma forma padronizada eficaz para representar os passos lógicos de um determinado processamento. Com o diagrama podemos definir uma sequência de símbolos, com significado bem definido. Portanto, sua principal função é a de facilitar a visualização dos passos de um processamento. 15 O fluxograma é uma ferramenta usada e desenvolvida pelos profissionais de análise de sistemas, bem como, por alguns profissionais de Organização, Sistemas e Métodos. Tem como finalidade descrever o fluxo seja manual ou mecânico, especificando os suportes usados para os dados e informações. Usa símbolos convencionais, permitindo poucas variações. Representado por alguns desenhos geométricos básicos, os quais indicarão os símbolos de entrada de dados, do processamento dedados e da saída de dados, acompanhados dos procedimentos requeridos pelo analista de sistemas e a serem realizados pelo programador por meio do desenvolvimento do raciocínio lógico, o qual deverá solucionar o problema do programa a ser processado pelo computador. É uma ferramenta de uso em diversas áreas do conhecimento humano, por traduzir em formato gráfico algum procedimento ou norma. Simbologia Existem diversos símbolos em um diagrama de bloco. No decorrer do curso apresentaremos os mais utilizados. Veja no quadro abaixo alguns dos símbolos que iremos utilizar: Símbolo Nome Descrição Terminador Indica o início e o fim do fluxo do algoritmo. Seta de fluxo Indica o sentido do fluxo de execução do algoritmo. É através dela que os símbolos do fluxograma são conectados. Declaração Delimita a seção de declaração de variáveis. Entrada de dados Corresponde à instrução de entrada de dados através do teclado. Atribuição Símbolo utilizado para indicar cálculos e atribuição de valores. Saída de dados Corresponde à instrução de saída de dados. Os dados serão exibidos na tela do computador. Desvio condicional Divide o fluxo do programa em dois caminhos, dependendo do teste lógico que fica dentro do losango. 16 Exemplo: Operadores e Funções Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos três tipos de operadores: Operadores Aritméticos Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da adição, subtração, multiplicação e divisão, podem utilizar também o operador para exponenciação. Os símbolos para os operadores aritméticos podem ser vistos ao lado: Operação Símbolo Adição + Subtração - Multiplicação * Divisão / Exponenciação ** ou ^ 17 Hierarquia das Operações Aritméticas 1. ( ) o que estiver entre parênteses. 2. Exponenciação. 3. Multiplicação, divisão (o que aparecer primeiro). 4. + ou – (o que aparecer primeiro) Exemplo: TOTAL = PREÇO * QUANTIDADE 1 + 7 * 2 ** 2 – 1 = 28 3 * (1 – 2) + 4 * 2 = 5 Operadores Relacionais Os operadores relacionais são utilizados para comparar String de caracteres e números. Os valores a serem comparados podem ser caracteres ou variáveis. Igual a = Diferente de <> ou ≠ Maior que > Menor que < Maior ou igual a >= Menor ou igual a <= Estes operadores sempre retornam valores lógicos (Verdadeiro ou Falso / True ou False). Para estabelecer prioridades no que diz respeito a qual operação executar primeiro, utilize os parênteses. Os operadores relacionais são: Exemplos: Tendo duas variáveis A = 5 e B = 3, os resultados das expressões seriam: Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B Falso 18 Operadores Lógicos Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultadofinal é verdadeiro ou falso. Os operadores lógicos são: A tabela mostra todos os valores possíveis criados pelos três operadores lógicos. E (And) A expressão é verdadeira se todas as condições forem verdadeiras. OU (Or) A expressão é verdadeira se pelo menos uma condição for verdadeira. NÃO (Not) Inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa. Exemplos: Suponha que temos três variáveis A = 5, B = 8 e C = 1. Os resultados das expressões seriam: Expressões Resultado A = B AND B > C Falso A <> B OR B < C Verdadeiro A > B NOT Verdadeiro A < B AND B > C Verdadeiro A >= B OR B = C Falso A <= B NOT Falso Funções Intrínsecas São funções que resumem uma série se operações básicas. Podem ser Aritméticas, quando no tratamento de números e Literais quando no tratamento de alfanuméricos. 19 Funções Aritméticas Sintaxe Descrição Caracter Caracter(Num) Fornece o caracter correspondente a Num (entre 1 e 255) de acordo com a tabela ASCII. Int Int(Num) Arredonda um número real Num para baixo, retornando a parte inteira mais próxima. Raiz Raiz(Num) Retorna uma raiz quadrada de Num. Abs Abs(Num) Retorna o valor absoluto de Num, que é um número sem o respectivo sinal. Div Div(Num;Divisor) Retorna o quociente da divisão de Num por divisor. Mod Mod(Num;Divisor) Retorna o resto depois da divisão de Num por divisor. Funções Literais Usuais Sintaxe Descrição Ltrim Ltrim(Texto) Elimina de Texto espaços em branco à esquerda. Rtrim Rtrim(Texto) Elimina de Texto espaços em branco à direita. Comp Comp(Texto) Fornece o total de caracteres de Texto incluindo espaços em branco. Direita Direita(Texto;NCaract) Retorna os últimos NCaract caracteres em Texto. Esquerda Esquerda(Texto;Núm_Carcat) Retorna os primeiros Núm_Caract caracteres em Texto. Sub Sub(Texto;N;M) Resulta uma parte de Texto que começa no caracter de numero N e tem tamanho M. Pos Pos(Texto;Parte) Indica a posição da primeira ocorrência de Parte em Texto. ASCII ASCII(Texto) Fornece o valor inteiro correspondente ao primeiro caractere de Texto, segundo a tabela ASCII. Estruturas Básicas de Controle Na maioria das vezes necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura de Decisão e a estrutura de Repetição. 20 Decisão Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente sequenciais. Com as instruções de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. As principais estruturas de decisão são: “Se Então”, “Se então Senão” e “Selecione Caso”. SE ENTÃO / IF ... THEN A estrutura de decisão “SE/IF” normalmente vem acompanhada de um comando, ou seja, se determinada condição for satisfeita pelo comando SE/IF então execute determinado comando. Imagine o exemplo abaixo, um algoritmo que determinado aluno somente estará aprovado se sua média for maior ou igual a 5.0, o diagrama de blocos ficaria conforme ao lado. SE Media >= 5.0 ENTÃO “Aluno Aprovado”. SE ENTÃO SENÃO / IF ... THEN ... ELSE A estrutura de decisão “SE/ENTÃO/SENÃO”, funciona exatamente como a estrutura “SE”, com apenas uma diferença, em “SE” somente podemos executar comandos caso a condição seja verdadeira, diferente de “SE/SENÃO” pois sempre um comando será executado independente da condição, ou seja, caso a condição seja “verdadeira” o comando da condição será executado, caso contrário o comando da condição “falsa” será executado. Ao lado o diagrama... 21 Em algoritmo ficaria assim: SE Media >= 5.0 ENTÃO “Aluno Aprovado” SENÃO “Aluno Reprovado” Fim SE No exemplo acima está sendo executada uma condição que, se for verdadeira, executa o comando “APROVADO”, caso contrário executa o segundo comando “REPROVADO”. Podemos também dentro de uma mesma condição testar outras condições. Como no exemplo a o lado: 22 SELECIONE CASO / SELECT ... CASE A estrutura de decisão SELECIONE/CASO é utilizada para testar, na condição, uma única expressão, que produz um resultado, ou, então, o valor de uma variável, em que está armazenado um determinado conteúdo. Compara-se, então, o resultado obtido no teste com os valores fornecidos em cada cláusula “Caso”. No exemplo do diagrama de blocos abaixo, é recebido uma variável “Op” e testado seu conteúdo, caso uma das condições seja satisfeita, é executado o bloco de comandos apropriado, caso contrário é executado a opção de comandos de caso senão. SELECIONE CASO Op CASO 1 <comandos > CASO 2 <comandos > CASO 3 <comandos > CASO 4 <comandos > CASO 5 <comandos > CASO SENÃO <comandos > FimSelecione Enquanto <condição>, Faça (Do While ... Loop) Neste caso, o bloco de operações será executado enquanto a condição x for verdadeira. O teste da condição será sempre realizado antes de qualquer operação. Enquanto a condição for verdadeira o processo se repete. Podemos utilizar essa estrutura para trabalharmos com contadores. Em diagrama de bloco: 23 Exemplo de Contador Enquanto <condição> Faça <comandos> FimEnquanto Até que <condição>, Faça ... (Do Until ... Loop) Neste caso, o bloco de operações será executado até que a condição seja satisfeita, ou seja, somente executará os comandos enquanto a condição for falsa. Em diagrama de blocos: Exemplo de Até Diagrama Até <condição> Faça <comandos> FimAté 24 Repita ..., Enquanto <condição> (Do ... Loop While) Neste caso primeiro são executados os comandos, e somente depois é realizado o teste da condição. Se a condição for verdadeira, os comandos são executados novamente, caso seja falso é encerrado o comando DO. Em diagrama de bloco: Exemplo de Diagrama de Bloco Repita <comandos> Enquanto <condição> Repita ..., Até que <condição> (Do ... Loop Until) Neste caso, executa-se primeiro o bloco de operações e somente depois é realizado o teste de condição. Se a condição for verdadeira, o fluxo do programa continua normalmente. Caso contrário é processado novamente os comandos antes do teste da condição. Exemplo de Diagrama de Bloco Repita <comandos> Até que <condição> 25 Para ...de..., até...passo...faça...seguinte (For ... To ... Next) Tem seu funcionamento controlado por uma variável chamada contador. Sendo assim, executará um determinado conjunto de instruções, um determinado número de vezes, a passos (intervalos) controlados (de 2 em 2, de 3 em 3 ...). PARA <contador> DE <inicio> ATÉ <fim> PASSO <incremento> FAÇA <comandos> 26 Introdução às Macros Apresentamos o uso e a construção de macros com a linguagem de programação Visual Basic for Applications (VBA), que acompanha o Microsoft Excel 2013. Aborda como distinguir seus tipos, executá-los e trabalhar com suas opções de gravação. Macro e o Ambiente VBA Macro comandos são um conjunto de instruções dispostas de forma lógica com a finalidade de automatizar tarefas ou ações da planilha do Excel. São consideradas com o mesmo requinte da área de programação de computadores, pois as macros são constituídas de um conjunto de comandos e funções que atendem a certa necessidade específica, definida pelo próprio usuário. O termo macro comando é aqui utilizado no mesmo sentido em que se utiliza o termo linguagem de programação de computadores. A diferença entre as duas nomenclaturas consiste no fato de que uma linguagem de programação de computadores é uma ferramenta independente de trabalho, o que não ocorre com os recurso de macrocomandos, que, para serem utilizados, necessitam de um aplicativo em execução, como ocorre com o efeito de programação usado no programa de planilha eletrônica do Excel. O programa Microsoft Excel 2013 usa, para desenvolvimento de macro comandos, o ambiente Visual Basic for Applications (VBA) versão 7.0, compatível com o ambiente integrado de programação Visual Basic do pacote Visual Studio 6.0, de 1988. O pacote de programação Visual Studio é uma ferramenta que possui alguns ambientes de programação, destacando-se o ambiente integrado de programação Visual Basic, que opera com a linguagem de programação Structured BASIC. Tanto o ambiente Visual Basic como o ambiente VBA do Microsoft Excel 2013 usam a linguagem Structured BASIC, o que lhes dá certa similaridade na escrita de códigos, mas não em sua forma de execução. Ativação da Guia Desenvolvedor O Excel possui o ambiente VBA, dedicado à criação de macro comandos. Por ser um recurso destinado a uma parcela menor de usuários, encontra-se omitido no programa após a instalação, de forma que apenas os usuários que realmente necessitam desse recurso devem ativá-lo. 27 Caso a guia Desenvolvedor não esteja disponível (o que é provável após a instalação do programa), acompanhe os passos seguintes: Vá a guia Arquivo, opção Opções, categoria Personalizar Faixa de Opções. Na categoria Guias Principais, selecione a Caixa de seleção Desenvolvedor e acione o botão OK. A opção de habilitação da guia Desenvolvedor é do tipo Liga/Desliga, podendo ser habilitada ou desativada. Ambiente de configurações do Excel. Guia Desenvolvedor ativada, na última posição. 28 Ao selecionar a guia Desenvolvedor, são encontrados as ferramentas para a criação de macro e formulários. Ferramentas disponíveis na guia Desenvolvedor. Arquivos do Excel Os Formatos XML do Office apresentam várias vantagens, não só para desenvolvedores e para as soluções criadas por eles, mas também para usuários e organizações de todos os tamanhos. Arquivos compactos: os arquivos são compactados automaticamente e, em alguns casos, podem ficar até 75% menores. Os Formatos XML do Office usam a tecnologia de compactação ZIP para armazenar documentos, o que permite economias de custo, reduzindo o espaço em disco necessário para o armazenamento de arquivos e diminuindo a largura de banda necessária para envio de arquivos por e-mail, redes e Internet. Ao abrir um arquivo, ele é automaticamente descompactado. Ao salvar um arquivo, ele é automaticamente compactado. Não é necessário instalar nenhum utilitário ZIP específico para abrir e fechar arquivos do Office. Recuperação avançada de arquivos danificados: os arquivos são estruturados de uma maneira modular, que mantém separados os componentes de dados diferentes no arquivo. Isso permite que eles sejam abertos mesmo que um componente do arquivo (por exemplo, um gráfico ou uma tabela) esteja danificado ou corrompido. Simples detecção dos documentos que contém macros: os arquivos salvos com o sufixo x padrão (por exemplo, .docx e .pptx) não podem conter macros VBA (Visual Basic for Applications) nem controles ActiveX. Portanto, não apresentam nenhum risco de segurança associado a esses tipos de código incorporado. Somente os arquivos cujas extensões terminam com m (por exemplo, .docm e .xlsm podem conter macros VBA e controles ActiveX, que são armazenados em uma seção separada no arquivo. As extensões diferentes para os arquivos facilitam a distinção entre os que contêm macros e aqueles que não contêm, além de facilitarem a identificação dos arquivos que contêm códigos mal-intencionados, identificados pelos softwares antivírus. Além disso, os administradores de TI podem bloquear os documentos que contêm macros ou controles indesejados, tornando ainda mais segura a abertura de documentos. 29 Mais privacidade e controle de informações pessoais: é possível compartilhar documentos de forma confidencial, pois informações de identificação pessoal e comercial sigilosas, como nomes de autor, comentários, alterações controladas e caminhos de arquivo, podem ser facilmente identificadas e removidas com o Inspetor de Documentos. Melhor integração e interoperabilidade de dados comerciais: a utilização dos Formatos XML do Office, como a estrutura de interoperabilidade de dados para o conjunto de produtos do Office, indica que documentos, planilhas, apresentações e formulários podem ser salvos em formato XML disponível gratuitamente para utilização e licenciamento, por qualquer usuário, sem pagamento de royalties. O Office também oferece suporte a esquemas XML definidos pelo cliente, que aprimoram os tipos de documentos do Office existentes. Isso significa que os clientes podem desbloquear facilmente as informações nos sistemas e utilizá-las em programas da família Microsoft Office. As informações criadas no Office podem ser facilmente usadas por outros aplicativos comerciais. Para abrir e editar um arquivo do Office, é preciso apenas um utilitário ZIP e um editor de XML. Tipo de arquivo XML Extensão Pasta de trabalho .xlsx Pasta de trabalho habilitada para macro .xlsm Modelo .xltx Modelo habilitado para macro .xltm Pasta de trabalho binária não XML .xlsb Suplemento habilitado para macro .xlam Tipos de Macro As macros podem ser divididas em três tipos, sendo de comando, de funções definidas pelo usuário e de sub-rotina, as quais são descritas em seguida. 30 Macros de Comando – Esse é o tipo mais comum de procedimento. Geralmente, equivale a comandos de menu e Caixas de diálogo, utilizados somente nas regiões selecionadas de uma pasta de trabalho e suas planilhas. É como se os mesmos comandos do menu fossem executados diversas vezes. Macros de Funções Definidas pelo Usuário – Esse tipo de procedimento trabalha de forma idêntica às funções incorporadas ao Excel. A diferença é que o usuário cria sua própria função. O efeito de trabalho desse tipo de macro não se verifica nas regiões previamente selecionadas. Essas macros sempre retornam um determinado valor. Macro de Sub-Rotina – Esse procedimento é uma junção dos dois anteriores, pois tanto permite alterações em regiões previamente selecionadas como também retornar valores. Caracteriza-se pela possibilidade de ser chamada de dentro de outras macros, o que minimiza o uso de tarefas repetidas e torna o código de programação mais leve. Necessidade de Planejar uma Macro Jamais elabore uma macro sem planejá-la e rascunhá-la, pois o resultado pode ser o trabalho dobrado. Tenha o conceito a seguir sempre em mente: tudo o que é feito em um computador precisa ser planejado de antemão, não importa a experiência que você tenha. Uma construtora nunca ergue uma edificação sem sua respectiva planta, por mais tecnologia que possua ou conhecimento que tenha sobre o assunto. Sendo assim, aja da mesma forma. O processo de planejamento é fácil e muito útil, basta descrever todas as etapas a serem cumpridas para resolver o problema. Siga esse passos básicos: Entenda o problema a ser resolvido, fazendo uma análise de cada parte dele, a fim de ter uma sólida ideia do que deve ser feito. Planeje o procedimento manualmente, rascunhando em um papel. Em alguns casos, é aconselhável até elaborar um diagrama de blocos para completar a tarefa a ser executada mais rapidamente. Somente após executados os passos anteriores, é que a codificação do procedimento pode ser feito na planilha. Em alguns casos, essa tarefa pode ser simplificada com a utilização do recurso de gravação de toques no teclado e no mouse. Sempre deve-se atribuir um nome a um procedimento, para identificação e posterior execução. O nome precisa ser o amis sugestivo possível à sua função. 31 Ambiente Microsoft Visual Basic O ambiente de edição de macros do Visual Basic no Excel inclui um editor de código,um pesquisador de objeto hierárquico, um depurador multipainel, uma janela propriedades e um Explorer de projeto, para ajudar a visualizar e organizar o código e o objeto do projeto. Auxilia, assim, a escrever um código de programação sintaticamente correto. Para ativar o ambiente de programação de forma simples, execute: vá a guia Desenvolvedor, grupo Código, botão Visual Basic ou faça uso da tecla de atalho <Alt>+<F11>. Apresentação do ambiente Microsoft Visual Basic. O aplicativo Microsoft Visual Basic é um ambiente completo de desenvolvimento de programas (macros) e sua tela possui alguns componentes importantes. Todo aplicativo Windows tem uma Barra de Título, uma Barra de Menus e Barras de Ferramentas, porém o foco central de trabalho são três áreas no centro da tela, designadas Janela de Projetos, Janela de Propriedades e Janela de Código, que podem estar em exibição ou ocultas. A Janela de Projetos e, na verdade, um Explorer (com funcionamento semelhante ao Explorer do Windows), que exibe uma lista hierárquica dos projetos e todos os seus itens, como Formulários e Módulos. Essa janela possui três botões, ou elementos, que executam, respectivamente, da esquerda para a direita, Exibir código, Exibir objeto e Alternar pastas. 32 Janela de Projetos. A Janela de Propriedades lista as propriedades da fase de projeto dos objetos selecionados e suas definições atuais. Essas propriedades podem ser alteradas. Quando múltiplos controles são selecionados, a Janela de Propriedades apresenta uma lista das propriedades comuns a todos os controles selecionados. Essa janela possui três elementos: Caixa Objeto: lista o objeto selecionado, deixando somente os objetos do formulário ativo visíveis. Se múltiplos objetos são selecionados, suas propriedades comuns e definições, baseadas no primeiro objeto selecionado, aparecem nas guias de listagem de propriedades, Alfabético e Categorizado. Janela de Propriedades. 33 Alfabético: apresenta uma lista, em ordem alfabética, de todas as propriedades do objeto selecionado que podem ser alteradas na fase de projeto, assim como suas definições atuais. Para alterar uma propriedade, marque-a e digite ou selecione a nova definição. Categorizado: exibe uma lista, por categoria, de todas as propriedades do objeto selecionado. Por exemplo, BackColor, Caption e ForeColor se encontram na categoria Aparência. Nessa guia, é possível reduzir a lista, a fim de visualizar as categorias ou expandir uma categoria para visualizar as propriedades. Quando uma categoria é expandida ou reduzida, ela é indicada com um sinal de adição (+) ou subtração (-) à esquerda do nome. A Janela de Código, é utilizada para gravar, exibir e editar códigos de programa Visual Basic. Uma Janela de Código pode ser aberta pelas janelas Projeto, Formulário ou Módulos, com um duplo clique ou pelo botão Exibir código, na Janela de Projetos. Janela de Código. Caixa Objeto Esse elemento apresenta o nome do objeto selecionado. Clique no botão drop-down, situado à direita da Caixa de listagem, para abrir uma lista de todos os objetos associados ao formulário. Caixa Procedimento/Evento Esse elemento lista todos os eventos de um formulário ou controle exibido na Caixa Objeto reconhecidos pelo Visual Basic. Quando um evento é selecionado, o procedimento associado a ele aprece na janela Código. 34 Caso seja exibido na Caixa Objeto (Geral), a Caixa Procedimento lista as declarações e todos os procedimentos gerais criados para o formulário. Caso o código de um módulo esteja sendo editado, a Caixa procedimento lista todos os procedimentos gerais no módulo. Em ambos os casos, o procedimento selecionado na Caixa Procedimento é exibido na Janela Código. Todos os procedimentos de um módulo aparecem em uma lista de rolagem, classificada em ordem alfabética. A seleção de um procedimento nas Caixas de listagem suspensas, localizadas na parte superior da Janela de Código, move o cursor para a primeira linha de código do procedimento selecionado. Barra de Divisão Quando essa Barra e arrastada para baixo, divide a Janela de Código em dois painéis horizontais, que podem ser rolados de modo independente. Em seguida, diferentes partes do código podem ser visualizadas ao mesmo tempo. As informações que aparecem nas Caixas Objeto e Procedimento/Evento se aplicam ao código no painel em foco. Para fechar um painel, arraste a Barra para a parte superior ou inferior da janela, ou, então, clique nela duas vezes. Barra do Indicador de Margem Trata-se de uma Barra cinzenta, situada do lado esquerdo da janela de Código. Ícone Exibir Procedimento Situado ao lado esquerdo inferior da Janela Código, esse botão exibe o procedimento selecionado. A janela Código só exibe um procedimento de cada vez. Ícone Exibir Módulo Completo Situado na parte inferior esquerda da janela Código, esse botão tem a finalidade de exibir todo o código do módulo. As demais informações para a utilização do ambiente de desenvolvimento são fornecidas à medida que os próximos capítulos usarem seus recursos. 35 Construção de uma Macro Macros são construídas e montadas no ambiente do Microsoft Visual Basic, o qual é aberto automaticamente pelo processo de gravação de macro. Para fazer um pequeno teste, vamos utilizar a forma mais simples de construção de macros, o recurso de gravação. Tudo o que for executado na planilha, em termos de digitação, formatação e acionamento de menus, é monitorado e transformado em código do Visual Basic, que fica associado à planilha. Procedimento Em primeiro lugar, certifique-se de que uma folha de planilha em branco esteja aberta e execute o comando: vá a guia Desenvolvedor, grupo Código, botão Gravar Macro. Abre-se a Caixa de diálogo Gravar macro, como indica abaixo, na qual devem ser informadas todas as lacunas editáveis para o início da documentação e da futura localização da macro. Caixa de diálogo Gravar macro. Observe que o Excel fornece automaticamente o nome Macro1 como sugestão para o nome da primeira macro, aberta nessa instância de trabalho. Essa macro terá por objetivo escrever um nome no meio da tela. Para tanto, escreva no campo de identificação de nomes, Nome da macro, o título Escreve_no_Centro. 36 Observação O nome informado no campo Nome da macro não pode ser iniciado por um número e não deve haver espaços em branco entre as palavras. Para melhor identificar um procedimento, apresenta-se, na Caixa de diálogo, uma área denominada Descrição. Nesse campo, você pode escrever um breve comentário sobre o procedimento, que, no caso, pode ser Apresentação de texto centralizado. Na mesma Caixa de diálogo existe também um botão drop-down, perto da opção Armazenar macro em, o qual permite selecionar uma entre três opções de armazenamento da macro a ser criada. A opção Pasta de trabalho pessoal de macros faz a gravação de todas as macros em um arquivo denominado PESSOAL na pasta C:\Program Files\Microsoft Office\Office15\XLSTART, de modo que as macros desenvolvidas ficam disponíveis para uso por qualquer planilha. A opção Esta pasta de trabalho permite a criação de macros na própria pasta de trabalho em uso. É utilizada para macros que devem estar perto das planilhas, sendo de uso exclusivo delas. Já a opção Nova pasta de trabalho grava uma macro em outra pasta de trabalho, a qual pode ser utilizada com um número grande de planilhas de outras pastas. Esse recurso é muito parecido com a opção Pasta de trabalho pessoal de macros, porém, com ela, é possível escolher o nome da pasta de trabalho. Vale salientar que o arquivo gerado por essa opção não é carregado automaticamente, como acontece com o arquivo PESSOAL. Observação Além dos campos já trabalhados, existe ainda a opção Tecla de atalho, que permite a definição de uma letra associada à tecla <Ctrl>, as quais, usadasem conjunto, executam a macro desejada. Caso seja indicada uma letra maiúscula, o comando de atalho deve ser utilizado com a tecla <Shift>, além do <Ctrl> e a letra. Assim, se a letra E for informada, a combinação de teclas <Ctrl>+<Shift>+<E> deve ser executada. 37 Caixa de diálogo Gravar macro. Acione o botão OK. Observe, na Barra de Status da planilha, a indicação do botão Parar gravação. Barra de Status e o botão Parar gravação. Agora que o Excel passou a indicar que está gravando, basta executar os comandos desejados para que eles sejam registrados. Assim sendo, posicione o cursor sobre a célula A9, digite nesta célula o texto Teste de execução de macro e acione <Enter>. Selecione a faixa de células de A9 até I9 e execute o comando: na guia Página Inicial, grupo Alinhamento, botão Mesclar e Centralizar. Escolha o formato Negrito e clique, em seguida, no botão Parar gravação, que se encontra ao lado do prompt (pronto) na Barra de Status do programa. A macro foi criada e guardada em módulo do Microsoft Visual Basic. Para ver a macro criada, execute o comando: vá a guia Desenvolvedor, grupo Código, botão Visual Basic. 38 Na janela Projeto – VBAProject, selecione a pasta Módulos com um clique no sinal + e selecione, na sequência, Módulo1. Em seguida, veja a listagem completa da macro criada por meio do recurso de gravação. Todas as ações executadas durante o processo de gravação foram monitoradas e traduzidas para comandos macro. Sub Escreve_no_Centro() ' ' Escreve_no_Centro Macro ' Apresentação de texto centralizado ' ' Atalho do teclado: Ctrl+Shift+E ' Range("A9").Select ActiveSheet.Paste Range("A9:I9").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext 39 .MergeCells = False End With Selection.Merge Selection.Font.Bold = True End Sub Características Típicas de Macros em VBA Uma macro escrita em Visual Basic possui, tipicamente, as características descritas nos tópicos seguintes. Linhas de Comentários São as linhas iniciadas por ‘ (apóstrofo). Elas indicam para o Excel que são apenas linhas de comentários, não sendo, assim, processadas. São muito úteis, pois exibem o nome do procedimento, a data de sua criação, o nome de quem as fez e a descrição de sua finalidade. Essas mensagens só são apresentadas se forem informadas no momento da gravação. Sub Escreve_no_Centro() ' ' Escreve_no_Centro Macro ' Apresentação de texto centralizado Comandos Sub/End Sub Essas palavras indicam o início e o final de um procedimento de comandos e, por esse motivo, são denominadas Procedimento Sub. Se o procedimento for do tipo função definida pelo usuário, apresentam-se as palavras Function/End Function que recebem o nome técnico de palavras-chave. Sub Escreve_no_Centro() (Corpo do procedimento com o código de programa) End Sub 40 Nome do Procedimento O nome do procedimento é apresentado à frente da palavra-chave, seguido de parênteses, os quais são obrigatórios e podem ser usados para indicar argumentos, no caso de funções definidas pelo usuário. Sub Escreve_no_Centro() Código-Fonte do Procedimento É o código inserido entra as palavras-chave e representa toda ação monitorada e gravada. No exemplo anterior, o código foi distribuído em duas rotinas, com as palavras-chave With/End With. With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Os demais comandos existentes no código de programa se referem às instruções de posicionamento do cursor dentro da planilha, como: Range("A9").Select O comando ActiveCell.FormulaR1C1 = “Teste de execução de macro” permite escrever dentro de uma célula da planilha. Para retornar à planilha, execute o comando pela janela Microsoft Visual Basic, no menu Arquivo, opção Fechar e voltar para Microsoft Excel (<Alt>+<Q>). Ou, então, selecione a folha de trabalho pelas teclas de atalho <Alt>+<Tab>. 41 Executar uma Macro Para ver o procedimento definido em funcionamento, selecione o Excel, pressionando as teclas <Alt>+<Tab> simultaneamente. Vá a guia Desenvolvedor, grupo Código, botão Macros na Caixa de diálogo Macro selecione a desejada e clique em Executar. 42 Observe que estamos salvando o nosso documento com o nome de Macro01 no entanto, na Caixa Tipo alteramos para Pasta de Trabalho Habilitada para Macro do Excel e, em seguida, clicamos em Salvar. A abertura de uma planilha que contém um arquivo de macro (VBA) associado ocorre depois de surgir um aviso de segurança, indicando que as macros estão desabilitadas. Para habilitar uma macro, acione o botão Habilitar Conteúdo, na mensagem de segurança. Macros de Endereço Absoluto e Relativo Ao usar o gravador para gerar um procedimento, por padrão ele define os endereços das células como absolutos, ou seja, toda vez que se aciona o procedimento, ele é executado na mesma posição. 43 Havendo a necessidade de um procedimento ocorrer em outras células da mesma planilha, é necessário utilizar o endereço relativo. Nesse ponto, você também aprende a executar uma macro com a utilização das teclas de atalho. Macro de Endereço Absoluto Para exemplificar, um procedimento bastante simples, que escreva o nome de uma empresa em uma célula, seu telefone duas células a frente e o nome do contato três células a frente, será desenvolvido. Acompanhe os passos seguintes. Peça uma nova pasta de trabalho e execute, em seguida, o comando, vá a guia Desenvolvedor, grupo Código, botão Gravar macro. Em Nome da macro, digite Absoluto e, no campo Tecla de atalho, digite a letra A, em maiúsculo, que exige o uso da combinação de teclas <Shift>+<Ctrl>+<A> para iniciar a execução da macro. Na área Armazenar macro em, mantenha selecionada a opção Esta pasta de trabalho e, no campo Descrição, digite Utilização de Endereço Absoluto. Ao lado exibimos a Caixa de diálogo Gravar macro com as opções selecionadas. Caixa de diálogo Gravar macro, com opções estabelecidas pelo usuário. Acione o botão OK, posicione o cursor sobre a célula A2 e digite o nome Magnum Informática. Na sequência, coloque o cursor sobre a célula C2 e digite 2222-2222. Posicione o cursor sobre a célula F2 e digite José Absoluto, coloque o cursor sobre a célula A2 e, então, clique em Parar gravação. 44 Posicione o cursor sobre a célula A1 e execute a sequência de teclas <Shift>+<Ctrl>+<A> algumas vezes. Perceba que as informações fornecidas são escritas sempre nas mesmas posições. Acompanhe um exemplo com endereços relativos. Apague as informações digitadas nas células da planilha, posicione o cursor sobre a célula A1 e execute o comando, na guia Desenvolvedor, grupo Código, botão Gravar macro. É aberta a Caixa de diálogo Gravar macro, digite, no campo Nome da macro o título Relativo e, no campo Tecla de atalho, digite a letra R maiúscula. Em Armazenar macro em, mantenha a opção Esta pasta de trabalho selecionada e, no campo Descrição, digite Utilização de endereço relativo. Na sequência, acione o botão OK. Selecione o botão Usar Referências Relativas, que se encontra no grupo Código. Dessa forma, o método de endereço absoluto passa a ser relativo. Posicione o cursor sobre a célula A2 e digite o nome Imobiliária Pavão. Depois, coloque o cursor sobre a célula C2 e digite 3333-3333. E, em seguida, com o cursorsobre a célula F2, digite José Relativo. Depois, posicione o cursor sobre a célula A2 e interrompa a execução da macro. 45 Macro de Endereço Relativo O endereço relativo é naturalmente utilizado no preenchimento de planilhas cujos registros apontados devem estar sempre uma linha abaixo do último registro inserido. Para testar macro criada com a utilização do botão Usar Referências Relativas, pressione, simultaneamente, as teclas <Shift>+<Ctrl>+<R> algumas vezes. As informações fornecidas são escritas uma após a outra. Observação Para voltar ao padrão do Excel, que efetua a gravação de macros com endereços absolutos, não se esqueça de, na próxima gravação, desabilitar o botão Usar Referências Relativas. Fique sempre muito atento a essas duas condições de gravação. Após a realização dos testes anteriores, grave a planilha com o nome AbsRel. No código-fonte do Visual Basic, qual a diferença entre endereços absolutos e relativos? Para saber, abra o aplicativo Microsoft Visual Basic e localize a folha de trabalho Módulo1 em que foram gravadas as duas macros, conforme etapas anteriores. Se o Microsoft Visual Basic estiver fechado, execute o comando – na guia Desenvolvedor, grupo Código, botão Visual Basic. 46 Apresentação dos códigos Visual Basic gravados. Exemplo de Procedimento com Endereço Absoluto Sub Absoluto() ' ' Absoluto Macro ' Utilização de Endereço Absoluto. ' ' Atalho do teclado: Ctrl+Shift+A ' Range("A2").Select ActiveCell.FormulaR1C1 = "Magnum Informática" Range("C2").Select ActiveCell.FormulaR1C1 = "2222-2222" Range("F2").Select ActiveCell.FormulaR1C1 = "José Absoluto" Range("A2").Select End Sub 47 Exemplo de Procedimento com Endereço Relativo Sub Relativo() ' ' Relativo Macro ' Utilização de endereço relativo. ' ' Atalho do teclado: Ctrl+Shift+R ' ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "Imobiliária Pavão" ActiveCell.Offset(0, 2).Range("A1").Select ActiveCell.FormulaR1C1 = "3333-3333" ActiveCell.Offset(0, 3).Range("A1").Select ActiveCell.FormulaR1C1 = "José Relativo" ActiveCell.Offset(0, -5).Range("A1").Select End Sub Endereços Absolutos Endereços Relativos 1 Range(“A2”).Select ActiveCell.Offset(1, 0).Range(“A1”).Select 2 Range(“C2”).Select ActiveCell.Offset(0, 2).Range(“A1”).Select 3 Range(“F2”).Select ActiveCell.Offset(0, 3).Range(“A1”).Select 4 Range(“A2”).Select ActiveCell.Offset(0, -5).Range(“A1”).Select Na coluna Endereços Absolutos, estão os comandos que indicam exatamente o endereço das células a serem utilizadas. Note que as posições são sempre as mesmas, sendo A2: C2:, F2: e A2:, tantas quantas sejam as execuções do referido procedimento. Na coluna Endereços Relativos, encontram-se comandos com uma sintaxe diferente, os quais definem seu deslocamento desde a posição atual do cursor: Por exemplo, tomando por base a célula inicial A1:, o comando ActiveCell.Offset(1, 0).Range(“A1”).Select desloca o cursor uma linha para baixo, mantendo-o na mesma coluna. No caso, o cursor é posicionado sobre a célula A2:. O comando ActiveCell.Offset(0, 2).Range(“A1”).Select mantém o cursor na mesma linha (linha 2) e o desloca duas colunas para a frente, posicionando-o sobre a célula C2:. Em seguida, o comando ActiveCell.Offset(0, 3).Range(“A1”).Select mantém o cursor na mesma linha (linha 2) e o desloca três colunas para a frente, posicionando-o sobre a célula F2:. 48 Por último, o comando ActiveCell.Offset(0, -5).Range(“A1”).Select mantém o cursor na mesma linha, retorcendo cinco colunas e posicionando-o sobre a célula A2:. Até o momento, a execução do endereçamento relativo foi idêntica à do endereçamento absoluto, mas é desse ponto em diante que vê-se a diferença, pois o cursor fica posicionado sobre a célula A2:. Executa-se novamente o procedimento de endereço relativo, em que o comando ActiveCell.Offset(1, 0).Range(“A1”).Select desloca o cursor uma linha para baixo, mantendo-o na mesma coluna. Nesse caso, o cursor é posicionado sobre a célula A3:. O comando ActiveCell.Offset(0, 2).Range(“A1”).Select mantém o cursor na mesma linha (agora linha 3) e o desloca três colunas para a frente, posicionando-o sobre a célula C3:. Em seguida, o comando ActiveCell.Offset(0, 3).Range(“A1”).Select mantém o cursor na atual linha (linha 3) e o desloca três colunas para a frente, posicionando-o sobre a célula F3:. Por último, o comando ActiveCell.Offset(0, -5).Range(“A1”).Select mantém o cursor na atual linha (linha 3) e o desloca três colunas, posicionando-o sobre a célula A3:. E assim por diante. O valor 0 (zero) encontrado no endereço mantém o cursor na posição atual. Um valor positivo avança o cursor e um valor negativo retrocede-o. É preciso somente colocar o valor no local correto. Veja que, no comando, são dois os valores a serem trabalhados: o primeiro que altera a posição da linha e o segundo que muda a posição da coluna, sendo sua sintaxe a que segue ActiveCell.Offset(Linha, Coluna).Range(“A1”).Select. No final, feche a planilha atual. Para voltar ao padrão de gravação de endereço absoluto, clique no botão Usar Referências Relativas, que se encontra no grupo Código. Dessa forma, o método de endereço absoluto volta a ficar ativo. Alerta Antes de gravar uma macro, verifique se você está usando referências absolutas em sua construção, pois com referências relativas, a macro ocasiona problemas. 49 Técnicas Gerais de Programação Estudaremos agora algumas técnicas de programação a serem utilizadas com o ambiente de desenvolvimento Visual Basic for Applications. O objetivo principal é apresentar outras formas de desenvolver macros, sem utilizar apenas os recursos abordados anteriormente que envolvem o uso do gerador de macro. Conceitos Básicos Primeiro, é necessário saber os conceitos básicos de objetos, propriedades, comandos e instruções, métodos, funções, variáveis, constantes, decisões, laços, operadores lógicos e operadores relacionais, assim como conhecer o modo de estabelecimento de valores para uma propriedade, utilizados pelo programa Excel. Procedimentos A primeira definição é a de procedimento, que, de forma geral, é denominado macro. No Visual Basic, é a unidade básica de programação, ou seja, o conjunto de códigos, ou instruções de forma lógica dentro do editor da linguagem Visual Basic, com a finalidade de executar uma operação preestabelecida. Comandos e Instruções Comandos são conjuntos de palavras-chave (palavras reservadas, conhecidas como instruções) que visam executar certa operação pela linguagem de programação de macro comandos. Na linguagem de programação Structured Basic, existem vários comandos que podem ser classificados como métodos, propriedades, objetos e funções. As instruções de uma linguagem de programação, seja ela pura ou vinculada a algum aplicativo, são chamadas de palavras-chave por estarem reservadas a uma operação preestabelecida. Vale salientar que nenhuma variável podem, em momento nenhum, ter o mesmo nome que uma palavra-chave. Objetos No Excel, um objeto é tudo que pode ser manipulado ou visualizado de alguma forma. Por exemplo, a tela do Excel é um conjunto de objetos, incluindo a barra de status, as células, as caixas de diálogo, a janela, a pasta de trabalho, um intervalo de células e uma planilha. O Excel possui mais de 120 tipos diferentes de objetos. Um objeto pode ser alterado de duas formas, seja por meio de suas propriedades ou de seus métodos. 50 Propriedades A propriedade de um objeto se refere aquilo que ele é, ou seja, ao seu conjunto de características, tanto em aparência quanto em posição. Por exemplo, considere o objeto televisão, que tem como propriedade imagem e som; um objeto rádio tem como propriedade apenas apresentar o som. Deve-se considerar que umapropriedade está vinculada a um objeto. Por exemplo, no Excel pode-se apontar como propriedade o fato de uma janela estar maximizada ou minimizada. A janela é o objeto; o fato de estar maximizada ou minimizada é sua propriedade. Em sintaxe, primeiro é preciso estabelecer a indicação do objeto e, depois, a indicação de sua propriedade, como segue Objeto.Propriedade. Métodos O método de um objeto refere-se àquilo que o objeto faz, ou seja, a seu funcionamento e ação. Por exemplo, considerando novamente o objeto televisão, com as propriedades de imagem e som apresentadas, elas podem ser sintonizadas em qualquer canal. O objeto rádio, com a propriedade de som apresentada, pode mudar a sintonia de uma estação. Deve-se considerar que um método está vinculado ao estado de um objeto e executa nele alguma operação. Com sintaxe, um método pode ser escrito de duas formas, com ou sem argumentos. Sem argumentos, a sintaxe consiste apenas em citar Objeto.Método. Com argumentos, a sintaxe de um objeto passa a ser indicada de uma maneira mais completa, por Objeto.Método(Argumento1, Argumento2, ..., ArgumentoN). Funções Funções são fórmulas embutidas que realizam cálculos especiais automaticamente. A linguagem Structured Basic do ambiente VBA possui algumas funções matemáticas básicas para efetuar certos cálculos, como arco tangente, cosseno, exponencial, logaritmo, geração de número aleatório, senos, raiz quadrada e tangente, além da possibilidade de o próprio usuário criar suas funções. 51 Valores de uma Propriedade Em alguns casos, é necessário, durante a execução de uma macro, definir alguns valores e passá-los a uma determinada propriedade. Para que um valor seja atribuído a uma propriedade, deve ser utilizada a sintaxe Objeto.Propriedade = Valor, em que o valor pode ser numérico, de strings (caracteres), uma constante ou uma fórmula que retorne uma constante. Algumas das macros criadas até o momento possuem esse recurso, como é o caso da primeira, em que essa característica fica bastante evidente. Acompanhe o exemplo de uma macro que utiliza valores em uma propriedade. Perceba que a macro usa o objeto célula ativa com a instrução ActiveCell. A instrução Font representa uma das propriedades do objeto ActiveCell, assim como a instrução FormulaR1C1 é uma das propriedades do objeto ActiveCell. As demais instruções citadas após Font (Bold, Size, Name, Strikethrough e ColorIndex) são os métodos. A macro seguinte tem o objetivo de escrever, na célula sobre o qual o cursor estiver posicionado, o string Livro de Excel, depois formata-lo em Negrito, mudar o tamanho da fonte para 18 e configurar a apresentação da fonte de letras para Courier New. Por último, o texto é formato como Tachado (com um risco no meio da mensagem) e também tem sua cor alterada para vermelho (código 3). A macro em questão pode ser desenvolvida com o uso do gravador. No entanto, neste exemplo, o processo será desenvolvido manualmente. Para tanto, crie um documento de trabalho no programa Excel, grave o novo arquivo com o nome Macro02. Então, abra o editor do Microsoft Visual Basic com o comando: Na guia Desenvolvedor, grupo Código, botão Visual Basic. No editor, execute o comando a seguir para abrir uma folha adequada à digitação do código: 52 Clique em Inserir e, em seguida, em Módulo. Escreva a macro seguinte e observe como deve ficar a tela do ambiente de programação, conforme demonstração a imagem acima. 53 Para executar a macro, volte para a tela da planilha e execute o comando: Vá a guia Exibição, grupo Macro, botão Exibir Macros. Apresenta-se a Caixa de diálogo Macro, com a macro recém-criada. Mantendo o foco de seleção na macro EscreveNome, acione o botão Executar e veja o efeito as aplicação da macro à planilha. 54 Múltiplos Métodos e Propriedades Com a utilização do exemplo anterior, é possível perceber que, na maioria da vezes, um objeto possui inúmeras propriedades e, por conseguinte. Vários métodos. Isso é obtido facilmente com instruções que indiquem as propriedades adequadas aos referidos objetos e, então, executem os métodos necessários. Se houver um nome de objeto muito grande, essa tarefa pode tornar-se muito trabalhosa e cansativa. Por exemplo, veja quantas vezes foi repetida a instrução ActiveCell.Font na macro (Macro02) exemplificada anteriormente. Essa não é uma linha muito grande, mas é suficiente para dar uma noção de como simplificar o código do procedimento. Ao trabalhar com múltiplos métodos e propriedades, a sintaxe pode ser simplificada com o uso da instrução With e End With da seguinte forma: 55 Sub EscreveNome2 () ‘ ‘ EscreveNome Macro ActiveCell.FormulaR1C1 = “Training Education Services” With ActiveCell.Font .Bold = True .Size = 18 .Name = “Courier New” .Strikethrough = True .ColorIndex = 3 End With End Sub Observe que não é necessário definir a parte do comando que cita ActiveCell.Font em todas as linhas. O comando With (que significa com) agrupa, para o objeto ActiveCell (que significa célula ativa), a propriedade Font, que possui vários métodos para atender a uma finalidade em comum. Escreva a macro EscreveNome2() no editor de programas do Visual Basic for Applications. Para executá-la, volte à tela da planilha. 56 Hierarquia das Propriedades Uma consideração a ser feita sobre propriedades está relacionada à hierarquia. É preciso tomar cuidado para não confundir esse atributo com os conceitos já apresentados, pois algumas propriedades tem características que permitem que sejam utilizadas como objetos. Elas passam a ter um método ou propriedade a ser trabalhada e a hierarquia ocorre de um objeto de nível mais alto até um objeto de nível mais baixo. Sendo assim, a sintaxe a ser utilizada pode ser um pouco mais complexa, por exemplo, estabelecendo uma macro que minimize a janela ativa do aplicativo Excel. 57 O Excel é o objeto Aplicativo, assim, a Janela Ativa é uma propriedade do objeto Aplicativo. É necessário estabelecer que a propriedade Janela Ativa esteja Minimizada, por meio da manipulação de seu estado de apresentação. Portanto, a apresentação de uma janela ativa como Minimizada é o valor estabelecido para o objeto Janela Ativa, que, anteriormente, era considerado uma propriedade. Em outras palavras, Aplicativo.JanelaAtiva.EstadoJanela = Minimizada. Abra a tela do ambiente VBA e veja um exemplo, em Visual Basic, de uma macro para minimizar a janela ativa: Sub SuperJanela () ‘ ‘ SuperJanela Macro ‘ Apresentação de uma janela sendo minimizada ‘ ‘ Application.ActiveWindow.WindowState = xlMinimized End Sub Escreva a macro SuperJanela() no editor de programas do Visual Basic for Applications. Volte para a tela da planilha e execute a macro realizada. 58 Observe na sua barra de tarefas que a janela do Microsoft Excel 2013 foi minimizada, tornando-se um ícone em destaque. No exemplo anterior, há a definição do valor xlMinimized para a propriedade WindowState, que atribui esse valor ao objeto ActiveWindow. Ele se torna, então, uma propriedade quando passa a informação ao objeto Application. O objeto ActiveWindow refere-se implicitamente ao objeto Application. Portanto, é possível reduzir o código da seguinte forma: 59 Sub SuperJanela2() ‘ ‘ SuperJanela Macro ‘ Apresentação de uma janela sendo minimizada ‘ ‘ ActiveWindow.WindowState = xlMinimized End Sub Escreva a macro SuperJanela2() no editor de programas do Visual Basic for Applications. Volte para a tela da planilha e execute a macro realizada. 60 Observe na sua barra de tarefas que a janela do Microsoft Excel 2013 foi minimizada, tornando-se um ícone em destaque.Variáveis, Constantes e Aritmética Os procedimentos e funções desenvolvidos em VBA no Excel podem necessitar de valores a serem fornecidos durante a execução de uma macro. Nesse caso, o melhor é trabalhar com variáveis, que são uma região de memória nomeada com um rótulo de identificação e que armazena certo valor por um determinado período de tempo. O valor de uma variável pode ser um dado alfabético, numérico, alfanumérico ou lógico. Isso significa que qualquer dado que venha a ser processado por um programa em um computador precisa ser previamente armazenado na memória. Geralmente, esse efeito ocorre por meio do uso de variáveis. O nome de uma variável é utilizado para identificação e posterior uso dentro do programa. É necessário levar em consideração algumas regras de utilização. 61 Acompanhe: Nomes de variáveis podem ser atribuídos com um ou mais caracteres. O primeiro caractere do nome de uma variável não pode ser, em hipótese alguma, um número. Deve ser sempre uma letra. O nome de uma variável não pode possuir espaços em branco. Palavras reservadas a uma instrução ou a um identificador de uma linguagem de programação, bem como os nomes de seus controles, não podem servir de nome para uma variável. Outros caracteres, a não ser letras e números, não podem ser utilizados, com exceção do caractere underscore ( _ ), que pode ser utilizado para simular a separação de duas palavras, como Nome_Aluno, as quais também poderiam estar escritas como NomeAluno. Deve ser ainda considerado que, dentro de um programa, uma variável pode exercer dois papéis, sendo um o de ação, quando modificada ao longo de um programa para apresentar um determinado resultado, e o outro de controle, quando vigiada e controlada durante a execução de um programa (esse tipo de variável será estudado mais adiante, onde abordaremos a tomada de decisões e o uso de laços). Para usar variáveis, é necessário defini-las com o comando Dim no início de cada procedimento Sub ou Function. Além do nome da variável, é necessário estabelecer o tipo de dado que ela vai receber, com o comando de complemento As. Portanto, a sintaxe para uma variável é Dim <variável> As <tipo>, em que <variável> é o nome da variável e <tipo> é um tipo de dado, conforme a descrição do próximo tópico. Tudo o que é fixo, estável, inalterável, imutável, contínuo, incessante, invariável e de valor fixo pode ser considerado uma constante. Assim sendo, do ponto de vista computacional, semelhante ao conceito matemático, uma constante é uma grandeza numérica fixa, utilizada normalmente em uma expressão aritmética ou matemática, a qual define um valor que permanece inalterado na expressão, independentemente das variáveis envolvidas na operação a ser realizada. Como exemplo prático, pode-se considerar a constante matemática Pi que equivale ao valor aproximado 3,14159265, ou então a expressão matemática SAÍDA=ENTRADA+1,23, em que o valor 1,23 é a constante da expressão e SAÍDA e ENTRADA são, respectivamente, as variáveis da referida expressão. 62 Do ponto de vista computacional, além de constante ser um valor fixo, usado em uma expressão aritmética ou matemática, uma constante pode ser usada como rótulo de identificação, um nome pelo comando Const. Por exemplo, a expressão matemática SAÍDA=ENTRADA+PI é, do ponto de vista computacional, formada pelas variáveis SAÍDA e ENTRADA e pela constante PI, desde que a constante esteja previamente definida com a instrução Const PI = 3,14159265. Tanto variáveis como constantes podem ser utilizadas na elaboração de cálculos matemáticos com a utilização de operadores aritméticos. Os operadores aritméticos são classificados em binários ou unários. São binários quando atuam em variadas operações matemáticas. Observe a tabela a seguir: Operador Binário Operação a Ser Realizada ^ Exponenciação de valores inteiros. + Adição de valores inteiros e reais. - Subtração de valores inteiros e reais. * Multiplicação de valores inteiros e reais. / Divisão de valores reais. \ Divisão de valores inteiros. Mod Resto da divisão de valores inteiros. = Operação de atribuição. & ou + Concatenação de caracteres. São unários quando atuam na inversão de um valor, atribuindo a ele o sinal positivo ou negativo. Operador Unário Operação a Ser Realizada + Definição de números positivos. - Definição de números negativos. É importante considerar ainda a ordem de precedência da execução dos operadores aritméticos e a possibilidade de alterar essa ordem com o uso de parênteses. A tabela seguinte apresenta a ordem de execução dos operadores aritméticos. Operador Precedência ^ Exponenciação. * | / Multiplicação/Divisão com quociente real. \ Divisão com quociente inteiro. Mod Resto da divisão. + | - Adição/Subtração 63 Uma operação muito comum na programação de computadores é o uso de expressões aritméticas para estabelecer processamentos matemáticos. Define-se expressão aritmética como o relacionamento matemático entre variáveis e constantes numéricas por meio de operadores aritméticos. Na computação, as expressões aritméticas são escritas de modo diferente daquele conhecido na Matemática. Por exemplo, a expressão X = {43 . [ 55 : ( 30 + 2 ) ] } é escrita, na forma computacional, como X = ( 43 * ( 55 / ( 30 + 2 ) ) ). Perceba que as chaves e os colchetes são abolidos, utilizando-se, em seu lugar, apenas os parênteses. O sinal de implicação ou atribuído ( = ) é usado para indicar que o valor de uma expressão aritmética ou fórmula matemática está sendo armazenado em uma variável. Uma das funções de um programador é saber converter, em expressões aritméticas, as fórmulas matemáticas utilizadas pelos usuários dos programas por ele desenvolvidos. Nas expressões de cálculo das variáveis X1 e X2, a definição de DELTA ^(1/2) é a representação da extração da raiz quadrada de DELTA. Uma raiz, seja ela de qual índice for, pode ser extraída com o cálculo da exponenciação de sua base em relação ao valor inverso de seu índice. Além das constantes que podem ser definidas dentro de um programa de macro, há as constantes que são incorporadas e encontradas nas propriedades e nos métodos tanto do Excel como do Visual Basic for Applications. Para utilizar uma constante incorporada ao Excel, ela deve ser iniciada com as letras xl (xis e ele); já as constantes incorporadas ao Visual Basic são iniciadas por vb (vê e bê). Um exemplo de constante incorporada ao Excel é o valor xlMinimized, utilizado na macro SuperJanela, em que define-se a instrução ActiveWindow.WindowSate = xlMinimized. Neste exemplo, o valor xlMinimized é uma constante incorporada atribuída à propriedade WindowState do objeto ActiveWindow. Como exemplo de constante incorporada ao Visual Basic for Applications, há as constantes da Caixa de mensagem (MsgBox), as quais ainda serão vistas, sendo vbOK, vbCancel, vbYesNo, entre outros. 64 Tipos de Dados Os dados representam os elementos do mundo exterior, que são as informações manipuladas pelos seres humanos. Os dados a serem utilizados no computador devem primeiro ser abstraídos para, então, serem processados. Podem ser categorizados em três tipos primitivos ou básicos, sendo numéricos (representados por valores numéricos inteiros ou reais), caracteres (valores alfabéticos ou alfanuméricos) e lógicos (valores falsos e verdadeiros). O ambiente integrado Visual Basic for Applications fornece ao programador um conjunto de tipos de dados que atendem diversas necessidades, a saber: Tipo de Dado Tamanho Abrangência Byte 8 bits De: 0 Até: 255 Boolean 16 bits Falso: 0 ou False Verdadeiro: -1 ou True Integer 16 bits De: -32.768 Até: 32.767 Long 32 bits De: -2.147.483.648 Até: 2.147.483.647 Currency 2048 bits De: -922.337.203.685.477,5808 Até: 922.337.203.685.477,5807 Single 32 bits De: -3.402.8235e38 Até: 3.402.8235e38
Compartilhar