Excel Avançado
Curso de Microsoft Excel Avançado
2/48
Excel Avançado
Curso de Microsoft Excel Avançado
2/48
SUMÁRIO 1. OPERADORES DE CÁLCULOS EM FÓRMULAS.........................................................................................................5 FÓRMULAS.........................................................................................................5 1.1. Os operadores aritméticos.........................................................................................................................................5 1.2. Os operadores de comparação...................................................................................................................................5 1.3. O operador de texto...................................................................................................................................................6 1.4. Os operadores de referência......................................................................................................................................6 1.5. Uso do endereço absoluto ($A1)...............................................................................................................................6 1.6. Referências a outras planilhas ou pastas de trabalho.................................................................................................6 2. FÓRMULAS E FUNÇÕES.................................................................................................................................................7 FUNÇÕES.................................................................................................................................................7 3. FUNÇÕES ÚTEIS................................................................................................................. ÚTEIS...............................................................................................................................................................8 ..............................................8 3.1. Função Máximo....................................................................................................................................................... Máximo....................................................................................................................................................... ..8 3.2. Função Mínimo............................................................................. Mínimo..........................................................................................................................................................8 .............................................................................8 3.3. Função Maior.......................................................................... Maior.............................................................................................................................................................9 ...................................................................................9 3.4. Função Menor........................................................................................................................................................... Menor............................................................................................................................................................9 .9 3.5. Função Média..........................................................................................................................................................10 3.6. Função Hoje............................................................................ Hoje.............................................................................................................................................................10 .................................................................................10 3.7. Função Agora..........................................................................................................................................................10 3.8. Função Maiúscula......................................................................................................................... Maiúscula.................................................................................................................................................... ...........................10 10 3.9. Função Minúscula..................................................... Minúscula....................................................................................................................................................11 ...............................................................................................11 3.10. Função Pri.Maiúscula............................................................................................................................................11 3.11. Validação...............................................................................................................................................................11 3.12. Subtotais................................................................................................................................................................11 3.13. Função ProcV (Procura Vertical)..........................................................................................................................11 3.14. Função ProcH (Procura Horizontal)......................................................................................................................15 3.15. Vincular células entre planilhas.............................................................................................................................15 3.16. ARRUMAR...........................................................................................................................................................16 3.17. CONCATENAR................................................................................................................................................... CONCATENAR................................................................................................................................................... .16 3.18. DIREITA...............................................................................................................................................................16 3.19. EXT.TEXTO.........................................................................................................................................................17 3.20. NÚM.CARACT............................. NÚM.CARACT.....................................................................................................................................................17 ........................................................................................................................17 3.21. REPT.....................................................................................................................................................................18 3.22. INT18 3.23. MOD..................................................................................................................................................................... MOD..................................................................................................................................................................... .18 3.24. Auto Filtro.............................................................................................................................................................19 3.25. Função ( SE ).........................................................................................................................................................21 3.26. Função Aninhada (SE)........................................................................................................................... (SE)...........................................................................................................................................22 ................22 3.27. Fórmula do SomaSe...............................................................................................................................................22 SomaSe...............................................................................................................................................22 3.28. Formatação Condicional........................................................................................................................................23 3.29. Função ( E )...........................................................................................................................................................23 3.30. Função ( OU )........................................................................................................................................................24 4. Macros...............................................................................................................................................................................25 4.1. Como Gravar uma Macro?......................................................................................................................................25 4.2. Editor Visual Basic for Applications.......................................................................................................................26 4.3. Objetos mais usados no VBA:.................................................................................................................................27 4.4. As Cores do VBA....................................................................................................................................................27 4.5. Trabalhando com variáveis .....................................................................................................................................28 4.2.1 Variáveis – Declaração Opcional e o Tipo Variant..............................................................................................29 4.2.2Variáveis – Declaração Forçada................................................................................................... Forçada.......................................................................................................................... .........................29 ..29 4.2.3Declarando variáveis.............................................................................................................................................30 4.2.4Tipo de dados:.......................................................................................................................................................30 4.2.5Constantes..............................................................................................................................................................31 4.6. Operadores lógicos .................................................................................................................................................32 4.7. Comandos de Seleção (IF-THEN e IF-THEN-ELSE) ...........................................................................................32 4.8. Select Case........................................................... Case...............................................................................................................................................................33 ....................................................................................................33 4.9. Cláusulas de Loop ..................................................................................................................................................35 35 4.10. Utilizando Arrays..................................................................................................................................................37 4.11. Funções......................................................................................................... Funções................................................................................................................................................................. ........................................................ .37 4.12. Subrotinas .............................................................................................................................................................38
Curso de Microsoft Excel Avançado
3/48
5. Exemplos de Scripts:.........................................................................................................................................................42
Curso de Microsoft Excel Avançado
4/48
INTRODUÇÃO Este curso objetiva preparar o profissional que já possui algum conhecimento na elaboração de planilhas do Excel, para passar a utilizar novos recursos que possam incrementar suas tarefas, automatizando procedimentos ainda manuais e que tragam uma dinâmica na execução das atividades do dia a dia.
Sobre o Microsoft Excel O Excel é considerado um software de planilha eletrônica ou de cálculos. A primeira vista nos parece um pouco complicado, mas sua operação é muito simples. Com o Excel se pode fazer desde simples cálculos, até cálculos mais avançados como financeiros, matemáticos, lógicos, estatísticos, etc. Pode-se fazer desde controle de gastos, até controle de estoque ou fluxo de caixa de uma empresa. Você aprenderá a partir de agora as opções básicas e avançadas que serão utilizadas com o auxílio desta apostila, lembrando que esta apostila servirá como referência para a maioria dos comandos e opções do Excel. Em caso de dúvidas podemos contar também com a Ajuda do próprio programa. Utilizando o assistente acionado pela tecla F1.
1. OPERADORES DE CÁLCULOS EM FÓRMULAS Os operadores especificam o tipo de cálculo que você deseja efetuar nos elementos de uma fórmula. O Microsoft Excel inclui quatro tipos diferentes de operadores de cálculo: aritméticos, de comparação, texto e referência.
1.1. Os operadores aritméticos −
efetuam operações matemáticas básicas, como adição, subtração ou multiplicação, combinam números e produzem resultados numéricos. Exemplo:
+ – * / % ^
(sinal de adição) (sinal de subtração) (sinal de multiplicação) (sinal de divisão) (símbolo de percentagem) (sinal de exponenciação)
1.2. Os operadores de comparação −
comparam dois valores e produzem o valor lógico VERDADEIRO ou FALSO. Exemplo:
= > < >= <= <>
(sinal de igual) (sinal de maior do que) (sinal de menor do que) (sinal de maior ou igual a) (sinal de menor ou igual a) (sinal de diferente)
Curso de Microsoft Excel Avançado
Igual a Maior do que Menor do que Maior ou igual a Menor ou igual a Diferente
A1=B1 A1>B1 A1=B1 A1<=B1 A1<>B1
5/48
1.3. O operador de texto −
"&" combina um ou mais valores de texto para produzir um único texto. Exemplo:
& (E comercial) Concatena dois valores para produzir um valor de texto "north" & "wind" produz "Northwind".
contínuo
1.4. Os operadores de referência −
combinam intervalos de células para cálculos.
Exemplo : (dois-pontos) Operador de intervalo, que produz uma referência a todas as células entre duas referências, incluindo as duas referências B5:B15 Operador de união, que combina diversas referências em uma ; (ponto-e-vírgula) referência SOMA(B5:B15;D5:D15) (espaço simples) Operador de interseção, que produz uma referência a células comuns a duas referências SOMA(B5:B15 A7:D7) Neste exemplo, a célula B7 é comum aos dois intervalos.
1.5. Uso do endereço absoluto ($A1) Exemplo: $A1 mantém o endereço absoluto apenas da coluna A$1 mantém o endereço absoluto apenas da linha $A$1 mantém o endereço absoluto tanto da coluna como da linha
1.6. Referências a outras planilhas ou pastas de trabalho Como uma pasta de trabalho pode conter várias planilhas, é possível referenciar uma célula em outra planilha ou até em outro arquivo de pasta de trabalho. Observe em suas vinculações que o sinal de ! (exclamação) sempre estará presente após o nome de sua planilha. A [ (chave) estará sempre presente após o nome de seu arquivo de pasta de trabalho.
Exemplo: [EX_Folha]Janeiro!A3
EX_Folha (nome da pasta de trabalho) Janeiro (nome da planilha dentro da pasta de trabalho
Substituir uma fórmula pelo seu valor calculado Cuidado, quando você substitui uma fórmula pelo seu valor, o Microsoft Excel remove permanentemente a fórmula. Se você substituir acidentalmente uma fórmula por um valor e desejar restaurar a fórmula, clique em Desfazer logo após inserir ou colar o valor. 1 Selecione a célula que contém a fórmula. Se a fórmula for uma fórmula matricial, selecione o intervalo que contém a fórmula matricial. 2 Clique em Copiar . 3 No menu Editar, clique em Colar especial. 4 Em Colar, clique em Valores. Curso de Microsoft Excel Avançado
6/48
Substituir parte de uma fórmula pelo seu valor calculado 1 Clique na célula que contém a fórmula. 2 Na barra de fórmulas, selecione a parte da fórmula que você deseja substituir pelo seu valor calculado. Quando você seleciona a parte da fórmula que deseja substituir, certifique-se de que você tenha incluído o operando inteiro. Por exemplo, se você selecionar uma função, deve selecionar todo o nome da função, o parêntese de abertura, os argumentos e o parêntese de fechamento. 3 Para calcular a parte selecionada, pressione F9. 4 Para substituir a parte selecionada da fórmula pelo seu valor calculado, pressione ENTER. Para restaurar a fórmula original, pressione ESC.
2. FÓRMULAS E FUNÇÕES A diferença entre uma função e uma fórmula esta demonstrada no quadro abaixo:
FÓRMULA - Não possui um nome; - Não possui parâmetros;
FUNÇÃO - Possui um nome; - Possui parâmetros na maioria das funções; - Utiliza operadores aritméticos; - Utiliza operadores aritméticos e operadores de comparação; Exemplo: Fórmula
=A1+A2+A3+A4
Função
=SOMA(A1:A4), onde “SOMA” é o nome da função e “A1:A4” são os parâmetros
Curso de Microsoft Excel Avançado
7/48
3. FUNÇÕES ÚTEIS 3.1. Função Máximo Em uma matriz de dados ou faixa de valores, exibe o maior valor lançado (valor máximo).
Onde: (B2:E6) – matriz de valores que serão verificados pela função máximo.
3.2. Função Mínimo Em uma matriz de dados ou faixa de valores, exibe o menor valor lançado (valor mínimo).
Onde: (B2:E6) – matriz de valores que serão verificados pela função Mínimo.
Curso de Microsoft Excel Avançado
8/48
3.3. Função Maior A função Maior é muito parecida com a função Máximo. Ela retorna o maior valor de uma matriz de dados dependendo de sua classificação (o 2º maior, o 3º maior e assim por diante). Exemplo: Na matriz abaixo, retornar o 2º e o 3º maior valor.
3.4. Função Menor A função Menor faz a operação inversa da função Maior. Ela retorna, dependendo da posição desejada, qual é o menor número de uma matriz de dados (o 2º menor, o 3º menor, e assim por diante). Exemplo: Na matriz abaixo, retornar o 4º menor valor e o 3º menor valor.
Curso de Microsoft Excel Avançado
9/48
3.5. Função Média A função é utilizada para calcular a média de uma faixa de valores ou uma matriz de dados. Após serem somados, os valores são divididos pela quantidade de valores utilizados. Exemplo:
3.6. Função Hoje Esta função insere a data do sistema operacional automaticamente em uma planilha. Essa função é muito utilizada em relatórios, pois não há a necessidade da digitação constante da data. Requer um pouco de atenção, pois se esta função for inserida em um orçamento, por exemplo, exibirá sempre a data em que o arquivo estará sendo aberto.
3.7. Função Agora Muito parecida com a função anterior, mas com uma pequena diferença. A função agora insere automaticamente a DATA e a HORA do sistema operacional.
3.8. Função Maiúscula A função MAIÚSCULA converte valores digitados em minúscula para maiúscula. É utilizado quando a planilha já está pronta e deseja-se converter os valores sem necessidade de digitar novamente.
Curso de Microsoft Excel Avançado
10/48
3.9. Função Minúscula A função MINÚSCULA converte valores digitados em letras maiúsculas para minúsculas. É utilizado quando a planilha já está pronta e deseja-se converter os valores sem necessidade de digitar novamente.
3.10.Função Pri.Maiúscula A função Pri.Maiúscula converte a primeira letra de uma palavra para maiúscula. Muito útil para conversão de nomes quando digitados em letras minúsculas.
3.11.Validação Para formulários, normalmente utilizamos o comando de Validação para restringir o acesso aos dados dos usuários.
3.12.Subtotais O recurso de subtotal calcula rapidamente agrupamentos de valores ou dados, dependendo da classificação aplicada a tabela.
3.13.Função ProcV (Procura Vertical) Esta função é utilizada para ligar duas tabelas, localizando informações em uma delas e inserindo na outra. Por exemplo, imagine uma tabela de PREÇOS com a descrição e o valor de cada produto e outra tabela de PEDIDOS apenas com a descrição e a quantidade solicitada. Com a função PROCV podemos inserir na tabela PEDIDO o valor sem a necessidade de digitá-los novamente.
IMPORTANTE: Para utilizar esta tabela é necessário que exista um campo coincidente entre as duas tabelas. Em nosso exemplo utilizaremos o campo “Produto”. Esse campo coincidente pode ser texto ou numérico, como um código de produto. No exemplo, foram utilizadas duas Tabelas em uma mesma planilha, mas você pode utilizar esta função para localizar valores em outras planilhas do seu arquivo, ou mesmo em outros arquivos do Excel. Exemplo: Com a função PROCV vamos preencher a coluna preços com os valores existentes na planilha de preços.
Curso de Microsoft Excel Avançado
11/48
Sintaxe: PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;procurar_intervalo) Onde: valor_procurado – é o valor que você deseja encontrar na outra tabela (PRODUTO) matriz_tabela – é a tabela na qual constam os valores que você deseja obter (PLANILHA DE PREÇOS) núm_índice_coluna – Na matriz_Tabela é o número da coluna que contem os valores (Na planilha de Preços os valores estão na coluna 2, logo, o num_índice será 2) procurar_intervalo – Pode ser Verdadeiro ou Falso. Dependerá da tabela matriz. Em nosso exemplo, ela está em ordem alfabética e utilizaremos o VERDADEIRO.
Curso de Microsoft Excel Avançado
12/48
Passo a Passo: 1 – Na célula C3 digitaremos a função
2 – O valor Procurado será a célula A3 que contém a descrição do produto. Basta clicar sobre a célula. Repare que neste momento, Matriz_tabela está em negrito (Próximo passo) e que o ponto e vírgula aparecem automaticamente.
3 – Selecione toda a tabela de preços .
Curso de Microsoft Excel Avançado
13/48
4 – Posicione o cursor após A13:B21 e digite ponto e virgula. Depois disso, digite coluna (2) e novamente ponto e virgula. Perceba que apareceu uma lista de opções: VERDADEIRO ou FALSO. Escolha VERDADEIRO se a tabela matriz estiver em ordem alfabética, caso contrário escolha FALSO.
4 – Posicione ENTER e o primeiro resultado aparecerá.
Curso de Microsoft Excel Avançado
14/48
4 – Agora, arraste o conteúdo da célula C3 para baixo até a célula C10.
3.14. Função ProcH (Procura Horizontal) Definição: Localiza um valor especifico na linha superior de uma tabela ou matriz e retorna um valor na mesma coluna de uma linha especificada na tabela ou matriz.
Sintaxe PROCH(valor_procurado;matriz_tabela;núm_índice_lin;procurar_intervalo)
Valor_procurado: é o valor a ser localizado na primeira linha da matriz de dados. Importante: Deve obrigatoriamente estar na primeira linha. Matriz_tabela é a tabela de informações em que os dados são procurados. Use uma referência para um intervalo ou nome de intervalo. Num_índice_lin é o número da linha que está o resultado que a função deverá retornar. O índice inicia-se em 1 (sendo a primeira linha) e sucessivamente até a última linha dos dados. procurar_intervalo é o modo que a função irá retornar os dados. Se procurar_intervalo for FALSO, matriz_tabela não precisará ser ordenada. Possíveis erros: #VALOR! – quando núm_índice_lin for menor do que 1 #REF! – se núm_índice_lin for maior do que o número de linhas em matriz_tabela #N/D – quando o valor não é encontrado em matriz_tabela.
3.15. Vincular células entre planilhas Este processo é utilizado para vincular (criar um vinculo) entre células de várias planilhas. O processo é simples. Na célula de destino (onde você quer ter os dados vinculados) digite = (igual). Agora com o mouse clique na planilha onde se localiza os dados (em nosso exemplo na Plan2) Observe o resultado na barra de fórmulas: É criado um link (=Plan2!A2). Quando a célula A2 em Plan2 for alterada, automaticamente a planilha vinculada é alterada. Isso é muito útil para planilhas que utilizam muitos índices.
Curso de Microsoft Excel Avançado
15/48
3.16.
ARRUMAR
Remove todos os espaços do texto exceto os espaços únicos entre palavras. Use ARRUMAR no texto que recebeu de outro aplicativo que pode ter espaçamento irregular. Sintaxe ARRUMAR(texto) Texto é o texto do qual se deseja remover espaços. Exemplo ARRUMAR(" Primeiro Trimestre Ganhos ") é igual a "Primeiro Trimestre Ganhos"
3.17.
CONCATENAR
Agrupa várias seqüências de caracteres de texto em uma única seqüência de caracteres de texto. Sintaxe CONCATENAR (texto1;texto2; ...) Texto1; texto2;... são 1 a 30 itens de texto a serem agrupados em um único item de texto. Os itens de texto podem ser seqüência de caracteres de texto, números ou referências de célula única. Comentários O operador "&" pode ser usado no lugar de CONCATENAR para agrupar itens de texto. Exemplos CONCATENAR("Total "; "Valor") é igual a "Valor total". Isto equivale a digitar "Total"&" "&"Valor".
3.18.
DIREITA
Retorna o último caracter (ou à extrema direita) em uma seqüência de caracteres de texto. Sintaxe DIREITA(texto;núm_caract) Texto é a seqüência de caracteres de texto que contém os caracteres que se deseja extrair. Núm_caract especifica quantos caracteres você deseja extrair. · · ·
Núm_caract deve ser maior ou igual a zero. Se núm_caract for maior do que texto, DIREITA retornará todo o texto. Se núm_caract for omitido, será considerado 1.
Exemplos Curso de Microsoft Excel Avançado
16/48
DIREITA("Preço de Venda"; 5) é igual a "Preço" DIREITA("Número de estoque") é igual a "e" DIREITA assemelha-se à função ESQUERDA; Exemplos ESQUERDA("Preço de venda"; 5) é igual a "Preço" Se A1 contiver "Suécia", então: ESQUERDA(A1) é igual a "S"
3.19.
EXT.TEXTO
Retorna um número específico de caracteres da seqüência de caracteres texto, começando na posição que você especificar. Sintaxe EXT.TEXTO(texto;núm_inicial;núm_caract) Texto é a seqüência de caracteres de texto que contém os caracteres que você deseja extrair. Núm_inicial é a posição do primeiro caractere que você deseja extrair como texto. O primeiro caractere em texto possui núm_inicial1, e assim por diante. Exemplos EXT.TEXTO("Fluxo fluido"; 1; 5) é igual a "Fluxo" EXT.TEXTO("Fluxo fluido"; 7; 6) é igual a "fluido" EXT.TEXTO("1234"; 5; 5) é igual a "" (texto vazio)
3.20.
NÚM.CARACT
Retorna o número de caracteres em uma seqüência de caracteres de texto. Sintaxe NÚM.CARACT(texto) Texto é o texto cujo tamanho se deseja determinar. Os espaços contam como caracteres. Exemplos NÚM.CARACT("Rio de Janeiro, RJ") é igual a 18 NÚM.CARACT("") é igual a 0 Curso de Microsoft Excel Avançado
17/48
3.21.
REPT
Repete um texto um determinado número de vezes. Utilize REPT para preencher uma célula com um número de ocorrências de uma seqüência de caracteres de texto. Sintaxe REPT(texto;núm_vezes) Texto é o texto que você deseja repetir. Núm_vezes é um número positivo que especifica o número de vezes que você deseja repetir texto. Se núm_vezes for 0 (zero), REPT retornará "" (texto vazio). Se núm_vezes não for um inteiro, será truncado. O resultado da função REPT não pode ser superior a 32.676 caracteres. Exemplos REPT("*-"; 3) é igual a "*-*-*-" Se A3 contiver "Vendas", então:
3.22.
REPT($A$3; 2,9) é igual a "VendasVendas"
INT
Arredonda um número para baixo até o número inteiro mais próximo. Sintaxe INT(núm) Núm é o número real que se deseja arredondar para baixo até um inteiro. Exemplos INT(8,9) é igual a 8 INT(-8,9) é igual a -9 A seguinte fórmula retorna a parte decimal de um número real positivo na célula A1: A1-INT(A1)
3.23.
MOD
Retorna o resto depois da divisão de núm por divisor. O resultado possui o mesmo sinal que divisor. Sintaxe MOD(núm,divisor) Núm é o número para o qual você deseja encontrar o resto. Divisor é o número pelo qual você deseja dividir o número. Se divisor for 0, MOD retornará o valor de erro #DIV/0!. Comentários A função MOD pode ser expressa em termos da função INT: Curso de Microsoft Excel Avançado
18/48
MOD(n; d) = n - d*INT(n/d) Exemplos MOD(3; 2) é igual a 1
3.24.
Auto Filtro
O recurso de Autofiltro é utilizado quando quisermos rapidamente aplicar filtragem nos dados que estão sendo apresentados.
Curso de Microsoft Excel Avançado
19/48
Curso de Microsoft Excel Avançado
20/48
FUNÇÕES LÓGICAS (DECISÃO) As funções lógicas são usadas para criar testes lógicos. Um teste permite que uma fórmula tome uma decisão baseada em determinados dados. Sempre que o resultado de uma determinada célula exija mais do que um tipo de informação, ou que a fórmula a ser aplicada para aquela célula seja diferente dependendo do conteúdo de outras células, neste momento a decisão correta é utilizar uma fórmula lógica. A função lógica mais comum e útil é a função SE, a qual permite desenvolver vários tipos de testes lógicos sobre os operadores usados na declaração do teste.
3.25.
Função ( SE )
Retorna um valor se uma condição que você especificou avaliar como VERDADEIRO e um outro valor se for avaliado como FALSO. Use SE para conduzir testes condicionais sobre valores e fórmulas. Curso de Microsoft Excel Avançado
21/48
Sintaxe 1 SE(teste_lógico;valor_se_verdadeiro;valor_se_falso) - 1 - 2 - 3 1. Teste_lógico
É qualquer valor ou expressão que pode ser avaliada como VERDADEIRO ou FALSO. 2. Valor_se_verdadeiro
É o valor fornecido se teste_lógico for VERDADEIRO. Se teste_lógico for VERDADEIRO e valor_se_verdadeiro for omitido, VERDADEIRO será fornecido. Valor_se_verdadeiro pode ser outra fórmula. 3. Valor_se_falso
É o valor fornecido se teste_lógico for FALSO. Se teste_lógico for FALSO e valor_se_falso for omitido, FALSO será fornecido. Valor_se_falso pode ser outra fórmula.
Comentários Até sete funções SE podem ser aninhadas como argumentos valor_se_verdadeiro e valor_se_falso para construir testes mais elaborados. SE(B2>C2;"Acima do orçamento";"OK") é igual a "Acima do orçamento"
3.26.
Função Aninhada (SE)
SE(Média>89;"A";SE(Média>79;"B";SE(Média>69;"C";SE(Média>59;"D";"F")))) No exemplo anterior, a segunda instrução SE também é o argumento valor_se_falso para a primeira instrução SE. Da mesma maneira, a terceira instrução SE é o argumento valor_se_falso para a segunda instrução SE. Por exemplo, se o primeiro teste_lógico (Média>89) for VERDADEIRO, "A" será retornado. Se o primeiro teste_lógico for FALSO, a segunda instrução SE é avaliada e assim por diante.
3.27.
Fórmula do SomaSe
Soma um intervalo de células mediante uma condição estabelecida. Exemplo: você gostaria de somar somente as faturas que foram pagas.
Valor Recebido = SOMASE(C2:C7;”PG”;B2:B7)
Curso de Microsoft Excel Avançado
22/48
3.28.
Formatação Condicional
Funciona de forma similar a formatação convencional, a diferença é que a formatação obedece a um critério. Por exemplo: Em uma planilha de vendas, você quer assinalar as que tiveram valor igual ou superior a R$ 100,00. Para executar a formatação deve-se em primeiro momento selecionar as células onde os valores serão verificados. Clique no Menu Formatar e depois em Formatação Condicional (tela abaixo).
O Excel permite que sejam aplicadas até 3 formatações condicionais simultâneas. Para incluir mais verificações, clique no botão Adicionar.
3.29.
Função ( E )
Retorna VERDADEIRO se todos os argumentos forem VERDADEIRO; retorna FALSO se um ou mais argumentos forem FALSO.
Sintaxe E(lógico1;lógico2; ...) Lógico1; lógico2;... são de 1 a 30 condições que você deseja testar e que podem ser VERDADEIRO ou FALSO. Os argumentos devem ser valores lógicos, matrizes ou referências que contêm valores lógicos. Curso de Microsoft Excel Avançado
23/48
Uma matriz ou argumento de referência contiver texto ou células vazias, estes valores serão ignorados. Se o intervalo especificado não contiver valores lógicos, E retornará o valor de erro #VALOR!.
Exemplos: E(VERDADEIRO; VERDADEIRO) é igual a VERDADEIRO E(VERDADEIRO; FALSO) é igual a FALSO Se B4 contiver um número entre 1 e 100, então: E(1
SE(E(1
3.30.
Função ( OU )
Retorna VERDADEIRO se qualquer argumento for VERDADEIRO; retorna FALSO se todos os argumentos forem FALSO.
Sintaxe OU(lógico1;lógico2; ...) Lógico1; lógico2;... FALSO. Exemplos:
são 1 a 30 condições a serem testadas que podem ser VERDADEIRO ou
OU(VERDADEIRO) é igual a VERDADEIRO OU(1+1=1;2+2=5) é igual a FALSO
Curso de Microsoft Excel Avançado
24/48
4. Macros Uma macro é um pequeno programa que contém uma lista de instruções a realizar no Excel. Como sendo um repositório de operações, uma macro pode executar um conjunto de tarefas através de um único procedimento o qual pode ser invocado rapidamente. As instruções que formam o corpo da macro são escritas num código próprio para que o computador as possa entender, essa linguagem é designada por VBA – Visual Basic for Applications.
Existem duas possibilidades de criação de macros:
Através do Gravador de Macros Utilizando o editor e programando em Visual Basic for Applications
4.1. Como Gravar uma Macro? 1. Ferramentas / Macro / Macros. O Excel exibirá a caixa de diálogo da fig.1.
2. O nome da Macro será constituído por um conjunto de caracteres que identificarão a Macro e a sua funcionalidade. 3. Shortcut Key – é composto por uma combinação de teclas que poderão ser utilizadas para executar uma macro. 4. Opte por armazenar a macro numa das seguintes alternativas: This Workbook, New Workbook ou Personal Workbook, sendo que cada uma corresponde a macros de âmbito diferente. Assim deverão armazenar a macro na opção ThisWorkBook para que ela esteja activa sempre que o documento estiver aberto, e para que ela esteja armazenada no próprio ficheiro não correndo o risco de ficar armazenada nas Macros do Excel. 5. No campo Description, introduza um comentário à função – este poderá ser importante para que não seja esquecido o respectivo objectivo e funcionalidade. 6. Clique em OK para iniciar a gravação da macro – neste momento será exibida uma toolbar semelhante à da figura 2, e o ícone do rato será transformado numa cassete, indicando o estado de gravação. Curso de Microsoft Excel Avançado
25/48
1. Na toolbar Stop Record, existem dois botões: Stop Recording e Relative Reference – O botão de Stop Recording termina a gravação da macro, o botão de Relative Reference selecciona o modo de gravação da macro – se é feito com base em referências relativas (botão seleccionado) ou referências absolutas. 2. No caso da toolbar Stop Record desaparecer, poderá voltar a exibi-la fazendo no menu a sequência: Exibir / Barra de Ferramentas / Parar Gravação. Caso a toolbar não apareça listada a gravação de macros não está activa. Nota: Tome atenção aos passos que dá quando está a gravar pois tudo será registado, o que significa que quando for executar a macro, esses procedimentos serão efetuados. 4.2. Editor Visual Basic for Applications
Para abrir ao editor de Visual Basic for Applications: Ferramentas/ Macro / Editor Visual Basic ou Alt + F11.
Curso de Microsoft Excel Avançado
26/48
4.3. Objetos mais usados no VBA: - Range: refere-se a uma célula particular do Excel. Exemplo: Range("a2").Value=3 - Cells: uma outra maneira de se referir a uma célula particular do Excel. Exemplo: Cells(2,2).Value=6 - Worksheets: refere-se a uma planilha particular do Excel. Exemplo: Worksheets(“Plan3").Select - Worksheetfunction: chama as funções disponíveis do Excel. Exemplo:
- MsgBox: mostra uma mensagem no Excel. Exemplo: MsgBox Application.Name - debug.print : mostra um resultado, variável, etc Na Janela Imediata. Exemplo (Verificação Imediata): a=Worksheetfunction.Fact(3) debug.print a 6 4.4. As Cores do VBA
Na Janela de Edição são programados, armazenados e exibidos os procedimentos VBA criados. Porém, o texto envolvido em cada procedimento é dotado de uma série de cores diferentes, sendo que cada uma tem significado diferente. Cor Azul Vermelho
Preto Verde
Amarelo
Significado
Palavras-Chave da linguagem. Ex: Sub, End Sub, Function, If, Then, Else, While, Loop,… Sempre que escreve na janela uma linha em linguagem VBA, o editor vai rectificar a sintaxe da linguagem por forma a indicar se existe ou não algum erro de escrita. Se for detectado um erro a linha fica a vermelho e é exibida uma mensagem de erro, senão todas as palavras são reconhecidas, coloridas da cor da respectiva categoria e alteradas para letras maiúsculas ou minúsculas, conforme esteja pré-definido. Nome de variáveis, procedimentos, valores, operadores,… Comentário introduzidos no seio dos procedimentos. Estes comentários servem para o utilizador poder associar algumas explicações aos procedimentos realizados. De referir que as palavras com esta cor são ignoradas no procedimento, i.e., não produzem qualquer efeito na sua execução. Para introduzir comentários bastará que o caractere ‘ anteceda o texto a introduzir. Um sombreado amarelo poderá aparecer sobre a linha que identifica um procedimento. Esta cor simboliza a ocorrência de um erro na execução do respectivo procedimento e o estado de execução do mesmo, i.e., o procedimento
Curso de Microsoft Excel Avançado
27/48
iniciou a execução, durante a qual detectou um erro e agora está parado, mas ainda em execução. Quando isto acontecer não deverá voltar a dar ordem de execução do procedimento, sem antes parar (Stop) a execução mal sucedida.
4.5. Trabalhando com variáveis Variável Um local de armazenamento nomeado que pode conter dados, os quais podem ser modificados durante a execução do programa. Cada variável possui um nome que a identifica com exclusividade dentro de seu escopo. Os nomes de variável devem começar com um caractere alfabético, devem ser exclusivos dentro do mesmo escopo, não podem ter mais de 255 caracteres e também não podem conter um ponto ou caractere de declaração de tipo incorporado. Elas contêm dados temporários - Podemos pensar nas variáveis como “células do Excel” - Embora não seja obrigatório, é uma BOA prática de programação definir o tipo de informação que as variáveis armazenarão (em execuções longas ela economiza um pouco de tempo e memória). Isto é chamado “declarar uma variável”. - O tipo de informação que podemos armazenar numa variável depende do tipo de dados escolhido para aquela variável.
Curso de Microsoft Excel Avançado
28/48
4.2.1 Variáveis – Declaração Opcional e o Tipo Variant
A declaração de variáveis é opcional, se as variáveis não forem declaradas o VBA faz a sua declaração por defeito. Assim sempre que a instrução do Dim é omitida para uma variável, essa assume o tipo Variant. Utilização do tipo Variants Vantagens: •
•
Diminui o número de linhas de código Não é necessário estar preocupado se a variável está ou não declarada porque o VBA automaticamente o faz
Desvantagens: •
•
•
Aumenta o tempo de execução – o VBA primeiro precisa de reconhecer o tipo de dados com os quais está a trabalhar. Este tipo de dados consome mais memória (uma vez que tem que alocar espaço para qualquer tipo de dados que lhe seja atribuído) – 16 bytes mais um byte por caractere se for String => problemas de performance para subrotinas grandes. Não é possível saber o tipo de dados que uma determinada variável contém – dificultando a detecção de erros.
4.2.2 Variáveis – Declaração Forçada
Para que o VBA detecte um erro sempre que uma variável não seja declarada deverá fazer: • • •
Tools/Options Editor Tab Activar Require Variable Declaration
Ou então, escrever no início de cada módulo Option Explicit
Neste caso sempre que seja detectada uma variável que ainda não foi declarada dá uma mensagem de erro - Variable Not Defined
Curso de Microsoft Excel Avançado
29/48
4.2.3 Declarando variáveis Grande parte de seu trabalho no VBA será atribuir valor a variáveis e usar o seu conteúdo nos procedimentos e funções do seu código. O primeiro caractere deve ser uma letra, para que o VBA não “pense” que esse é um valor numérico. Não se pode usar as palavras reservadas do VBA, como nomes de variáveis; Não é permitido o uso de símbolos especiais de nossa língua como por exemplo: (Ponto), nem tampouco o uso de espaço. Por isso a melhor recomendação é: não use símbolos especiais e separe as palavras por letras maiúsculas. Obs.: As variáveis são declaradas antes de serem usadas, geralmente no início do programa. Os exemplos abaixo mostram os tipos de dados usados mais comuns Adicionando “Option Explicit” força a declaração da variável (recomendado) • •
Exemplos: Option Explicit Dim Result as Long Dim Totalsum as Double Dim Description as String Dim Startdate as Date - O exemplo a seguir cria a variável strNome e especifica o tipo de dados String. Dim StrNome As String
4.2.4 Tipo de dados: Boolean As variáveis Boolean são armazenadas como números de 16 bits (2 bytes), mas só podem ser True ou False. Byte As variáveis Byte são armazenadas como números de 8 bits (1 byte), sem sinal, únicos, que variam em valor de 0 a 255. O tipo de dados Byte é útil para conter dados binários.
Currency As variáveis Currency são armazenadas como números de 64 bits (8 bytes) em um formato de número inteiro, em escala de 10.000 para fornecer um número de ponto fixo com 15 dígitos à esquerda da vírgula decimal e 4 dígitos à direita. O tipo de dados Currency é útil para cálculos que envolvem dinheiro e cálculos de ponto fixo, nos quais a precisão é especialmente importante. Date As variáveis Date são armazenadas como números de 64 bits (8 bytes) que representam as datas que variam de 1 de janeiro de 100 a 31 de dezembro de 9999 e as horas de 0:00:00 a 23:59:59. Curso de Microsoft Excel Avançado 30/48
Qualquer valor literal de data reconhecível pode ser atribuído a variáveis Date. Os literais date devem estar entre sinais (#), por exemplo, #1 de janeiro de 1993# ou #1 jan 93#. As variáveis Date exibem as datas de acordo com o formato abreviado de data reconhecido por seu computador. As horas são exibidas de acordo com o formato de hora (12 ou 24 horas) reconhecido por seu computador. Double As variáveis Double, são armazenadas como números de 64 bits (8 bytes), com valor no intervalo de -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos e de 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos. Integer As variáveis Integer são armazenadas como números de 16 bits (2 bytes) com valor no intervalo de -32.768 a 32.767.
Long As variáveis Long (inteiro longo) são armazenadas como números de 32 bits (4 bytes), sinalizados, no intervalo de -2.147.483.648 a 2.147.483.647. Single As variáveis Single (vírgula flutuante de precisão simples) são armazenadas como números de 32 bits (4 bytes), com valor no intervalo de -3,402823E38 a -1,401298E-45 para valores negativos e de 1,401298E-45 a 3,402823E38 para valores positivos.
String Os códigos para caracteres String variam de 0 a 255. Os primeiros 128 caracteres (de 0 a 127) do conjunto de caracteres correspondem às letras e aos símbolos de um teclado padrão definidos pelo conjunto de caracteres ASCII. Os 128 caracteres (de 128 a 255) seguintes representam caracteres especiais, como letras de alfabetos internacionais, acentos, símbolos de moeda e frações.
Variant comprimento fixo. (Os tipos Variant agora dá suporte a tipos definidos pelo usuário.) O tipo de dados Variant é o tipo de dados para todas as variáveis que não estejam explicitamente declaradas como algum outro tipo (usando instruções como Dim, Private, Public ou Static). Uma Variant é um tipo especial de dados que pode conter qualquer tipo de dados, exceto dados String de comprimento fixo. (Os tipos Variant agora dá suporte a tipos definidos pelo usuário.) 4.2.5
Constantes
Constantes são valores que não alteram durante a execução de uma rotina. São declaradas da mesma forma que as variáveis, a única diferença reside no facto da atribuição ser feita na mesma instrução da declaração, e só poder ser feita uma única vez. Const As = Const As =
de cálculo>
Exemplo: Const percent As Doublé = 0.05
Curso de Microsoft Excel Avançado
31/48
4.6. Operadores lógicos And (Utilizado para efetuar uma conjunção lógica em duas expressões.) Sintaxe: resultado = expressão1 And expressão2 Se ambas as expressões forem avaliadas como True, resultado será True. Se uma das expressões for avaliada como False, resultado será False.
Or (Utilizado para efetuar uma disjunção lógica em duas expressões.) Sintaxe: resultado = expressão1 Or expressão2 Se uma ou ambas as expressões forem True, resultado será True.
Not (Utilizado para efetuar uma negação lógica em uma expressão.) Sintaxe: resultado = Not expressão O operador Not inverte os valores do resultado de uma expressão ou de uma variável.
4.7. Comandos de Seleção ( IF-THEN e IF-THEN-ELSE ) Os comandos IF-THEN e IF-THEN-ELSE permitem selecionar quais os comandos que serão executados dependendo de uma condição. O comando IF-THEN tem o seguinte formato:
If Condição Then Comando 1 Comando N End If Comando N +1 O comportamento do comando IF-THEN é o seguinte: primeiramente a condição é avaliada, podendo resultar em dois valores: TRUE (verdadeiro) ou FALSE (falso). Se a condição for verdadeira, os comandos 1 até N serão executados e, em seguida, o comando N +1. Se a condição for falsa, nenhum dos comandos de 1 a N será executado e o programa irá diretamente para o comando N +1. Por outro lado, o comando IF-THEN-ELSE tem o seguinte formato:
If Condição Then Comando 1 Comando N Else Comando N +1 Comando N +M End If Comando N +M +1 O comportamento do comando IF-THEN-ELSE é o seguinte: A condição é avaliada; se ela for verdadeira, os comandos de 1 até N serão executados; se a condição for falsa, os comandos de N +1 a N +M serão executados. Em ambos os casos, o comando posterior a ser executado será o comando N +M +1. Curso de Microsoft Excel Avançado 32/48
Exemplo: Sub Multiplicação1() Dim Mult as Double Mult = Range(“a1”).Value*Range(“b1”).Value If Mult > 20 Then MsgBox “Maior que 20" Else MsgBox “Menor que ou igual a 20" End If End Sub
4.8. Select Case
Permite a escolha de um percurso mediante a avaliação de n condições. É de extrema utilidade para evitar os If’s encadeados, dando um maior grau de legibilidade e simplicidade ao código construído. Select Case
[Case [Instruções a realizar]] ... [Case Else [Instruções a realizar na situação residual]] End Select
Curso de Microsoft Excel Avançado
33/48
Construção da Estrutura Select Case
Palavras-Chave que indicam o inicio de um controlo Select Case
Idade
Expressão sujeita a teste, i.e., variável cujo conteúdo está a ser avaliado. Esta variável vai ser comparada sucessivamente pelos valores alternativos apresentados nas instruções Case , se encontrar o valor nalguma dessas opções Case executará as linhas de código que aí terão inicio até à opção de Case seguinte. Caso o valor da variável a ser comparada não corresponda a nenhum valor apresentado nas opções Case, existe uma opção Case especial - Case Select - para os restantes valores, neste caso serão executadas todas as instruções que se localizem entre o Case Else e o Case Select.
Case Is<3 ou Case Is<=12 ou Case Is<=17 ou Case Is<=25 ou Case Is<=65 ou
Expressões Case. Se o valor da variável for igual a qualquer um dos valores apresentados em cada uma destas expressões, o fluxo de execução terá continuidade na linha abaixo da expressão case que faz o matching, até que uma nova expressão case seja encontrada. Sendo que nessa altura termina o controlo Select Case dando continuidade ao programa nas instruções que se seguirem ao End Select.
Case Else
Será a instrução Case residual, seleccionada somente se nenhuma das outras o tiver sido. Neste caso serão realizadas todas as instruções de código que se lhe seguirem até à expressão End Select. Findo o qual seguirá todas as instruções após o controlo Select case.
End Select
Palavra-Chave que indica o fim do controlo Select Case.
Curso de Microsoft Excel Avançado
34/48
4.9. Cláusulas de Loop FOR NEXT Você pode utilizar instruções For...Next para repetir um bloco de instruções, um determinado número de vezes. Os loops For utilizam uma variável de controle cujo valor é aumentado ou diminuído a cada repetição do loop. Sintaxe: For contador = Inicio to Final [Step numero] [Instruções] [Exit For] [Instruções] Next A palavra Step permite-lhe aumentar ou diminuir a variável de contador pelo valor especificado. Você pode sair de uma instrução For...Next antes que o contador atinja o seu valor final utilizando a instrução Exit For. Exemplo 1:
Sub CalcularTotal1() Dim Contador As Integer Dim Total As Double Total=0 For Contador = 2 To 15 If Range(“a" & Contador).Value = "Centro" Then Total = Total + Range(“b" & Contador).Value End If Next Range(“d2").Value = Total End Sub Exemplo 2: For Contador = 1 To Potência Step 1 Resultado = Resultado * Base
Nex t
Para o número de vezes, a iniciar em 1 até que atinja, o valor Potência, pela incrementação de 1 na execução de cada ciclo, deverá multiplicar sucessivamente o resultado acumulado, pela base.
Curso de Microsoft Excel Avançado
35/48
Do While •
•
Do Loop permite posicionar a condição teste no inicio ou fim do loop , a condição no fim do Loop evita uma inicialização prévia do valor das variáveis envolvidas na condição teste, dado que essa inicialização pode ser feita no decurso do ciclo com valores reais. Do Loop permite ainda especificar se o loop se vai realizar enquanto ( while) uma expressão for verdadeira ou até que ( until) a condição seja verdadeira (facilidade conseguida através do operador Not)
Poderá ser: Do [{While }
]
Loop
Ou então: Do
Loop[{While }
]
A região entre o início do comando, em Do While, e seu fim, em Loop, é chamada de laço, ciclo ou, no original em inglês, “loop”. O comportamento do comando DO WHILE-LOOP é o seguinte: inicialmente a condição é testada. Se for falsa, nenhum comando dentro do loop é executado, e a execução prossegue no comando N +1. Se a condição for verdadeira, o programa prossegue executando um a um os comandos de 1 a N . Ao terminar o comando N , ou seja, ao atingir a instrução Loop, o programa volta ao início do loop e testa a condição novamente. Se ela continuar verdadeira então novamente são executados os comandos de 1 a N ; caso contrário, a iteração termina e o programa sai do loop e prossegue a partir do comando N +1. É possível cancelar a execução de um bloco Do com a utilização da instrução Exit Do. Desta forma, a condição de entrada controla quantas vezes a iteração será repetida. Enquanto ela permanecer verdadeira, o interior do loop será repetido. Pode ser que ela nunca fique falsa; isso quer dizer que o programa não para nunca, e é um programa defeituoso. Portanto, bastante cuidado com o uso do while. Exemplo: Sub Calcularotal2() Dim Contador As Integer Dim Total As Double Contador = 2 Total = 0 Do While Range(“a" & Contador).Value <> “Sul" Total = Total + Range(“b" & Contador).Value Contador = Contador + 1 Loop Range(“d2").Value = Total End Sub Curso de Microsoft Excel Avançado
36/48
4.10.
Utilizando Arrays
Pretende-se inicializar um array com um conjunto de 5 países e posteriormente visualizar os elementos introduzidos.
Alteração da sub-rotina Inicializa_Array
4.11.
Funções
As funções no Excel são divididas em dois tipos: 1. Funções pré-definidas: estas funções “vêm dentro” do Excel. A função INT por exemplo, é uma função pré-definida. Há uma lista bastante grande destas funções, mas não nos ocuparemos dela agora. 2. Funções programadas: estas funções não existem “dentro” do Excel e nós precisamos criá-las. Ou seja, precisamos programar a função para que depois possamos usá-la numa planilha (ou numa outra função). Vamos agora começar a examinar os termos necessários para a construção de uma função. O primeiro passo necessário para construir uma função é criar um Módulo. Toda função que definirmos deverá estar dentro de um módulo. Para criarmos um módulo no Excel basta ativarmos o menu Inserir|Macro|Módulo. Uma vez criado, o módulo passa a ser parte integrante do documento, da mesma forma que as várias planilhas que compõem o documento, e vai ser salvo e aberto junto com o documento. Um módulo, tal como uma planilha, também possui um nome, que fica localizado na aba na parte inferior da janela do Excel. Dentro do módulo podemos definir uma ou mais funções. Todas as funções definidas nos módulos podem ser chamadas de qualquer planilha do mesmo documento. A definição de uma função possui 3 partes: 1. O cabeçalho: informa que estamos definindo uma função, qual o seu nome, quais são seus parâmetros e que tipo de valor a função retorna.
2. O corpo da função: é a parte que define o que deverá ser processada quando a função for chamada. 3. O término da função: indica que terminou a definição da função. O formato genérico de uma função é o seguinte: Curso de Microsoft Excel Avançado
37/48
Function NomeDaFunção( Param1 As Tipo, ..., ParamN As Tipo ) As Tipo Aqui vem o corpo da função
NomeDaFunção = Valor de Retorno
End Function As palavras em negrito são palavras reservadas da linguagem e devem aparecer desta forma e nesta posição. A primeira linha é o cabeçalho; a última linha é o término. Tudo que fica entre o cabeçalho e o término é o corpo da função. Note que imediatamente antes do término da função colocamos a expressão de retorno da função. Vamos agora detalhar os elementos que aparecem na definição da função. Exemplo: Function JurosSimples(CapitalInicial As Double, Taxa As Double, NMeses As Integer) As Double Dim CapitalAcrescido As Double CapitalAcrescido = CapitalInicial * (Taxa / 100) * NMeses JurosSimples = CapitalInicial + CapitalAcrescido End Function
4.12.
Subrotinas
Até agora vimos apenas programas no formato função. Funções possuem as seguintes propriedades: •
• •
Para acioná-las, podemos inserir uma chamada dentro de uma fórmula de uma planilha. No entanto, não sabemos (ou não temos como) chamar uma função “de fora'' da planilha. A única forma de passar dados para uma função é através dos parâmetros de entrada. A única forma de uma função passar dados de volta para a planilha é através de um (único) valor ao final da rotina.
Vamos agora ver uma forma de ativar programas de maneira independente de uma planilha, obter informações de “fora” da planilha e poder não retornar nenhum valor, e comunicar resultados ao usuário por meio de janelas. A isso se dá o nome de subrotina ou procedimento. Uma subrotina possui o seguinte formato
Sub NomeSub( ) End Sub
Subrotinas diferem de funções por não retornarem um valor. Por isso, não associamos um tipo de dados às subrotinas. Podemos utilizar o nome da subrotina como variável. Uma classe especial de subrotinas que nos é muito interessante é a classe de subrotinas em que a lista de parâmetros é vazia. Neste caso, a subrotina é chamada de macro e pode ser ativada de forma independente da planilha. A ativação de macros é feita acionando-se o menu Ferramentas|Macros, que fará aparecer uma janela contendo uma lista de todas as macros existentes nos módulos do programa. Como não há passagem de parâmetros para macros, basta selecionar uma macro nesta lista, e acionar o botão Executar . Curso de Microsoft Excel Avançado 38/48
Mas se não há passagem de parâmetros nem retorno de valor, como passar e receber dados de uma macro? Para isso, o código da macro precisa acionar comandos de entrada e saída, que
gerarão janelas de comunicação através das quais se fará a passagem da informação. Se quisermos entrar com algum dado, deveremos inserir na subrotina uma chamada à função via InputBox, da seguinte maneira: Texto = InputBox( “Entre com um valor” ) Ao executarmos este comando, primeiramente aparecerá uma janela contendo: • • •
o texto “Entre com um valor'' enviando uma mensagem ao usuário; um campo em branco para ser preenchido; e um botão de OK.
Deveremos preencher o campo em branco e então clicar no botão (ou apertar ENTER). O String digitado no campo será atribuído à variavel Texto, que deverá, portanto, ser do tipo String. Se desejarmos ler um valor numérico ao invés de String, o valor inserido será convertido para o tipo apropriado. Para isso, utilizamos as duas funções pré-definidas CDbl(String) e CInt(String) que convertem o parâmetro String respectivamente em um valor equivalente do tipo Double ou Int. Em geral, fazemos a chamada a InputBox e a conversão por CDbl ou CInt num mesmo comando, como mostra o exemplo abaixo:
Dim Nprods As Integer Dim Preco1 As Double Nprods = CInt( InputBox( “Entre a quantidade de produtos:'' )) Preco1 = CDbl( InputBox( “Preço do primeiro produto'' )) Que terá o efeito de primeiro mostrar uma janela de diálogo cujo valor preenchido deverá ser o número de produtos, e em seguida uma outra caixa de diálogo que deverá ser preenchida com o preço do primeiro produto. Além de solicitar dados ao usuário, uma macro pode exibir alguma informação, por exemplo o resultado de alguma computação. Esta comunicação pode ser feita na forma de uma janela que mostra o texto ao usuário e um botão de OK que o usuário pode clicar ao terminar de ler a mensagem. O comando que faz isso é o comando MsgBox(String), que mostra o conteúdo do String ao usuário em uma janela. Por exemplo, supondo que a variável MIN é do tipo Double e contém o valor 27,32,
MsgBox( “O melhor preço é: “ & MIN ) faz aparecer uma janela com a mensagem: O melhor preco é: 27,32 Se quisermos que a mensagem exibida seja quebrada em diversas linhas, devemos incluir nos pontos desejados o caracter que codifica o comando “mude de linha”. Por exemplo, MsgBox( “Isto aqui é uma” & Chr(13) & “linha quebrada.” ) produz como resultado: Isto aqui é uma linha quebrada. Vejamos por exemplo a macro SomaNum que nos solicita 4 valores (representando por exemplo preços de vários produtos para um pedido de compra) e calcula a sua soma: Curso de Microsoft Excel Avançado
39/48
Sub SomaNum() Dim Soma As Double Dim Cont As Integer Dim Valor As Double 'Inicialização Soma = 0 Cont = 0 Valor = 0 '(Desnecessário, apenas ajuda a entender o programa)
Do While Cont < 4 'Le novo valor, convertendo-o para Double Valor = CDbl(InputBox(“Entre com o valor”)) 'Atualiza a soma Soma = Soma + Valor 'Prepara a próxima iteração Cont = Cont + 1 Loop 'Apresenta resposta MsgBox (``A soma é: '' & Soma) End Sub Vejamos por exemplo, a macro Tipo_Cabos que verifica em uma planilha todos os tipos de cabos separando cada tipo e somando os mesmos.
Sub Tipo_Cabos() 'Declaração de variáveis Dim Preco() As Single, Metro() As Single Dim TipoCabo() As String Dim Precos As Single, Metros As Single Dim QtdTipo As Integer, Vazia As Integer, Linha As Integer, I As Integer Dim Tipos As String 'Seleciona Planilha 1 Sheets("PLAN1").Select 'Começar na segunda linha Linha = 2 'Dimensionamento do vetor ReDim TipoCabo(0) ReDim Metro(0) ReDim Preco(0) 'Enquanto não encontrar 100 linhas vazias ele continua a verificacao Do While Vazia < 100 Tipos = Cells(Linha, 1) Curso de Microsoft Excel Avançado
40/48
Metros = Cells(Linha, 2) Precos = Cells(Linha, 3) 'Se na Linha a coluna Tipos = vazia então o contador de linha vazia soma 1 If Trim(Tipos) = "" Then Vazia = Vazia + 1 Else 'Senão, limpa contador de linha vazia e faz a verificação Vazia = 0 QtdTipo = UBound(TipoCabo) 'Repete a condição para todas posições do vetor For I = 1 To UBound(TipoCabo) 'Se encontrar, então soma posição encontrada If TipoCabo(I) = Tipos Then Preco(I) = Preco(I) + Precos Metro(I) = Metro(I) + Metros 'O tipo de cabo já existe, abondonar a rotina Exit For End If Next 'Se chegar no final do vetor e não encontrar o tipo de cabo If I > QtdTipo Then 'Redimensiona o vetor ReDim Preserve TipoCabo(UBound(TipoCabo) + 1) ReDim Preserve Preco(UBound(Preco) + 1) ReDim Preserve Metro(UBound(Metro) + 1) 'Criação do novo Tipo TipoCabo(I) = Tipos Preco(I) = Precos Metro(I) = Metros End If End If 'Soma contador de linhas Linha = Linha + 1 Loop 'Seleciona Planilha 2 Sheets("PLAN2").Select 'Monta nova planilha com a soma dos tipos de cabos existentes For I = 1 To UBound(TipoCabo) Cells(I, 1) = TipoCabo(I) Cells(I, 2) = Metro(I) Cells(I, 3) = Preco(I) Next End Sub.
Curso de Microsoft Excel Avançado
41/48
5. Exemplos de Scripts: Sub EXEMPLO_1() '***************************************************** 'EXEMPLO DE COMENTÁRIO ‘CONVERTEAM 'DESENVOLVIDO POR GLADSTONE 'DATA 01/06/2010 'EXEMPLO DECLAÇÃO DE VARIÁVEIS '***************************************************** Dim VAR_INT As Integer, VAR_TEXTO As String, _ VAR_REAL As Double, VAR_BOOL As Boolean, _ VAR_MOEDA As Currency 'ATRIBUIÇÃO DE VARIAVEIS VAR_INT = 1 VAR_TEXTO = "CONVERTEAM" VAR_REAL = 10.5 VAR_BOOL = True VAR_MOEDA = 100.5 End Sub Sub EXEMPLO_2() 'EXEMPLOS DE CONDIÇÃO Dim A As Integer, B As Integer, C As Integer A=1 B=1 C=1 If A >= B Then MsgBox ("O VALOR DE A >= B") ElseIf A > C Then MsgBox ("A>C") ElseIf B > A Then MsgBox ("B>A") ElseIf B > C Then MsgBox ("B>C") ElseIf C > A Then MsgBox ("C>A") ElseIf C > B Then MsgBox ("C>B") Else MsgBox ("VALOR NÃO ENCONTRADO NAS CONDIÇÕES!") End If End Sub
Curso de Microsoft Excel Avançado
42/48
Sub EXEMPLO_3() 'EXEMPLO DE CONDIÇÃO CASE Dim T_EXP As Integer T_EXP = InputBox("DIGITE O TEMPO DE EXPERIÊNCIA: ") Select Case T_EXP Case 1, 2, 3, 4, 5 MsgBox ("CARGO DE JUNIOR!") Case 6 To 10 MsgBox ("CARGO DE PLENO!") Case Is > 10 MsgBox ("CARGO DE SENIOR!") Case Else MsgBox ("CARGO DE ESTAGIÁRIO!") End Select End Sub Sub EXEMPLO_4() 'EXEMPLO DE LAÇO DE REPETIÇÃO FOR Dim I As Integer, NOME As String, Idade As Integer, Sexo As String Dim USUARIO As String, SOMA_IDADES As Integer For I = 1 To 100 NOME = InputBox("Usuário número (" & I & ") Digite seu nome: ") If NOME = "" Then Exit For End If Idade = InputBox("Usuário número (" & I & ") Digite sua idade: ") Sexo = InputBox("Usuário número (" & I & ") Digite seu sexo: ") SOMA_IDADES = SOMA_IDADES + Idade USUARIO = USUARIO + NOME + " ; " Next MsgBox ("OS USUARIOS SÃO: " & USUARIO) MsgBox ("A SOMA DAS IDADES É :" & SOMA_IDADES) End Sub
Curso de Microsoft Excel Avançado
43/48
Sub Exemplo_5() 'EXEMPLO DE LAÇO DE REPETIÇÃO WHILE 'CADASTRO DE DOAÇÃO DE ROUPAS Cells(1, 1) = "NOME" Cells(1, 2) = "QUANT_ROUPAS" Dim I As Integer, NOME As String, QUANT_ROUPAS As Integer 'PROCURA POSICAO VAZIA ANTES DO CADASTRO I=1 Do While Cells(I, 1) <> "" I=I+1 Loop 'CADASTRO NOME = InputBox("Digite seu nome: ") Do While NOME <> "" QUANT_ROUPAS = InputBox("Digite a quantidade de peças doadas: ") Cells(I, 1) = NOME Cells(I, 2) = QUANT_ROUPAS NOME = InputBox("Digite seu nome: ") If NOME = "" Then Exit Do End If I=I+1 Loop End Sub Sub EXEMPLO_6() 'EXEMPLO DE LAÇO DE REPETIÇÃO WHILE + VETOR 'CADASTRO DE DOAÇÃO DE ROUPAS Cells(1, 1) = "NOME" Cells(1, 2) = "QUANT_ROUPAS" Dim I As Integer, NOME(3) As String, QUANT_ROUPAS(3) As Integer 'CADASTRO DE 3 REGISTROS For I = 1 To 3 NOME(I) = InputBox("Digite seu nome: ") QUANT_ROUPAS(I) = InputBox("Digite a quantidade de peças doadas: ") Next If InputBox("DESEJA IMPRIMIR OS DADOS? (S=SIM) OU (N=NÃO)") = "S" Then For I = 1 To 3 Cells(I + 1, 1) = NOME(I) Cells(I + 1, 2) = QUANT_ROUPAS(I) Next End If End Sub
Curso de Microsoft Excel Avançado
44/48
Sub EXEMPLO_7() 'PROCURA VALOR EM DUAS PLANILHAS E MARCA CAMPO REPETIDO For I = 1 To 100 VALOR = Sheets("PLAN1").Cells(I, 1) For J = 1 To 100 If Sheets("PLAN2").Cells(J, 1) = VALOR Then Sheets("PLAN2").Cells(J, 2) = "EXISTE" End If Next Next End Sub Sub EXEMPLO_8() 'Chama outro procedimento Call EXEMPLO_7 End Sub Sub EXEMPLO_9(MSG1 As String, MSG2 As String) 'Procedimento para imprimir valores recebidos em string MsgBox (MSG1 & " " & MSG2) End Sub Function EXEMPLO_10(MSG1 As String, MSG2 As String) As String 'Função retorna valor string EXEMPLO_10 = MSG1 & " " & MSG2 End Function Function RESULTADODASOMA(NUM1 As Integer, NUM2 As Integer, NUM3 As Integer) As Integer 'Função retorno valor inteiro RESULTADODASOMA = NUM1 + NUM2 + NUM3 End Function Sub EXEMPLO11() 'Chamando uma função com retorno integer Dim I As Integer I = RESULTADODASOMA(1, 2, 3) End Sub Sub EXEMPLO_12() 'Chamando outro procedimento COM PARAMETROS Call EXEMPLO_9("GLADSTONE", "COSTA") End Sub Sub EXEMPLO_13() 'Chamando uma função com retorno string MsgBox (EXEMPLO_10("GLADSTONE", "COSTA")) End Sub
Curso de Microsoft Excel Avançado
45/48
Comentários
Curso de Microsoft Excel Avançado
46/48
Curso de Microsoft Excel Avançado
47/48