TREINAMENTO MS EXCEL AVANADO FRMULAS E INTERMEDIRIO VBA Treinamento Excel Avanado Frmulas / Intermedirio VBA [Foco: Automatizao de Atividades] www.melhordesempenho.com.br sua consultoria online ii
1. EDIO DO CONTEDO DE UMA CLULA ....................................................................1 2. FRMULAS E FUNES, CRIAO E MANUTENO...................................................1 2.1. OPERADORES.............................................................................................................. 2 2.2. ORDEM DE PRECEDNCIA DOS OPERADORES...................................................... 3 2.3. O ASSISTENTE DE FUNO......................................................................................... 4 2.4. FUNES...................................................................................................................... 5 2.4.1. ESTRUTURA DE UMA FUNO............................................................................6 2.4.2. ARGUMENTOS......................................................................................................6 2.4.3. FUNES MAIS UTILIZADAS................................................................................7 2.4.3.1. ARRED............................................................................................................7 2.4.3.2. CONT.SE........................................................................................................8 2.4.3.3. CORRESP.......................................................................................................9 2.4.3.4. INT.................................................................................................................10 2.4.3.5. MXIMO......................................................................................................11 2.4.3.6. MDIA ..........................................................................................................11 2.4.3.7. MNIMO .......................................................................................................12 2.4.3.8. MOD ............................................................................................................13 2.4.3.9. MULT.............................................................................................................13 2.4.3.10. SE..................................................................................................................14 2.4.3.11. SOMA...........................................................................................................17 2.4.3.12. SOMASE.......................................................................................................18 2.4.3.13. PROCV / PROCH........................................................................................18 2.4.3.14. TEXTO ...........................................................................................................20 2.4.3.15. EERROS........................................................................................................20 2.4.3.16. CONCATENAR............................................................................................21 2.4.3.17. SOMARPRODUTO.......................................................................................21 www.melhordesempenho.com.br sua consultoria online iii 2.4.3.18. DIREITA / ESQUERDA..................................................................................21 2.5. REFERNCIA CIRCULAR............................................................................................ 22 2.6. FRMULAS - GERAO E CORREO DE ERROS.............................................. 22 2.7. VALORES DE ERRO.................................................................................................... 23 2.8. FIXANDO REFERNCIAS EM FRMULAS................................................................. 24 2.9. MOVIMENTAO DE CLULAS............................................................................... 24 2.10. TECLAS SHIFT, CTRL, HOME, END E SETAS NO EXCEL........................................... 25 2.11. ALGUNS ATALHOS INTERESSANTES......................................................................... 25 2.12. LISTA ALFABTICA DE FUNES DE PLANILHA ..................................................... 27 3. FILTRO AVANADO .........................................................................................................42 4. VALIDAO DE DADOS..................................................................................................43 4.1. LISTA SUSPENSA ......................................................................................................... 43 4.2. CRITRIOS DE VALIDAO...................................................................................... 44 5. TABELAS DINAMICAS.......................................................................................................45 6. LGICA DE PROGRAMAO .......................................................................................49 6.1. ALGUMAS DEFINIES DE LGICA....................................................................... 49 6.2. O USO DA LGICA NA ANLISE DE UM PROBLEMA........................................... 50 6.3. FORMAS DE REPRESENTAO DE ALGORITMOS................................................. 51 6.3.1. DESCRIO NARRATIVA..................................................................................51 6.3.2. FLUXOGRAMA CONVENCIONAL....................................................................52 6.3.3. PSEUDOCDIGO ..............................................................................................53 7. MACROS............................................................................................................................54 7.1. O QUE UMA MACRO? .......................................................................................... 54 7.2. CRIAR MACROS........................................................................................................ 54 7.2.1. GRAVAR UMA MACRO....................................................................................54 7.2.2. PROCEDIMENTO BACKGROUND DO EXCEL.................................................56 7.2.3. PROGRAMAO EM VISUAL BASIC FOR APPLICATIONS...........................56 7.3. EXECUTAR UMA MACRO......................................................................................... 57 7.3.1. TECLA DE ATALHO SHORTCUT KEY...............................................................57 7.3.2. EXECUTAR...........................................................................................................57 www.melhordesempenho.com.br sua consultoria online iv 7.3.3. EDITOR DE VISUAL BASIC FOR APPLICATIONS...............................................58 7.4. REMOVER MACROS................................................................................................. 59 7.4.1. REMOO DE MACROS EM AMBIENTE EXCEL.............................................59 7.4.2. REMOO DE MACROS NO EDITOR DE VBA...............................................59 7.4.3. EDITOR DE VISUAL BASIC FOR APPLICATIONS...............................................59 7.5. PROJ ECT EXPLORER.................................................................................................. 60 7.6. J ANELA DE PROPRIEDADE....................................................................................... 61 7.7. J ANELA DE EDIO.................................................................................................. 61 7.8. HELP ONLINE.............................................................................................................. 62 7.9. AS CORES DO VBA ................................................................................................... 62 7.10. IDENTAO ............................................................................................................... 63 7.11. FUNES E SUBROTINAS.......................................................................................... 63 7.11.1. SUBROTINAS........................................................................................................64 7.11.1.1. DEFINIO DE SUBROTINAS.....................................................................64 7.11.1.2. EXECUO DE UMA SUBROTINA.............................................................64 7.11.2. FUNES............................................................................................................65 7.11.2.1. DEFINIO DE FUNES..........................................................................65 7.11.2.2. DEFINIO DO TIPO DE PARMETROS E DO TIPO DA FUNO........65 7.11.2.3. EXECUO DE UMA FUNO ................................................................66 7.11.2.3.1. EXECUO DENTRO DE UMA CLULA ..............................................66 7.11.2.3.2. EXECUO DENTRO DE UMA ROTINA ..............................................67 7.11.3. DIFERENAS ENTRE FUNES E ROTINAS......................................................68 7.11.4. REGRAS PARA A PASSAGEM DE PARMETROS............................................69 8. VARIVEIS..........................................................................................................................69 8.1. O QUE SO VARIVEIS? .......................................................................................... 69 8.1.1. ATRIBUIO DE VALORES A VARIVEIS:........................................................70 8.1.2. UTILIZAO DE VARIVEIS COMO SE FOSSEM VALORES:..........................70 8.2. TIPOS DE VARIVEIS.................................................................................................. 70 8.3. DECLARAO DE VARIVEIS................................................................................. 71 www.melhordesempenho.com.br sua consultoria online v 8.4. VARIVEIS VANTAGENS DA UTILIZAO ........................................................... 72 8.5. VARIVEIS DO TIPO OBJ ETO ................................................................................... 72 8.5.1. DECLARAO DA VARIVEL OBJ ETO...........................................................72 8.5.2. ATRIBUIO DE UMA VARIVEL OBJ ETO ......................................................72 8.5.3. UTILIZAO GENRICA DA VARIVEL OBJ ETO............................................72 8.5.4. UTILIZAO ESPECIFICA DA VARIVEL OBJ ETO...........................................73 8.6. VARIVEIS DECLARAO OPCIONAL E O TIPO VARIANT.............................. 74 8.6.1. OS PRS E CONTRAS DA UTILIZAO DO TIPO VARIANTS.........................74 8.6.1.1. PRS............................................................................................................74 8.6.1.2. CONTRAS....................................................................................................74 8.6.2. VARIVEIS DECLARAO FORADA.........................................................74 8.7. VARIVEIS TIPOS DEFINIDOS PELO UTILIZADOR - ESTRUTURAS......................... 75 8.7.1. DEFINIO DO TIPO .........................................................................................75 8.7.2. UTILIZAO DAS ESTRUTURAS DE DADOS.....................................................76 8.8. VARIVEIS ARRAYS................................................................................................ 77 8.8.1. O QUE UM ARRAY? ........................................................................................77 8.8.1.1. ARRAY UNI-DIMENSIONAL........................................................................77 8.8.1.2. ARRAY BI-DIMENSIONAL...........................................................................77 8.8.2. DECLARAO DE UM ARRAY.........................................................................78 8.8.2.1. ARRAYS UNI-DIMENSIONAIS.....................................................................78 8.8.2.2. ARRAYS BI-DIMENSIONAIS........................................................................79 8.8.3. UTILIZAO DE UM ARRAY ..............................................................................79 8.8.3.1. PARA ACESSAR O ELEMENTO ..................................................................79 8.8.3.2. ATRIBUIO DE VALORES.........................................................................79 8.8.4. OPTION BASE E ARRAY BOUNDS.....................................................................80 9. CONSTANTES.....................................................................................................................81 www.melhordesempenho.com.br sua consultoria online vi 9.1. O QUE SO CONSTANTES? ..................................................................................... 81 10. INPUTBOX E MSGBOX.......................................................................................................82 10.1. O QUE SO?.............................................................................................................. 82 10.2. INPUTBOX................................................................................................................... 82 10.2.1. O QUE FAZ......................................................................................................82 10.2.2. SINTAXE...............................................................................................................82 10.3. MSGBOX..................................................................................................................... 84 10.3.1. O QUE FAZ......................................................................................................84 10.3.2. SINTAXE...............................................................................................................84 10.3.3. PARMETROS.....................................................................................................84 10.3.4. VALORES PRODUZIDOS.................................................................................87 11. DOMNIO DAS VARIVEIS, CONSTANTES E ROTINAS..................................................88 11.1. O QUE O DOMNIO? ............................................................................................. 88 11.2. DOMNIO DAS VARIVEIS........................................................................................ 88 11.2.1. MBITO DO PROCEDIMENTO..........................................................................88 11.2.2. MBITO DO MDULO ......................................................................................89 11.2.3. MBITO DO PROJ ETO.......................................................................................90 11.3. DOMNIO DAS CONSTANTES................................................................................... 91 11.3.1. MBITO DO PROCEDIMENTO..........................................................................91 11.3.2. MBITO DO MDULO ......................................................................................91 11.3.3. MBITO DO PROJ ETO.......................................................................................92 11.4. DOMNIO DE SUBROTINAS E FUNES.................................................................. 92 12. ESTRUTURAS DE CONTROLE............................................................................................93 12.1. O QUE SO ESTRUTURAS DE CONTROLE? ............................................................. 93 12.2. QUAIS AS ESTRUTURAS.......................................................................................... 93 12.3. IF-THEN-ELSE............................................................................................................... 94 12.3.1. FUNO IF DO EXCEL.......................................................................................94 12.3.2. SINTAXE DA ESTRUTURA IF-THEN-ELSE..............................................................94 www.melhordesempenho.com.br sua consultoria online vii 12.3.3. APLICAO PRTICA ......................................................................................95 12.3.4. A INSTRUO ADICIONAL ELSEIF....................................................................96 12.3.4.1. APLICAO PRTICA...............................................................................96 12.4. FOR NEXT................................................................................................................. 97 12.4.1. SINTAXE...............................................................................................................97 12.4.2. APLICAO PRTICA ......................................................................................97 12.4.2.1. A FUNO DAS VARIVEIS:.....................................................................98 12.4.2.2. CONSTRUO DO CICLO:.......................................................................98 12.4.2.3. TRADUO INTEGRAL...............................................................................99 12.4.3. FUNCIONAMENTO DO CICLO:........................................................................99 12.4.4. PERIGOS ASSOCIADOS UTILIZAO DO CICLO FOR-NEXT: ...................99 12.4.5. OUTRA APLICAO........................................................................................100 12.5. WHILE-WEND............................................................................................................100 12.5.1. SINTAXE.............................................................................................................100 12.5.2. APLICAO PRTICA ....................................................................................101 12.5.2.1. A FUNO DAS VARIVEIS:...................................................................101 12.5.2.2. CONSTRUO DO CICLO:.....................................................................102 12.5.2.3. TRADUO INTEGRAL.............................................................................102 12.5.3. FUNCIONAMENTO DO CICLO.......................................................................103 12.5.4. PERIGOS ASSOCIADOS UTILIZAO DO CICLO WHILE-WEND............103 12.5.5. OUTRA APLICAO........................................................................................104 12.6. DO LOOP...............................................................................................................105 12.6.1. SINTAXE.............................................................................................................105 12.6.2. APLICAES PRTICAS..................................................................................106 12.7. SELECT CASE............................................................................................................108 12.7.1. SINTAXE.............................................................................................................108 www.melhordesempenho.com.br sua consultoria online viii 12.7.2. APLICAO PRTICA ....................................................................................108 12.7.2.1. CONSTRUO DA ESTRUTURA...............................................................109 12.8. FOR EACH NEXT.................................................................................................110 12.8.1. SINTAXE.............................................................................................................110 12.8.1.1. UTILIZANDO ARRAYS................................................................................111 12.8.1.1.1. CONSTRUO DO CICLO.................................................................112 12.8.1.2. UTILIZANDO COLEES DE OBJ ETOS...................................................113 13. COLEES DE OBJ ETOS E OBJ ETOS...........................................................................114 13.1. O QUE SO OBJ ETOS?...........................................................................................114 13.2. OBJ ETOS: PROPRIEDADES, MTODOS E EVENTOS.............................................114 13.2.1. PROPRIEDADES................................................................................................114 13.2.2. MTODOS.........................................................................................................114 13.2.3. EVENTOS...........................................................................................................114 13.3. OBJ ETOS MAIS UTILIZADOS NO EXCEL.................................................................115 13.3.1. APPLICATION ...................................................................................................115 13.3.1.1. PROPRIEDADES.........................................................................................115 13.3.1.2. MTODOS..................................................................................................116 13.3.1.3. WORKBOOK..............................................................................................117 13.3.1.4. PROPRIEDADES.........................................................................................117 13.3.1.5. MTODOS..................................................................................................118 13.3.1.6. WORKSHEET...............................................................................................119 13.3.1.7. PROPRIEDADES.........................................................................................119 13.3.1.8. MTODOS..................................................................................................120 13.4. PROPRIEDADES........................................................................................................121 13.4.1.1. MTODOS..................................................................................................122 13.5. OBJ ETOS SINGULARES VS COLEES DE OBJ ETOS...........................................123 13.6. INDEXAO DE COLEES POR NMERO OU NOME....................................124 www.melhordesempenho.com.br sua consultoria online ix 13.6.1. INDEXAO COM BASE EM NMEROS.......................................................124 13.6.2. INDEXAO COM BASE NO NOME.............................................................124 13.6.2.1. VANTAGEM...............................................................................................125 13.6.2.2. DESVANTAGEM........................................................................................125 13.6.3. O OBJ ETO RANGE UMA EXCEO...........................................................125 13.6.3.1. TRATAMENTO COMO OBJ ETO:..............................................................125 13.6.3.2. TRATAMENTO COMO COLEO DE OBJ ETOS:..................................125 13.7. REFERNCIA IMPLCITA...........................................................................................126 13.7.1. DECLARAO IMPLCITA DA APLICAO:................................................127 13.7.2. DECLARAO IMPLCITA DO WORKBOOK: ...............................................127 13.7.3. DECLARAO IMPLCITA DA WORKSHEET:.................................................127 13.7.4. NVEL DE REFERNCIA A PRIVILEGIAR..........................................................127 14. MISCELANEOUS..............................................................................................................128 14.1. A INSTRUO WITH.................................................................................................128 14.1.1. APLICAO PRTICA ....................................................................................128 14.2. OUTRAS FUNES TEIS DO VBA .........................................................................128 www.melhordesempenho.com.br sua consultoria online 1 1. EDIO DO CONTEDO DE UMA CLULA
Se voc quiser alterar o contedo de uma clula, posicione o seletor sobre ela e d um duplo clique no boto esquerdo do mouse. Se preferir usar o teclado, pressione F2. Essas opes permitem a edio diretamente na clula. Se voc quiser editar o contedo da clula por meio da barra de frmulas, posicione o seletor na clula desejada e d um clique na barra de frmulas. Em qualquer uma das situaes, voc passa a contar com os seguintes recursos de edio no teclado: Tecla Operao - Move o cursor HOME Para o incio da linha END Para o final da linha Seta Esquerda Uma posio para a esquerda Seta Direita Uma posio para a direita Seta para cima Uma linha para cima Seta para baixo Uma linha para baixo CTRL+Seta direita Para a palavra da direita CTRL+Seta esquerda Para a palavra da esquerda CTRL+HOME Para o incio da clula CTRL+END Para o fim da clula
2. FRMULAS E FUNES, CRIAO E MANUTENO
A principal caracterstica de uma planilha reside na possibilidade de utilizar e relacionar o contedo de clulas para a obteno de algum resultado. O relacionamento de clulas obtido por meio da criao de frmulas. Com elas, voc pode realizar operaes matemticas, estatsticas e manipular o contedo das demais clulas da planilha. Uma frmula composta basicamente de referncias a outras clulas, www.melhordesempenho.com.br sua consultoria online 2 operadores matemticos e funes do EXCEL. Contudo, na possibilidade de se referir a outras clulas que reside a maior vantagem de uma planilha.
Note que o smbolo de igual foi adicionado no incio da frmula na barra de frmulas. Esse sinal o elemento bsico que o EXCEL usa para saber que voc est digitando uma frmula. Embora no exemplo acima tivssemos comeado a digitar a frmula com o sinal de mais, essa uma das poucas excees feitas pelo Excel. Nos demais casos, se no for digitado o sinal de igual antes do incio da frmula, ele interpretar o seu contedo como um texto ou uma data.
2.1. OPERADORES
Quase todas as frmulas que voc escrever certamente conter algum operador matemtico. Esses operadores indicam qual tipo de operao ser realizada. Os operadores disponveis no EXCEL so os seguintes:
Operador Realiza Exemplo + Adio =A1+B1 - Subtrao =A1-B1 / Diviso =A1/B1 * Multiplicao =A1*B1 % Percentual =A1*20% ^ Exponenciao =A1^3 www.melhordesempenho.com.br sua consultoria online 3 Alguns operadores atuam sobre dois valores, tais como as quatro operaes matemticas. J o operador de percentual atua diretamente sobre o nmero que o antecede, dividindo-o por 100. Alm desses operadores, o EXCEL possui operadores especiais que avaliam dois valores e retornam o valor lgico Verdadeiro ou Falso. Operador Descrio = Igual > Maior que < Menor que >= Maior ou igual que <= Menor ou igual que <> Diferente de
2.2. ORDEM DE PRECEDNCIA DOS OPERADORES
Quando voc cria uma frmula que contm mais de um operador do mesmo tipo, as operaes matemticas vo sendo realizadas da esquerda para a direita at que a ltima tenha sido efetuada. Contudo, quando voc mistura operadores, o EXCEL segue uma tabela de prioridades executando determinadas operaes matemticas antes de outras. Operador Descrio ( ) Parnteses % Percentual ^ Exponenciao * e / Multiplicao e Diviso + e - Adio e subtrao = <> <= >= <> Comparao
www.melhordesempenho.com.br sua consultoria online 4 2.3. O ASSISTENTE DE FUNO
O EXCEL possui centenas de funes, e voc certamente perderia muito tempo aprendendo cada uma delas. Voc deve se preocupar somente com as funes mais utilizadas, para as outras voc pode utilizar o Assistente de Funo. Por meio desse recurso voc diz ao EXCEL qual funo quer introduzir na clula atual e ele, mediante as caixas de dilogo, ensina e pergunta qual o contedo dos argumentos da funo. Na figura abaixo, introduziremos a funo Mdia na clula E4. Depois de posicionar o seletor sobre ela, pressione o boto do assistente de funo , que fica ao lado do boto Auto-soma.
Essa caixa de dilogo possui duas caixas de seleo. A da esquerda mostra as categorias de funes. Se voc sabe a qual categoria pertence funo que quer utilizar, d um clique sobre o nome da categoria. Caso contrrio, selecione "todas". Na caixa de seleo da direita aparecero todas as funes em ordem alfabtica. Use a barra de rolamento at encontrar a funo MDIA e d um clique sobre o seu nome.
www.melhordesempenho.com.br sua consultoria online 5 Uma segunda caixa de dilogo ser aberta mostrando uma explicao sobre a funo. Para cada argumento da funo, o EXCEL mostra uma explicao quando voc posicionar o cursor sobre ele.
Aps informar os argumentos desejados, deve ser pressionado o boto Finalizar para que a funo seja introduzida na clula.
2.4. FUNES
Usando apenas os operadores matemticos apresentados h pouco, voc certamente j poderia criar planilhas para resolver praticamente todas as tarefas realizadas manualmente hoje e que envolvam clculos diversos. Mas, o EXCEL vai mais alm, ele contm uma srie de funes predefinidas que economizam muito trabalho para voc. Genericamente uma funo consiste em uma srie de operaes matemticas que agem sobre valores fornecidos pelo usurio e retorna obrigatoriamente algum resultado. No exemplo anterior tivemos que somar apenas o contedo de quatro clulas, mas imagine que em vez de quatro fossem cem referncias. Seria um enorme trabalho de digitao, sujeito a muitos erros. Para facilitar esse trabalho, o EXCEL possui uma funo chamada "SOMA", que pede a especificao apenas da referncia da primeira e da ltima clula da faixa que ser somada. No exemplo anterior, em vez de digitar a referncia das clulas, poderamos digitar =SOMA(C4:C7). Alm de economizar digitao, a utilizao dessa funo beneficia o usurio quando ele precisa alterar a estrutura da planilha.
www.melhordesempenho.com.br sua consultoria online 6 2.4.1. ESTRUTURA DE UMA FUNO
Uma funo se caracteriza pela seguinte estrutura genrica:
Toda funo composta por um nome que sucedido obrigatoriamente por parnteses. Dependendo da funo, dentro dos parnteses podem existir argumentos, ou seja , valores ou referncias a clulas e que sero usados pela funo para retornar o resultado da funo. A funo SOMA( ), por exemplo, exige como argumentos a especificao da clula inicial e da clula final separadas por dois-pontos ou, ento, uma srie de endereos de clulas separados por ponto-e-vrgula. Cada funo possui uma sintaxe prpria, ou seja, espera-se que os seus argumentos sejam especificados em uma ordem determinada. Se isso no ocorrer, haver um erro que faz com que o resultado no seja produzido ou uma mensagem de advertncia seja exibida.
2.4.2. ARGUMENTOS
O nmero e tipo de argumentos requeridos variam de funo para funo. Um argumento pode ser: Nmeros Texto Valores lgicos Valores de erro www.melhordesempenho.com.br sua consultoria online 7 Referncias Matrizes
Usando referncias a outras clulas, voc pode especificar diretamente o endereo de uma clula ou ento uma faixa de clulas, usando o smbolo de dois-pontos para separar a clula inicial e final. Exemplo: SOMA(A1:A20)
Quando uma funo possuir mais de um argumento, eles devem ser separados por um ponto-e-vrgula. Exemplos: SOMA(A1;A15;A30) ###Soma as trs clulas especificadas. SOMA(C1:C15;B1:B15) ###Soma as duas faixas especificadas.
2.4.3. FUNES MAIS UTILIZADAS
A seguir, relacionamos as funes matemticas mais utilizadas no dia-a-dia. Elas so mostradas com uma explicao sobre sua finalidade, sua sintaxe e alguns exemplos. O nome do argumento normalmente j indica qual o seu tipo, ou seja, se deve ser um texto, um nmero ou valor lgico.
2.4.3.1. ARRED
Arredonda um nmero at uma quantidade especificada de dgitos.
Sintaxe: ARRED(nm; nm_dgitos)
Nm: o nmero que voc deseja arredondar. Nm_dgitos: especifica o nmero de dgitos para o qual voc deseja arredondar nm. www.melhordesempenho.com.br sua consultoria online 8
Se nm_dgitos for maior que 0, ento nm ser arredondado para o nmero especificado de casas decimais. Se nm_dgitos for 0, ento nm ser arredondado para o inteiro mais prximo. Se nm_dgitos for menor que 0, ento nm ser arredondado para a esquerda da vrgula decimal.
Exemplos: ARRED(2,15; 1) igual a 2,2 ARRED(2,149; 1) igual a 2,1 ARRED(-1,475; 2) igual a -1,48 ARRED(21,5; -1) igual a 20
2.4.3.2. CONT.SE
Calcula o nmero de clulas no vazias em um intervalo que corresponde a um dado critrio.
Sintaxe: CONT.SE(intervalo; critrios)
Intervalo: o intervalo de clulas no qual se deseja contar clulas no vazias. Critrios: o critrio na forma de um nmero, expresso ou texto que define quais clulas sero contadas. Por exemplo, os critrios podem ser expressados como 32, "32", ">32", "mas".
Exemplos: Suponha que A3:A6 contenha "mas", "laranjas", "peras", "mas", respectivamente. CONT.SE(A3:A6;"mas") igual a 2 www.melhordesempenho.com.br sua consultoria online 9
Suponha que B3:B6 contenha 32, 54, 75, 86, respectivamente. CONT.SE(B3:B6;">55") igual a 2
2.4.3.3. CORRESP
Retorna a posio relativa de um elemento em uma matriz que coincide com um valor especificado a forma especificada. Use CORRESP em vez de uma das funes PROC quando voc precisar da posio de um item coincidente ao invs do item propriamente dito.
Valor_procurado o valor que voc deseja coincidir com matriz_procurada. Por exemplo, quando voc procura o nmero do telefone de algum em uma lista telefnica, voc est usando o nome da pessoa como o valor da pesquisa, mas o nmero do telefone o valor que voc deseja. Valor_procurado pode ser um valor (nmero, texto ou valor lgico) ou uma referncia de clula de um nmero, texto, ou valor lgico. Matriz_procurada um intervalo contguo de clulas que contm valores possveis de procura. Matriz_procurada pode ser uma matriz ou uma referncia matricial. Tipo_correspondncia o nmero -1, 0 ou 1. Tipo_correspondncia especifica como o Excel corresponde a valor_procurado com os valores contidos em matriz_procurada.
Se tipo_correspondncia for 1, CORRESP localizar o maior valor que for menor do que ou igual a valor_procurado. Matriz_procurada deve ser posicionada em ordem ascendente: ...-2, -1, 0, 1, 2,...A-Z, FALSO, VERDADEIRO. Se tipo_correspondncia for 0, CORRESP localizar o primeiro valor que for exatamente igual a valor_procurado. Matriz_procurada pode ser colocada em qualquer ordem. www.melhordesempenho.com.br sua consultoria online 10 Se tipo_correspondncia for -1, CORRESP localizar o menor valor que for maior ou igual a valor_procurado. Matriz_procurada deve ser posicionada em ordem decrescente: VERDADEIRO, FALSO, Z-A,...2, 1, 0, -1, -2,... e assim por diante. Se tipo_correspondncia for omitido, ser equivalente a 1.
Comentrios CORRESP fornece a posio do valor coincidente em matriz_procurada, e no o valor propriamente dito. Por exemplo: CORRESP("b";{"a"."b"."c"};0) fornece 2, a posio relativa de "b" na matriz {"a"."b"."c"}. CORRESP no faz distino entre letras maisculas e minsculas quando coincidindo valores de texto. Se CORRESP no conseguir localizar um valor coincidente, ele fornecer o valor de erro #N/D.
Dica: Utilize o CORRESP dentro do PROCV para seguir a posio do item procurado dentro do conjunto de dados.
2.4.3.4. INT
Arredonda um nmero para baixo at o nmero inteiro mais prximo.
Sintaxe: INT(nm)
Nm: o nmero real que se deseja arredondar para baixo at um inteiro.
Exemplos:
INT(8,9) igual a 8 INT(-8,9) igual a -9
www.melhordesempenho.com.br sua consultoria online 11 Nota: A seguinte frmula retorna a parte decimal de um nmero real positivo na clula A1: A1-INT(A1)
2.4.3.5. MXIMO
Retorna o valor mximo de uma lista de argumentos.
Sintaxe: MXIMO(nm1; nm2; ...)
Nm1; nm2;... so 1 a 30 nmeros cujo valor mximo voc deseja encontrar.
Voc pode especificar argumentos que so nmeros, clulas vazias, valores lgicos ou representaes em forma de texto de nmeros. Os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros geram erros. Se um argumento for uma matriz ou referncia, apenas os nmeros nesta matriz ou referncia sero usados. Clulas vazias, valores lgicos, texto ou valores de erro na matriz ou referncia sero ignorados. Se os argumentos no contiverem nmeros, MXIMO retornar 0.
Exemplos: Se A1:A5 contiver os nmeros 10, 7, 9, 27 e 2, ento:
MXIMO(A1:A5) igual a 27 MXIMO(A1:A5;30) igual a 30
2.4.3.6. MDIA
Retorna a mdia aritmtica dos argumentos.
www.melhordesempenho.com.br sua consultoria online 12 Sintaxe: MDIA(nm1; nm2; ...)
Nm1; nm2;... so de 1 a 30 argumentos numricos para os quais voc deseja obter a mdia.
Os argumentos devem ser nmeros ou nomes, matrizes ou referncias que contenham nmeros. Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas vazias, estes valores sero ignorados; no entanto, clulas com o valor nulo sero includos.
Exemplos: MDIA(B1:B15) MDIA(B1:B10;20)
2.4.3.7. MNIMO
Retorna o menor nmero na lista de argumentos.
Sintaxe: MNIMO(nm1; nm2; ...)
Nm1; nm2;... so nmeros de 1 a 30 para os quais voc deseja encontrar o valor mnimo.
Voc pode especificar os argumentos que so nmeros, clulas vazias, valores lgicos ou representaes em texto de nmeros. Os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros causam erros. Se um argumento for uma matriz ou referncia, apenas os nmeros daquela matriz ou referncia podero ser usados. Clulas vazias, valores lgicos ou valores de erro na matriz ou referncia sero ignorados. Se os argumentos no contiverem nmeros, MNIMO retornar 0.
www.melhordesempenho.com.br sua consultoria online 13 Exemplos: Se A1:A5 contiver os nmeros 10, 7, 9, 27 e 2, ento: MNIMO(A1:A5) igual a 2 MNIMO(A1:A5; 0) igual a 0
2.4.3.8. MOD
Retorna o resto depois da diviso de nm por divisor. O resultado possui o mesmo sinal que divisor.
Sintaxe: MOD(nm; divisor)
Nm o nmero para o qual voc deseja encontrar o resto. Divisor o nmero pelo qual voc deseja dividir o nmero. Se divisor for 0, MOD retornar valor de erro #DIV/0!.
Dica: A funo MOD pode ser expressa em termos da funo INT: MOD(n; d) = n - d*INT(n/d)
Exemplos: MOD(3; 2) igual a 1 MOD(-3; 2) igual a 1 MOD(3; -2) igual a -1 MOD(-3; -2) igual a -1
2.4.3.9. MULT
www.melhordesempenho.com.br sua consultoria online 14 Multiplica todos os nmeros fornecidos como argumentos e retorna o produto.
Sintaxe: MULT(nm1; nm2; ...)
Nm1, nm2,... so nmeros de 1 a 30 que voc deseja multiplicar.
Os argumentos que so nmeros, valores lgicos ou representaes em forma de texto de nmeros sero contados; os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros causam erros. Se um determinado argumento for uma matriz ou referncia, apenas os nmeros na matriz ou referncia sero contados. As clulas vazias, valores lgicos ou de erro na matriz ou referncia sero ignorados.
Exemplos: Se a clula A2:C2 contiver 5, 15 e 30:
MULT(A2:C2) igual a 2.250 MULT(A2:C2; 2) igual a 4.500
2.4.3.10. SE
Retorna um valor se teste_lgico avaliar como VERDADEIRO e um outro valor se for avaliado como FALSO. Use SE para conduzir testes condicionais sobre valores e frmulas e para efetuar ramificaes de acordo com o resultado deste teste. O resultado do teste determina o valor retornado pela funo SE.
Sintaxe:
Planilhas e folhas de macro www.melhordesempenho.com.br sua consultoria online 15
Teste_lgico, qualquer valor ou expresso que pode ser avaliada como VERDADEIRO ou FALSO. Valor_se_verdadeiro, o valor fornecido se teste_lgico for VERDADEIRO. Se teste_lgico for VERDADEIRO e valor_se_verdadeiro for omitido, VERDADEIRO ser fornecido. Valor_se_falso o valor fornecido se teste_lgico for FALSO. Se teste_lgico for FALSO e valor_se_falso for omitido, FALSO ser fornecido. At sete funes SE podem ser aninhadas como argumentos valor_se_verdadeiro e valor_se_falso para construir testes mais elaborados. Consulte o ltimo exemplo a seguir. Se voc estiver usando SE em uma macro, valor_se_verdadeiro e valor_se_falso tambm podem ser funes IRPARA, outras macros ou funes de ao. Por exemplo, a frmula seguinte permitida em uma macro:
SE(Nmero>10;IRPARA(Grande);IRPARA(Pequeno))
No exemplo anterior, se Nmero for maior do que 10, ento teste_lgico ser VERDADEIRO, a instruo valor_se_verdadeiro avaliada, e a funo de macro IRPARA(Grande) ser executada. Se Nmero for menor ou igual a 10, ento teste_lgico FALSO, valor_se_falso ser avaliado, e a funo de macro IRPARA(Pequeno) executada. Quando os argumentos valor_se_verdadeiro e valor_se_falso so avaliados, SE retorna o valor que foi retornado por estas instrues. No exemplo anterior, se o nmero no for maior do que 10, VERDADEIRO continua a ser fornecido, caso a segunda instruo IRPARA tenha sido bem-sucedida. Se qualquer um dos argumentos de SE forem matrizes, cada elemento da matriz ser avaliado quando a instruo SE for executada. Se algum dos argumentos valor_se_verdadeiro e valor_se_falso forem funes de execuo de ao, todas as aes so executadas. Por exemplo, a seguinte frmula de macro executa as duas funes ALERTA:
Exemplos: www.melhordesempenho.com.br sua consultoria online 16 No exemplo a seguir, se o valor ao qual se fez referncia pelo nome Arquivo for igual a "Grfico", teste_lgico ser VERDADEIRO e a funo de macro NOVO(2) ser executada, seno, teste_lgico ser FALSO e NOVO(1) ser executada:
SE(Arquivo="Grfico";NOVO(2),NOVO(1))
Suponha que uma planilha de despesa contenha os seguintes dados em B2:B4 em relao s "Despesas reais" para janeiro, fevereiro e maro: 1500, 500, 500. C2:C4 contm os seguintes dados para "Despesas previstas" para os mesmos perodos: 900, 900, 925. Voc poderia escrever uma macro para verificar se est acima do oramento em um ms especfico, gerando texto para uma mensagem com as seguintes frmulas:
SE(B2>C2;"Acima do oramento";"OK") igual a "Acima do oramento" SE(B3>C3;"Acima do oramento";"OK") igual a "OK"
Suponha que voc deseje efetuar uma classificao atribuindo letras aos nmeros que so referenciados pelo nome Mdia. Consulte a tabela a seguir.
Se a Mdia for Ento retorna Maior do que 89 A De 80 a 89 B De 70 a 79 C De 60 a 69 D Menor do que 60 F
No exemplo anterior, a segunda instruo SE tambm o argumento valor_se_falso para a primeira instruo SE. Da mesma maneira, a terceira instruo SE o argumento valor_se_falso para a segunda instruo SE. Por exemplo, se o primeiro teste_lgico (Mdia>89) for VERDADEIRO, "A" ser fornecido. Se o primeiro teste_lgico for FALSO, a segunda instruo SE avaliada e assim por diante. www.melhordesempenho.com.br sua consultoria online 17 Funes relacionadas E Retorna VERDADEIRO se todos os argumentos forem VERDADEIROS FALSO Retorna o valor lgico FALSO NO Inverte a lgica do argumento OU Retorna VERDADEIRO se qualquer argumento for VERDADEIRO VERDADEIRO Retorna o valor lgico VERDADEIRO
2.4.3.11. SOMA
Retorna a soma de todos os nmeros na lista de argumentos.
Sintaxe: SOMA(nm1; nm2, ...)
Nm1, nm2,... so argumentos de 1 a 30 que se deseja somar. Os nmeros, valores lgicos e representaes em forma de texto de nmeros digitados diretamente na lista de argumentos so contados. Consulte o primeiro e o segundo exemplos seguintes. Se um argumento for uma matriz ou referncia, apenas os nmeros nesta matriz ou referncia sero contados. Clulas em branco, valores lgicos, texto ou valores de erro na matriz ou referncia so ignorados. Consulte o terceiro exemplo a seguir. Os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros geram erros.
Exemplos SOMA(3; 2) igual a 5 SOMA("3"; 2; VERDADEIRO) igual a 6 porque os valores de texto so traduzidos em nmeros e o valor lgico VERDADEIRO traduzido no nmero 1.
Diferentemente do exemplo anterior, se A1 contiver "3" e B1 contiver VERDADEIRO, ento: SOMA(A1, B1, 2) igual a 2 porque as referncias a valores no-numricos nas referncias no so traduzidas.
www.melhordesempenho.com.br sua consultoria online 18 2.4.3.12. SOMASE
Adiciona as clulas especificadas por um determinado critrio. Sintaxe: SOMASE(intervalo; critrios; intervalo_soma) Intervalo o intervalo de clulas que se deseja que seja calculado. Critrios so os critrios na forma de um nmero, expresso, ou texto, que define quais clulas a serem adicionadas. Por exemplo, critrios pode ser expresso como 32, "32", ">32", "mas". Intervalo_soma so clulas a serem realmente somadas. As clulas em intervalo_soma so somadas somente se suas clulas correspondentes em intervalo coincidirem com os critrios estipulados. Se intervalo_soma for omitido, as clulas em intervalo sero somadas. Exemplo: Suponha que A1:A4 contm os seguintes valores de propriedade para quatro casas: R$ 100000, R$ 200000, R$ 300000, R$ 400000, respectivamente. B1:B4 conter as seguintes comisses de vendas em cada um dos valores de propriedade correspondentes: R$ 7000, R$ 14000, R$ 21000, R$ 28000. SOMASE(A1:A4;">160000";B1:B4) igual a R$ 63000
2.4.3.13. PROCV / PROCH
Localiza um valor especfico na primeira coluna esquerda de uma matriz, e retorna o valor na clula indicada. Use PROCV em vez de PROCH quando os valores da comparao estiverem posicionados em uma coluna esquerda ou direita dos dados que voc deseja localizar. Sintaxe: PROCV(valor_procurado; matriz_tabela; nm_ndice_coluna; procurar_intervalo)
Valor_procurado o valor a ser encontrado na primeira coluna da matriz; pode ser um valor, uma referncia ou uma cadeia de caracteres de texto. Matriz_tabela a tabela de informaes em que os dados so procurados. Use uma referncia para um intervalo ou nome de intervalo, tal como Banco de dados ou Lista.
Se procurar_intervalo for VERDADEIRO, os valores na primeira coluna de matriz_tabela devero ser colocados em ordem ascendente: ..., -2, -1, 0, 1, 2, ... , A-Z, www.melhordesempenho.com.br sua consultoria online 19 FALSO, VERDADEIRO; caso contrrio, PROCV pode no retornar o valor correto. Se procurar_intervalo for FALSO, matriz_tabela no precisar ser ordenada. Voc pode colocar os valores em ordem ascendente escolhendo o comando Classificar do menu Dados e selecionando "Ascendente". Os valores na primeira coluna de matriz_tabela podem ser nmeros ou valores lgicos. Textos em maisculas e minsculas so equivalentes. Nm_ndice_coluna o nmero da coluna em matriz_tabela a partir do qual o valor correspondente deve ser fornecido. Um nm_ndice_coluna de 1 retornar o valor na primeira coluna em matriz_tabela; um nm_ndice_coluna de 2 retornar o valor na segunda coluna em matriz_tabela, e assim por diante. Se nm_ndice_coluna for menor do que 1, PROCV retornar o valor de erro #VALOR!; se nm_ndice_coluna for maior do que o nmero de colunas em matriz_tabela, PROCV retornar o valor de erro #REF!. Procurar_intervalo um valor lgico que especifica se voc quer que PROCV encontre a correspondncia exata ou uma correspondncia aproximada. Se VERDADEIRO ou omitida, uma correspondncia aproximada retornada; em outras palavras, se uma correspondncia exata no for encontrada, o valor maior mais prximo que menor que o valor_procurado retornado. Se FALSO, PROCV encontrar uma correspondncia exata. Se nenhuma correspondncia for encontrada, o valor de erro #N/D retornado. Comentrios Se PROCV no localizar valor_procurado, e procurar_intervalo for VERDADEIRO, ela usar o maior valor que for menor do que ou igual a valor_procurado. Se valor_procurado for menor do que o menor valor na primeira coluna de matriz_tabela, PROCV fornecer o valor de erro #N/D. Se PROCV no localizar valor_procurado e procurar_intervalo for FALSO, PROCV fornecer o valor #N/D.
Dica: combinar as formulas SE, EERROS e PROCV produzem um excelente resultado. Exemplo: SE(EERROS(PROCV(...));;PROCV(...))
PROCH: a utilizao do PROCH e idntica ao PROCV, porem ao inves de retornar a coluna, ele retorna a linha procurada.
www.melhordesempenho.com.br sua consultoria online 20 2.4.3.14. TEXTO
Converte um valor em texto com um formato de numero especifico Sintaxe: TEXTO(valor; formato_texto) valor: e um valor numrico ou uma formula avaliada como um valor numrico; formato_texto: e um formato de numero, existente no Excel que se deseja fazer a exibio.
Exemplo: Verificao/comparao de datas, quando uma delas esta em formato texto. SE(TEXTO(A1;dd/mm/)=TEXTO(A2;dd/mm/);IGUAIS;DIFERENTES)
2.4.3.15. EERROS
Verifica se um valor e um erro (#N/D, #VALOR, #REF!, #DIV/0!, #NUM!, #NOME? Ou #NULO!) e retorna VERDADEIRO ou FALSO.
Sintaxe: EERROS(valor)
Valor: e o valor que se deseja testar. Valor pode se referir a uma clula, formula ou a um nome que faz referencia a uma clula, formula ou valor.
Exemplo: Se a clula A1 contem o numero 2 e na clula B1 contem a palavra teste. SE(ERROS(A1+B1);"problema";A1+B1) igual a problema Se a clula A1 contem o numero 2 e na clula B1 contem o numero 7. SE(ERROS(A1+B1);"problema";A1+B1) igual a 9
Dica: combinar as formulas SE, EERROS e PROCV produzem um excelente resultado. Exemplo: SE(EERROS(PROCV(...));;PROCV(...))
www.melhordesempenho.com.br sua consultoria online 21 2.4.3.16. CONCATENAR
Faz o agrupamento de vrios itens de seqncia de caracteres em uma nica seqncia (clula)
Sintaxe: CONCATENAR(texto1;texto2;texto3;...)
Texto1: seqncia de caracteres a ser agrupado.
Exemplo: Se a clula A1 contem o numero 2 e na clula B1 contem a palavra teste. CONCATENAR(A1;B1) 2teste CONCATENAR(A1;-;B1) 2-teste
Dica: utilize & ao invs da formula CONCATENAR: =A1&A2&A3...
2.4.3.17. SOMARPRODUTO
Retorna a soma dos produtos de intervalos ou matrizes correspondentes.
Sintaxe: SOMARPRODUTO(matriz1;matriz2)
Matriz1: ate 30 matrizes para as quais voc deseja multiplicar e somar os valores correspondentes.
Exemplo: Se a clula A1 contem o numero 2 e na clula B1 contem a palavra teste. SOMARPRODUTO(A1:A10;H1:H10)
2.4.3.18. DIREITA / ESQUERDA
Esta formula retorna a quantidade de caracteres a direita (esquerda) da seqncia indicada. Sintaxe: DIREITA(texto;num_caract) ESQUERDA(texto;num_caract)
texto: seqncia de caracteres do qual se deseja extrair a quantidade num_caract. num_caract: numero / quantidade de caracteres a serem extrados de texto. www.melhordesempenho.com.br sua consultoria online 22
Exemplo: Se a clula A1 contem o texto Curso de Excel Intermedirio / Avanado e o numero informado e 14. ESQUERDA(A1;14) e igual a Curso de Excel DIREITA (A1;24) e igual a Intermedirio / Avanado
2.5. REFERNCIA CIRCULAR
A referncia circular um erro muito comumente criado quando voc introduz uma frmula em uma clula cujo contedo faz uma referncia a ele prpria.
2.6. FRMULAS - GERAO E CORREO DE ERROS
Quando voc trabalha com frmulas, a possibilidade de gerar um erro muito grande e pode ocorrer pelo uso indevido de uma funo ou erro de digitao. O EXCEL muitas vezes constata o erro durante a digitao, exibindo uma mensagem de erro e permitindo que voc o corrija.
www.melhordesempenho.com.br sua consultoria online 23
2.7. VALORES DE ERRO
#N/D O valor de erro #N/D significa "No h valor disponvel". Este valor de erro pode ajud- lo a certificar-se de que no foi feita acidentalmente uma referncia a uma clula vazia. Se houver clulas em sua planilha que devam necessariamente conter dados, mas estes dados ainda no estiverem disponveis, inclua o valor #N/D nestas clulas. As frmulas que fazem referncia a estas clulas retornaro o valor #N/D ao invs de calcular um valor.
#NOME? O valor de erro #NOME? ocorre quando voc usa um nome que o Microsoft Excel no reconhea.
#NULO! O valor de erro #NULO! ocorre quando voc especifica uma interseo entre duas reas que no se Intersectam.
#NM! O valor de erro #NM! indica um problema com um nmero.
#VALOR! O valor de erro #VALOR! ocorre quando voc usa um tipo de argumento ou operando invlido. www.melhordesempenho.com.br sua consultoria online 24
#DIV/0! O valor de erro #DIV/0! significa que uma frmula est tentando efetuar uma diviso por zero.
2.8. FIXANDO REFERNCIAS EM FRMULAS
O endereo de uma clula uma referncia sua localizao dentro da planilha. Como padro, as referncias a clulas que so criadas com o formato letra+nmero so consideradas referncias relativas. Alm de uma referncia do tipo relativa, que permite a sua alterao durante a cpia, o Excel permite criar referncias absolutas (fixas) ou mistas. Uma referncia absoluta no muda nem a linha nem a coluna da clula especificada. Uma referncia mista pode fixar apenas a linha ou coluna da clula permitindo o seu ajuste parcial. Para fixar uma linha ou coluna de uma referncia de clula, deve ser especificado o smbolo cifro imediatamente antes da letra, se o usurio desejar fixar a referncia coluna, ou antes do nmero, se quiser fixar a linha. Veja os exemplos possveis de combinaes. $D$4 Fixa a linha e a coluna $D4 Fixa apenas a coluna, permitindo a variao da linha D$4 Fixa apenas a linha, permitindo a variao da coluna D4 No fixa linha nem coluna DICA: Edite a formula com o mouse ou com a tecla F2 e utilize a tecla F4 para alternar as combinaes de fixao da referencia de clulas.
2.9. MOVIMENTAO DE CLULAS
Quando voc usar o boto Copiar, o contedo da clula ou do grupo de clulas selecionado copiado para a rea de transferncia, deixando a clula com seu contedo intacto. O EXCEL permite que voc movimente o contedo de uma ou mais clulas por meio do boto cortar. Este boto copia o contedo das clulas selecionadas para a rea de transferncia, apagando o contedo das clulas selecionadas. Para inserir o contedo da rea de www.melhordesempenho.com.br sua consultoria online 25 transferncia, basta usar o mtodo normal de posicionar o cursor na clula-destino e pressionar o boto Colar.
2.10. TECLAS SHIFT, CTRL, HOME, END E SETAS NO EXCEL
Sempre que precisamos selecionar uma planilha ou parte dela, a primeira ferramenta que temos mao o mouse e a utilizamos como sendo a nica e mais eficiente para execuo desta tarefa. Porem, utilizar combinao de teclas Shift, Ctrl, Home, End e Setas, obtemos grande eficincia, agilidade na seleo de uma rea. Veja como:
Teclas Operao Ctrl + Localiza a ultima (ou primeira) clula no vazia direita Ctrl + Localiza a ultima (ou primeira) clula no vazia esquerda Ctrl + home Seleciona imediatamente a clula A1 da planilha Ctrl + end Seleciona a combinao de linha e coluna com contedo mais distante da clula A1 Ctrl + Shift + Seleciona desde a clula atual ate ultima (ou primeira) clula no vazia a direita Ctrl + Shift + Seleciona desde a clula atual ate ultima (ou primeira) clula no vazia esquerda Ctrl + Shift + end Seleciona desde a clula atual ate a combinao de linha e coluna com contedo mais distante da clula A1
2.11. ALGUNS ATALHOS INTERESSANTES
Todos os comandos existentes no Excel podem ser executas a partir do teclado, dispensando a utilizao do mouse. Obviamente eliminar a utilizao do mouse pode, ao www.melhordesempenho.com.br sua consultoria online 26 invs de agilizar nosso dia-a-dia, atrasar nossas atividades. Porem, alguns atalhos que realizam as funes mais freqentemente utilizadas otimizam nosso tempo:
Teclas Referencia na Tecla Operao Ctrl + Shift + 1 ! Utilizado em clulas numricas: Inclui duas casas decimais Inclui separador de milhar Ctrl + Shift + 2 @ Utilizado para horas: Formata o numero em hh:mm Inclui indicao AM ou PM Ctrl + Shift + 3 # Utilizado em datas: Formata a data em d-mmm-aa Ctrl + Shift + 4 $ Utilizado em nmeros: Inclui o numero com o $ Inclui o separador de milhar Formata para duas casas decimais Ctrl + Shift + 5 % Utilizado em percentual: Formata o numero como percentual Ctrl + Shift + 6 ^ Utilizado em nmeros: Formata o numero em notao cientifica Ctrl + Shift + 7 & Utilizado em formatao de clulas: Inclui a linha de grade externa da clula ou range selecionado Ctrl + Shift + 8 * Utilizado em seleo de dados: Seleciona a tabela a qual sua clula pertence Ctrl + Shift + - _ Utilizado em formatao de clulas: Exclui todas as linhas de grade da clula ou range selecionado
www.melhordesempenho.com.br sua consultoria online 27 2.12. LISTA ALFABTICA DE FUNES DE PLANILHA
Funo Significado__________________________________ ABS Retorna o valor absoluto de um nmero ACOSH Retorna o cosseno hiperblico inverso de um nmero ACOS Retorna o arco tangente de um nmero AGORA Retorna o nmero de srie da data e hora atual ALEATRIO.ENTRE Retorna um nmero aleatrio dentre os nmeros especificados ALEATRIO Retorna um nmero aleatrio entre 0 e 1 AMORDEGRC Retorna a depreciao pro rata de um ativo para cada perodo contbil AMORLINC Retorna a depreciao pro rata de um ativo para cada perodo contbil ANO Converte um nmero de srie em um ano REAS Retorna o nmero de reas em uma referncia ARREDMULTB Arredonda um nmero para baixo at zero ARREDONDAR.PARA.BAIXO Arredonda um nmero para baixo at zero ARREDONDAR.PARA.CIMA Arredonda um nmero para cima afastando-o de zero ARRED Arredonda um nmero at uma quantidade especificada de dgitos ARRUMAR Remove os espaos do texto ASENH Retorna o seno hiperblico inverso de um nmero ASEN Retorna o arco seno de um nmero ATAN2 Retorna o arco tangente das coordenadas x e y ATANH Retorna a tangente hiperblica inversa de um nmero ATAN Retorna o arco tangente de um nmero BDCONTARA Conta as clulas no vazias de um banco de dados e critrios especificados www.melhordesempenho.com.br sua consultoria online 28 BDCONTAR Conta as clulas contendo nmeros de um banco de dados e critrios especificados BDDESVPA Calcula o desvio padro com base na populao total de entradas selecionadas do banco de dados BDD Retorna a depreciao de um ativo durante um perodo especificado usando o mtodo de balano de declnio duplo BDEST Estima o desvio padro com base em uma amostra de entradas selecionadas do banco de dados BDEXTRAIR Extrai de um banco de dados um nico registro que corresponde aos critrios especificados BDMX Retorna o valor mximo das entradas do banco de dados selecionado BDMDIA Retorna a mdia das entradas do banco de dados selecionadas BDMN Retorna o valor mnimo das entradas do banco de dados selecionado BDMULTIPL Multiplica os valores em um determinado campo de registros que correspondem aos critrios em um banco de dados BDSOMA Soma os nmeros da coluna do campo de registros em um banco de dados que corresponde aos critrios BDVAREST Estima a varincia com base em uma amostra das entradas selecionadas do banco de dados BDVARP Calcula a varincia com base na populao total de entradas selecionadas de banco de dados BDV Retorna a depreciao de um ativo para um perodo especfico ou parcial utilizando um mtodo de balano decrescente BD Retorna a depreciao de um ativo para um determinado perodo utilizando o mtodo de balano de declnio fixo BESSELI Retorna a funo Bessel modificada ln(x) BESSELJ Retorna a funo Bessel Jn(x). BESSELK Retorna a funo Bessel modificada Kn(x) BESSELY Retorna a funo Bessel Yn(x) www.melhordesempenho.com.br sua consultoria online 29 BETA.ACUM.INV Retorna o inverso da funo de densidade da probabilidade beta cumulativa BINADEC Converte um nmero binrio em decimal BINAHEX Converte um nmero binrio em hexadecimal. BINAOCT Converte um nmero binrio em octal. CL Retorna informaes sobre o formato, a localizao e o contedo de uma clula CARACT Retorna o caractere especificado pelo cdigo nm CHAMAR Chama um procedimento em uma biblioteca de vnculo dinmico (DLL) ou recurso de cdigo CDIGO Retorna um cdigo numrico para o primeiro caractere de uma seqncia de texto COLS Retorna o nmero de colunas contidas em uma referncia COL Retorna o nmero da coluna de uma referncia COMBIN Retorna o nmero de combinaes para um determinado nmero de objetos COMPLEXO Converte coeficientes reais e imaginrios em um nmero complexo CONCATENAR Agrupa vrios itens de texto em um item de texto CONT.NM Calcula quantos nmeros h na lista de argumentos CONT.SE Calcula o nmero de clulas no vazias em um intervalo que corresponde a um dado critrio CONT.VALORES Calcula o nmero de valores existentes na lista de argumentos CONTAR.VAZIO Conta o nmero de clulas vazias em um intervalo CONVERTER Converte um nmero de um sistema de medida para outro CORREL Retorna o coeficiente de correlao entre dois conjuntos de dados CORRESP Procura por valores em uma referncia ou matriz COSH Retorna o cosseno hiperblico de um nmero COS Retorna o cosseno de um nmero www.melhordesempenho.com.br sua consultoria online 30 COVAR Retorna a covarincia, a mdia dos produtos dos desvios em pares CRESCIMENTO Retorna valores ao longo de uma tendncia exponencial CRIT.BINOM Retorna o menor valor para o qual a distribuio binomial cumulativa maior ou igual ao valor padro CUPDATAANT Retorna a ltima data do cupom antes da data de liquidao CUPDATAPRX Retorna a prxima data do cupom depois da data de liquidao CUPDIASINLIQ Retorna o nmero de dias entre o incio do cupom e a data de liquidao CUPDIASPRX Retorna o nmero de dias entre a data de liquidao e a prxima data do cupom CUPDIAS Retorna o nmero de dias no perodo do cupom que contm a data de liquidao CUPNM Retorna o nmero de cupons a serem pagos entre a data de liquidao e a data do vencimento CURT Retorna a curtose de um conjunto de dados DATA.VALOR Converte uma data em forma de texto em um nmero de srie DATAM Retorna o nmero de srie da data que o nmero indicador de meses antes ou depois da data inicial DATA Retorna o nmero de srie de uma data especfica DECABIN Converte um nmero decimal em binrio DECAHEX Converte um nmero decimal em hexadecimal DECAOCT Converte um nmero decimal em octal DEF.NM.DEC Formata um nmero como texto com um nmero fixo de decimais DEGRAU Testa se um nmero maior que um valor limite DELTA Testa se dois valores so iguais DESC Retorna a taxa de desconto de um ttulo DESLOC Retorna um deslocamento de referncia de uma referncia determinada www.melhordesempenho.com.br sua consultoria online 31 DESV.MDIO Retorna a mdia aritmtica dos desvios absolutos dos pontos de dados a partir de sua mdia DESVPADP Calcula o desvio padro com base na populao total DESVPAD Calcula o desvio padro a partir de uma amostra DEVSQ Retorna a soma dos quadrados dos desvios DIA.DA.SEMANA Converte um nmero de srie em um dia da semana DIA.TRABALHO.TOTAL Retorna o nmero de dias teis entre duas datas DIA.TRABALHO Retorna o nmero de srie da data antes ou depois de um nmero especificado de dias teis DIAS360 Calcula o nmero de dias decorridos entre duas datas com base em um ano de 360 dias DIA Converte um nmero de srie em um dia do ms DIREITA Retorna os caracteres extrema direita de um valor de texto DIST.BIN.NEG Retorna a distribuio binomial negativa DIST.HIPERGEOM Retorna a distribuio hipergeomtrica DIST.LOGNORMAL Retorna a distribuio log-normal cumulativa DIST.NORMP Retorna a distribuio cumulativa normal padro DIST.NORM Retorna a distribuio cumulativa normal DIST.QUI Retorna a probabilidade uni-caudal da distribuio qui- quadrada DISTBETA Retorna a funo de densidade da probabilidade beta cumulativa DISTEXPON Retorna a distribuio exponencial DISTF Retorna a distribuio de probabilidade F DISTGAMA Retorna a distribuio gama DISTORO Retorna a distoro de uma distribuio DISTRBINOM Retorna a probabilidade da distribuio binomial do termo individual DISTT Retorna a distribuio t de Student www.melhordesempenho.com.br sua consultoria online 32 DPD Retorna a depreciao em linha reta de um ativo durante um perodo DURAO Retorna a durao anual de um ttulo com pagamentos de juros peridicos MPAR Retorna VERDADEIRO se o nmero for mpar .NO.DISP Retorna VERDADEIRO se o valor for o valor de erro #N/D .NO.TEXTO Retorna VERDADEIRO se o valor no for um texto PAR Retorna VERDADEIRO se o nmero for par CL.VAZIA Retorna VERDADEIRO se o valor for vazio ERROS Retorna VERDADEIRO se o valor for qualquer valor de erro ERRO Retorna VERDADEIRO se o valor for qualquer valor de erro com exceo de #N/D EFETIVA Retorna a taxa de juros anual efetiva LGICO Retorna VERDADEIRO se o valor for um valor lgico ENDEREO Retorna uma referncia como texto para uma nica clula de uma planilha NM Retorna VERDADEIRO se o valor for um nmero EPADYX Retorna o erro padro do valor-y previsto para cada x da regresso REF Retorna VERDADEIRO se o valor for uma referncia ESCOLHER Escolhe um valor a partir de uma lista de valores ESQUERDA Retorna os caracteres da extremidade esquerda de um valor de texto TEXTO Retorna VERDADEIRO se o valor for um texto EXATO Verifica se h dois valores de texto idnticos E Retorna VERDADEIRO se todos os argumentos forem VERDADEIROS EXP Retorna e elevado potncia de um determinado nmero EXT.TEXTO Retorna um nmero especfico de caracteres de uma seqncia de texto a partir da posio especificada www.melhordesempenho.com.br sua consultoria online 33 FALSO Retorna o valor lgico FALSO FATDUPLO Retorna o fatorial duplo de um nmero FATORIAL Retorna o fatorial de um nmero FIMMS Retorna o nmero de srie do ltimo dia do ms antes ou depois de um dado nmero de meses FISHERINV Retorna o inverso da transformao Fisher FISHER Retorna a transformao Fisher FRAO.ANO Retorna a diferena do ano que representa o nmero entre data_inicial e data_final FREQNCIA Retorna uma distribuio da freqncia como uma matriz vertical FUNERROCOMPL Retorna a funo de erro complementar FUNERRO Retorna a funo de erro GRAUS Converte radianos em graus HEXABIN Converte um nmero hexadecimal em binrio HEXADEC Converte um nmero hexadecimal em decimal HEXAOCT Converte um nmero hexadecimal em octal HOJE Retorna o nmero de srie da data de hoje HORA Converte um nmero serial em uma hora IDENT.REGISTRO Retorna o recurso de cdigo ou a identificao de registro da biblioteca de vnculo dinmico (DLL) especificado anteriormente registrado IMABS Retorna o valor absoluto (mdulo) de um nmero complexo IMAGINRIO Retorna o coeficiente imaginrio de um nmero complexo IMARG Retorna o argumento q, expresso em radianos IMCONJ Retorna o conjugado complexo de um nmero complexo IMCOS Retorna o cosseno de um nmero complexo IMDIV Retorna o quociente de dois nmeros complexos IMEXP Retorna o exponencial de um nmero complexo www.melhordesempenho.com.br sua consultoria online 34 IMLN Retorna o logaritmo natural de um nmero complexo IMLOG10 Retorna o logaritmo de base-10 de um nmero complexo IMLOG2 Retorna o logaritmo de base-2 de um nmero complexo MPAR Arredonda um nmero para cima at o nmero mpar inteiro mais prximo IMPOT Retorna um nmero complexo elevado a uma potncia inteira IMPROD Retorna o produto de dois nmeros complexos IMRAIZ Retorna a raiz quadrada de um nmero comlexo IMREAL Retorna o coeficiente real de um nmero complexo IMSENO Retorna o seno de um nmero complexo IMSOMA Retorna a soma de nmeros complexos IMSUBTR Retorna a diferena de dois nmeros complexos INCLINAO Retorna a inclinao da reta de regresso linear NDICE Utiliza um ndice para selecionar um valor de uma referncia ou matriz INDIRETO Retorna uma referncia indicada por um valor de texto INFORMAO Retorna informaes sobre o ambiente operacional atual INT.CONFIANA Retorna o intervalo de confiana para uma mdia da populao INTERCEPO Retorna a intercepo da linha de regresso linear INT Arredonda um nmero para baixo at o nmero inteiro mais prximo INV.NORMP Retorna o inverso da distribuio cumulativa normal padro INV.NORM Retorna o inverso da distribuio cumulativa normal INV.QUI Retorna o inverso da probabilidade uni-caudal da distribuio qui-quadrada INVF Retorna o inverso da distribuio de probabilidades INVGAMA Retorna o inverso da distribuio cumulativa gama INVLOG Retorna o inverso da distribuio log-normal www.melhordesempenho.com.br sua consultoria online 35 INVT Retorna o inverso da distribuio t de Student IPGTO Retorna o pagamento dos juros de um investimento durante um determinado perodo JUROSACUMV Retorna os juros incorridos de um ttulo que paga juros no vencimento JUROSACUM Retorna os juros incorridos de um ttulo que paga juros no vencimento LINS Retorna o nmero de linhas em uma referncia LIN Retorna o nmero da linha de uma referncia LNGAMA Retorna o logaritmo natural da funo gama, G(x) LN Retorna o logaritmo natural de um nmero LOCALIZAR Localiza um valor de texto dentro de outro (no distingue maisculas de minsculas) LOG10 Retorna o logaritmo de base 10 de um nmero LOG Retorna o logaritmo de um nmero de uma base especificada LUCRO Retorna o rendimento de um ttulo que paga juros peridicos LUCRODESC Retorna o rendimento anual de um ttulo com desgio. Por exemplo, a letra do Tesouro LUCROPRIMINC Retorna o rendimento de um ttulo com um perodo inicial incompleto LUCROLTINC Retorna o rendimento de um ttulo com um perodo final incompleto LUCROVENC Retorna o rendimento anual de um ttulo que paga juros no vencimento MAIOR Retorna o maior valor k-simo de um conjunto de dados MAISCULA Converte o texto em maisculas MARRED Retorna um nmero arrendondado ao mltiplo desejado MATRIZ.DETERM Retorna a matriz determinante de uma matriz MATRIZ.INVERSO Retorna a matriz inversa de uma matriz MATRIZ.MULT Retorna a matriz produto de duas matrizes www.melhordesempenho.com.br sua consultoria online 36 MXIMO Retorna o valor mximo de uma lista de argumentos MDC Retorna o maior divisor comum MDURAO Retorna a durao modificada Macauley de um ttulo com um valor par atribudo de $100 MDIA.GEOMTRICA Retorna a mdia geomtrica MDIA.HARMNICA Retorna a mdia harmnica MDIA.INTERNA Retorna a mdia do interior de um conjunto de dados MDIA Retorna a mdia dos argumentos MED Retorna a mediana dos nmeros indicados MENOR Retorna o menor valor k-simo do conjunto de dados MS Converte um nmero de srie em ms MNIMO Retorna o valor mnimo contido em uma lista de argumentos MINSCULA Converte o texto para minsculas MINUTO Converte nmero de srie em minuto MMC Retorna o menor mltiplo comum MODO Retorna o valor mais comum em um conjunto de dados MOD Retorna o resto da diviso MOEDA Converte um nmero em texto, utilizando o formato de moeda MOEDADEC Converte um preo em moeda, expreso com uma frao, em um preo em moeda, expresso como um nmero decimal MOEDAFRA Converte um preo em moeda, expresso com um nmero decimal, em um preo em moeda, expresso como uma frao MTIR Retorna a taxa interna de retorno em que fluxos de caixa positivos e negativos so financiados com taxas diferentes MUDAR Substitui caracteres no texto MULTINOMIAL Retorna o multinominal de um conjunto de nmeros MULT Multiplica os seus argumentos NO.DISP Retorna o valor de erro #N/D www.melhordesempenho.com.br sua consultoria online 37 NO Inverte a lgica do argumento NOMINAL Retorna a taxa de juros nominal anual NPER Retorna o nmero de perodos de um investimento NM.CARACT Retorna o nmero de caracteres em uma seqncia de texto N Retorna um valor convertido para um nmero OCTABIN Converte um nmero octal em binrio OCTADEC Converte um nmero octal em decimal OCTAHEX Converte um nmero octal em hexadecimal ORDEM.PORCENTUAL Retorna a ordem porcentual de um valor em um conjunto de dados ORDEM Retorna a posio de um nmero em uma lista de nmeros OTNLUCRO Retorna o rndimento de uma letra do Tesouro OTNVALOR Retorna o preo por $100 do valor nominal de uma letra do Tesouro OTN Retorna o rendimento de uma letra do Tesouro equivalente ao rendimento de um ttulo OU Retorna VERDADEIRO se qualquer argumento for VERDADEIRO PADRONIZAR Retorna um valor normalizado PAR Arredonda um nmero para cima at o valor inteiro mais prximo PEARSON Retorna o coeficiente de correlao do momento do produto Pearson PERCENTIL Retorna o k-simo percentil de valores em um intervalo PERMUT Retorna o nmero de permutaes para um dado nmero de objetos PGTOCAPACUM Retorna o capital cumulativo pago em um emprstimo entre dois perodos PGTOJURACUM Retorna os juros cumulativo pago entre dois perodos PGTO Retorna o pagamento peridico de uma anuidade www.melhordesempenho.com.br sua consultoria online 38 PI Retorna o valor de Pi POISSON Retorna a distribuio Poisson POTNCIA Retorna o resultado de um nmero elevado a uma potncia PPGTO Retorna o pagamento sobre o montante de um investimento em um determinado perodo PREODESC Retorna o preo por $100 do valor nominal de um ttulo com desgio PREOPRIMINC Retorna o preo por $100 do valor nominal de um ttulo com um perodo inicial incompleto PREOLTINC Retorna o preo por $100 do valor nominal de um ttulo com um perodo final incompleto PREOVENC Retorna o preo por $100 do valor nominal de um ttulo que paga juros no vencimento PREO Retorna o preo por $100 do valor nominal de um ttulo que paga juros peridicos PREVISO Retorna um valor ao longo de uma tendncia linear PRI.MAISCULA Coloca em maiscula a primeira letra de cada palavra de um valor de texto PROB Retorna a probabilidade de valores em um intervalo estarem entre dois limites PROCH Pesquisa na linha superior de uma matriz e retorna o valor da clula indicada PROCURAR Localiza um valor de texto dentro de outro (distingue maisculas de minsculas)
PROCV Procura a partir da primeira coluna e linha de uma matriz para retornar o valor de uma clula PROC Procura valores em um vetor ou matriz PROJ.LIN Retorna os parmetros de uma tendncia linear PROJ.LOG Retorna os parmetros de uma tendncia exponencial QUARTIL Retorna o quartil do conjunto de dados QUOCIENTE Retorna a parte inteira de uma diviso www.melhordesempenho.com.br sua consultoria online 39 RADIANOS Converte graus em radianos RAIZPI Retorna a raiz quadrada de (nm*pi) RAIZ Retorna uma raiz quadrada positiva RECEBER Retorna a quantia recebida no vencimento para um ttulo totalmente investido REPETIR Repete o texto um determinado nmero de vezes ROMAN Converte um algarismo arbico em romano, como texto RQUAD Retorna o quadrado do coeficiente de correlao do momento do produto de Pearson SDA Retorna a depreciao dos dgitos da soma dos anos de um ativo para um perodo especificado SEGUNDO Converte um nmero de srie em segundo SENH Retorna o seno hiperblico de um nmero SEN Retorna o seno de um nmero dado SE Especifica um teste lgico a ser executado SINAL Retorna o sinal de um nmero SOMAQUAD. Retorna a soma dos quadrados dos argumentos SOMARPRODUTO Retorna a soma dos produtos dos componentes das matrizes correspondentes SOMASE Adiciona as clulas especificadas por um determinado critrio SOMASEQNCIA Retorna a soma de sries de potncia baseado na frmula SOMAX2DY2 Retorna a soma da diferena dos quadrados de valores correspondentes em duas matrizes SOMAX2SY2 Retorna a soma da soma dos quadrados de valores correspondentes em duas matrizes SOMA Soma seus argumentos SOMAXMY2 Retorna a soma dos quadrados das diferenas dos valores correspondentes em duas matrizes SQL.REQUEST Requere uma conexo e executa uma consulta SQL www.melhordesempenho.com.br sua consultoria online 40 SUBSTITUIR Substitui um texto antigo por outro novo em uma seqncia de texto SUBTOTAL Retorna um subtotal em uma lista ou banco de dados TANH Retorna a tangente hiperblica de um nmero TAN Retorna a tangente de um nmero TAXAJUROS Retorna a taxa de juros de um ttulo totalmente investido TAXA Retorna a taxa de juros por perodo em uma anuidade TEMPO Retorna o nmero de srie de uma hora especfica TENDNCIA Retorna valores ao longo de uma tendncia linear TESTE.QUI Retorna o teste para independncia TESTEF Retorna o resultado de um teste F TESTET Retorna a probabilidade associada ao teste t de Student TESTEZ Retorna o valor-P bi-caudal do teste-z TETO Arredonda um nmero para o prximo nmero inteiro ou at o prximo mtiplo significativo TEXTO Formata um nmero e o converte para texto TIPO.ERRO Retorna um nmero que corresponde a um tipo de erro TIPO Retorna um nmero que indica o tipo de dados de um valor TIRAR Remove todos os caracteres do texto que no podem ser impressos TIR Retorna a taxa interna de retorno de uma seqncia de fluxos de caixa TRANSPOR Retorna a transposio de uma matriz TRUNCAR Trunca um nmero at um nmero inteiro T Converte os argumentos em texto VALOR.TEMPO Converte uma hora em forma de texto em um nmero de srie VALOR Converte um argumento de texto em um nmero VARP Calcula a varincia com base na populao total www.melhordesempenho.com.br sua consultoria online 41 VAR Estima a varincia a partir de uma amostra VERDADEIRO Retorna o valor lgico VERDADEIRO VFPLANO Retorna o valor futuro de um capital inicial depois de ter sido aplicado uma srie de taxas de juros compostos VF Retorna o valor futuro de um investimento VPL Retorna o valor lquido atual de um investimento, baseado em uma srie de fluxos de caixa peridicos e em uma taxa de desconto VP Retorna o valor presente de um investimento WEIBULL Retorna a distribuio Weibull XTIR Retorna a taxa de retorno interna de um programa de fluxos de caixa XVPL Retorna o valor presente lquido de um programa de fluxos de caixa
www.melhordesempenho.com.br sua consultoria online 42 3. FILTRO AVANADO
Para filtrar um intervalo de clulas utilizando critrios complexos, use o comando Avanado no grupo Filtrar. O comando Avanado trabalha de forma diferente do comando Filtro em vrios aspectos diferentes, sendo que o mais utilizado o filtro avanado para registros exclusivos, com a remoo de registros exclusivos. Um valor duplicado aquele em que todos os valores da linha so um equivalente exato de todos os valores em outra linha. Valores duplicados so determinados pelo valor exibido na clula e no necessariamente pelo valor armazenado na clula. Por exemplo, se voc tem o mesmo valor de data em clulas diferentes, um formatado como "8/3/2006" e outro como "Mar 8, 2006", os valores so nicos. Convm filtrar valores nicos primeiro para confirmar se os resultados so os desejados antes de remover valores duplicados.
Ateno: ao utilizar os registros exclusivos, voc obter como resultado somente a quantidade de colunas selecionadas no intervalo da lista, ou seja, se sua tabela contiver 10 colunas e voc selecionou apenas 2, os valores obtidos sero apenas referentes aos das duas colunas selecionadas.
Dica: combine as funes SOMASE, CONTSE e PROCV com o filtro avanado para registros exclusivos.
www.melhordesempenho.com.br sua consultoria online 43 4. VALIDAO DE DADOS
Para facilitar a entrada de dados, ou para limitar a incluso de itens indesejados, a validao de dados fundamental e mostra-se como uma ferramenta muito importante na formatao e segurana de seus dados H diversas opes nas formas de restringir ou permitir a insero de dados em sua planilha. Algumas das mais utilizadas esto exemplificadas abaixo.
4.1. LISTA SUSPENSA
O EXCEL permite criar uma lista suspensa de entradas vlidas que compilada a partir de clulas de qualquer local da pasta de trabalho. Ao criar uma lista suspensa para uma clula, ela exibe uma seta naquela clula. Para inserir informaes na clula, clique na seta e, em seguida, clique na entrada desejada Para criar uma lista suspensa a partir de um intervalo de clulas: Menu Ferramentas Validao de Dados Permitir = Lista Fonte: selecione a lista de dados desejada ou digite, separada por ponto-e- virgula ; as entradas permitidas
Observao: Convm classificar os dados na ordem em que deseja que apaream na lista suspensa. www.melhordesempenho.com.br sua consultoria online 44 4.2. CRITRIOS DE VALIDAO
A ferramenta de Validao de Dados do EXCEL permite tambm restringir tipos de dados e/ou intervalos de dados a serem inseridos em sua planilha. Para utilizar esta opo, de restringir tipos de dados ou mesmo restringir o intervalo dos dados, siga os seguintes passos: Menu Ferramentas Validao de Dados Permitir = Numero Inteiro; Data; Hora; etc Dados = escolha o tipo de dados a serem inseridos (maior que; entre; menor que; etc) Defina o range ou valor conforme a escolha do item anterior.
No exemplo acima, foi definido que a clula A1 devera receber como informao, apenas nmeros inteiros entre 0 e 100. Qualquer que seja a informao inserida que no pertena a este conjunto de dados permitidos, uma mensagem ser exibida ao usurio informando a infrao cometida. Veja o exemplo abaixo: www.melhordesempenho.com.br sua consultoria online 45
5. TABELAS DINAMICAS
Muitas vezes necessria a anlise de diversas perspectivas de um mesmo relatrio. Para evitar que sejam confeccionadas vrias planilhas de anlise, com base em um mesmo banco de dados, o Excel utilizar um recurso muito interessante conhecido como Tabela Dinmica. Os dados de origem podem ser de diversos programas. Veja a tela inicial abaixo:
www.melhordesempenho.com.br sua consultoria online 46 O processo de criao de uma tabela dinmica um pouco complexo. Temos que obedecer alguns passos (vamos trabalhar somente com planilhas). 1 passo: Primeiro passo vamos criar uma tabela de exemplo. Siga o modelo abaixo:
Nome Produto Valor da venda Preo de Custo Margem Representante Regio Cliente7 Item12 624 374,4 67% Vendedor3 Leste Cliente8 Item8 3.133,00 1.566,50 100% Vendedor8 Leste Cliente6 Item12 5.221,67 4.177,33 25% Vendedor3 Leste Cliente14 Item14 1.305,42 1.096,55 19% Vendedor3 Leste Cliente15 Item15 3.916,25 3.681,28 6% Vendedor15 Leste Cliente1 Item1 100 80 25% Vendedor1 Norte Cliente5 Item1 25 20 25% Vendedor3 Norte Cliente15 Item11 41,67 25 67% Vendedor11 Norte Cliente6 Item1 69,44 63,89 9% Vendedor3 Norte Cliente15 Item1 116 81,2 43% Vendedor3 Oeste Cliente15 Item1 20,5 12,3 67% Vendedor3 Sul Cliente4 Item4 100 50 100% Vendedor4 Sul Cliente10 Item10 166,67 121,67 37% Vendedor10 Sul Cliente8 Item14 5.286,94 4.177,33 25% Vendedor11 Leste Cliente6 Item15 135 1.096,55 19% Vendedor3 Norte
2 passo: Clique no menu Dados. Depois clique em Relatrio de Tabela e grficos dinmicos. 3 passo: Escolha Banco de Dados ou lista do Microsoft Office Excel. 4 passo: Defina a rea de origem das informaes. Esse passo muito importante e geralmente o Excel j seleciona todas as clulas do intervalo dos dados.
5 passo: Defina agora onde voc quer que a Tabela Dinmica ser inserida (se em uma nova planilha ou em uma planilha existente). Em nosso exemplo vamos utilizar uma Nova Planilha. www.melhordesempenho.com.br sua consultoria online 47
6 passo: A tela abaixo ser exibida. Agora devemos montar a nossa tabela dinmica. Para um bom aproveitamento dos relatrios deveremos ter em mente qual o objetivo do relatrio. *
Em nosso exemplo queremos emitir uma consulta que permita consultar por regio: o nome do vendedor, o produto vendido, o representante e o total das vendas. Veja tela abaixo.
www.melhordesempenho.com.br sua consultoria online 48
A ordem dos campos pode mudar o resultado do relatrio. Agora iremos inverter os campos representantes e cliente. Observe que o resultado o mesmo, mas o agrupamento mudou. Agora as vendas esto agrupadas por vendedor. Na primeira consulta estava agrupada por cliente.
Experimente agora alterar outros campos do relatrio
1 2 3 4 5 www.melhordesempenho.com.br sua consultoria online 49
6. LGICA DE PROGRAMAO
A lgica para programao consiste em aprender a pensar na mesma seqncia em que o computador executa as tarefas, aprende-se a imaginar como as aes sero executadas partindo-se do estudo de um problema at chegar construo de um algoritmo (soluo). Quando pensamos em fazer um programa no computador, temos que ter em mente que a mquina desconhece totalmente alguns conceitos que para ns muito bvio. Por isto, devemos descrever cada passo por mais simples que seja para que haja uma seqncia lgica em nossa programao e assim, o computador executar todas as instrues necessrias para a execuo de uma determinada tarefa. Ser que para o computador to simples somar 1+1 como para ns, seres humanos? Vamos analisar... Primeiramente necessrio armazenar o primeiro nmero fornecido pelo usurio na memria do computador. Ler e armazenar o primeiro nmero seria a primeira tarefa. Por que armazenar? Porque ele somar o primeiro nmero com o prximo nmero fornecido! Enquanto isto, ele deve memorizar o primeiro nmero, seno, quando fornecermos o prximo, ele j esqueceu o primeiro! Ler e armazenar o segundo nmero pelo mesmo motivo que o primeiro! Executar a operao de soma Memorizar o resultado da soma para mostrar em sua tela! Quando falamos em memorizar, estamos dizendo que o dado deve ser colocado na memria do computador. Inserimos valores na memria de um computador atravs de VARIVEIS.
6.1. ALGUMAS DEFINIES DE LGICA
LGICA a seqncia coerente, regular e necessria de acontecimentos, de coisas; coerncia de raciocnio, de idias; maneira do raciocnio particular que cabe a um indivduo ou a um grupo (Dicionrio Aurlio). LGICA a tcnica de encadear os pensamentos para se atingir um objetivo (Sonia Maria Duarte). www.melhordesempenho.com.br sua consultoria online 50 PROBLEMA LGICA a cincia dos princpios formais do raciocnio (Manzano).
6.2. O USO DA LGICA NA ANLISE DE UM PROBLEMA
Quando pensamos em desenvolver um programa, devemos ter domnio sobre o mesmo, analisando cada etapa do problema, para que possamos fornecer ao computador uma seqncia lgica de passos que a mquina dever executar para que resolva o nosso problema.
Para resolver qualquer problema, iremos dividi-lo em trs partes: 1) Dados de entrada: so as informaes necessrias que eu preciso obter para atingir o objetivo. 2) Processamento: o calculo (caso tenha um) que dever ser feito para solucionar o problema. 3) Sada: objetivo a atingindo.
Exemplo: Calcular a mdia de um aluno. Sabendo que a mdia a soma das duas notas dividido por 2. Dados de entrada: Nota1 e Nota2 Processamento: Mdia=(Nota1+Nota2)/2 Sada: Mdia
ANLISE ALGORITMO Diagrama em PROGRAMA www.melhordesempenho.com.br sua consultoria online 51
6.3. FORMAS DE REPRESENTAO DE ALGORITMOS
Existem diversas formas de representao de algoritmos, mas no h um consenso com relao melhor delas. O critrio usado para classificar hierarquicamente estas formas est diretamente ligado ao nvel de detalhe ou, inversamente, ao grau de abstrao oferecido. Algumas formas de representao de algoritmos tratam os problemas apenas em nvel lgico, abstraindo-se de detalhes de implementao muitas vezes relacionados com alguma linguagem de programao especfica. Por outro lado existem formas de representao de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurecer as idias principais do algoritmo, dificultando seu entendimento. Dentre as formas de representao de algoritmos mais conhecidas podemos citar: - Descrio Narrativa; - Fluxograma Convencional; - Pseudocdigo, tambm conhecido como Linguagem Estruturada ou Portugol.
6.3.1. DESCRIO NARRATIVA
Nesta forma de representao os algoritmos so expressos diretamente em linguagem natural. Como exemplo tem-se os algoritmos seguintes: Receita de bolo: Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se houver coco ralado ento despeje sobre a mistura Leve a forma ao forno Enquanto no corar deixe a forma no forno Retire do forno Deixe esfriar
Esta representao pouco usada na prtica porque o uso da linguagem natural muitas vezes d oportunidade a ms interpretaes, ambigidades e imprecises.
www.melhordesempenho.com.br sua consultoria online 52 6.3.2. FLUXOGRAMA CONVENCIONAL
uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintas. Tal propriedade facilita o entendimento das idias contidas nos algoritmos e justifica sua popularidade. Esta forma aproximadamente intermediria descrio narrativa e ao pseudocdigo (subitem seguinte), pois menos imprecisa que a primeira e, no entanto, no se preocupa com detalhes de implementao do programa, como o tipo das variveis usadas. Nota-se que os fluxogramas convencionais preocupam-se com detalhes de nvel fsico da implementao do algoritmo. Por exemplo, figuras geomtricas diferentes so adotadas para representar operaes de sada de dados realizadas em dispositivos distintos, como uma fita magntica ou um monitor de vdeo. Como esta apostila no est interessada em detalhes fsicos da implementao, mas to somente com o nvel lgico das instrues do algoritmo, ser adotada a notao simplificada abaixo para os fluxogramas. Principais formas geomtricas usadas em fluxogramas:
Incio e final do fluxograma
Operao de entrada de dados
Operao de sada de dados
Operao de processamento
Deciso
De modo geral, um fluxograma se resume a um nico smbolo inicial por onde a execuo do algoritmo comea, e um ou mais smbolos finais, que so pontos onde a execuo do algoritmo se encerra. Partindo do smbolo inicial, h sempre um nico caminho orientado a ser seguido, representando a existncia de uma nica seqncia de execuo das instrues. Isto pode ser melhor visualizado pelo fato de que, apesar de vrios caminhos poderem convergir para uma mesma figura do diagrama, h sempre um nico caminho saindo desta. Excees a esta regra so os smbolos finais, dos quais no h nenhum fluxo saindo, e os smbolos de deciso, de onde pode haver mais de um caminho de sada (usualmente dois caminhos), representando uma bifurcao no fluxo.
www.melhordesempenho.com.br sua consultoria online 53
6.3.3. PSEUDOCDIGO
Esta forma de representao de algoritmos rica em detalhes, como a definio dos tipos das variveis usadas no algoritmo. Por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao. Na verdade, esta representao suficientemente geral para permitir a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta. A forma geral da representao de um algoritmo na forma de pseudocdigo a seguinte: Algoritmo <nome_do_algoritmo> <declarao_de_variveis> Incio <corpo do algoritmo> Fim Lgica
Algoritmo uma palavra que indica o incio da definio de um algoritmo em forma de pseudocdigo. <nome_do_algoritmo> um nome simblico dado ao algoritmo com a finalidade de distingui-los dos demais. <declarao_de_variveis> consiste em uma poro opcional onde so declaradas as variveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. Incio e Fim so respectivamente as palavras que delimitam o incio e o trmino do conjunto de instrues do corpo do algoritmo. Como exemplo, abaixo mostra a representao do algoritmo do clculo da mdia de um aluno, na forma de um pseudocdigo. Algoritmo Calculo_Media Declare N1, N2, MEDIA: real Incio Leia N1, N2 MEDIA = (N1 + N2) / 2 www.melhordesempenho.com.br sua consultoria online 54 Se MEDIA >= 7 ento Escreva Aprovado Seno Escreva Reprovado Fim_se
Fim
7. MACROS
7.1. O QUE UMA MACRO?
Uma macro um pequeno programa que contm uma lista de instrues a realizar no Excel. Como sendo um repositrio de operaes, uma macro pode executar um conjunto de tarefas atravs de um nico procedimento o qual pode ser invocado rapidamente. As instrues que formam o corpo da macro so escritas num cdigo prprio para que o computador as possa entender, essa linguagem designada por VBA Visual Basic for Applications.
7.2. CRIAR MACROS
Existem duas possibilidades de criao de macros: Atravs do Gravador de Macros; e Utilizando o editor e programando em Visual Basic for Applications (VBA).
7.2.1. GRAVAR UMA MACRO
1. Ferramentas / Macro / Gravar Macro. O Excel exibir a caixa de dilogo da fig.1. www.melhordesempenho.com.br sua consultoria online 55 Caixa de dilogo para a gravao de macros.
2. O nome da Macro ser constitudo por um conjunto de caracteres que identificaro a Macro e a sua funcionalidade.
3. Shortcut Key composto por uma combinao de teclas que podero ser utilizadas para executar uma macro.
4. Opte por armazenar a macro numa das seguintes alternativas: Esta Pasta de Trabalho, Nova Pasta de Trabalho ou Pasta de Trabalho Pessoal de macro, sendo que cada uma corresponde a macros de mbito diferente. Assim devero armazenar a macro na opo Esta Pasta de Trabalho para que ela esteja ativa sempre que o documento estiver aberto, e para que ela esteja armazenada no prprio ficheiro no correndo o risco de ficar armazenada nas Macros do Excel.
5. No campo Descrio, introduza um comentrio funo este poder ser importante para que no seja esquecido o respectivo objetivo e funcionalidade.
6. Clique em OK para iniciar a gravao da macro neste momento ser exibida uma toolbar (barra de ferramenta) semelhante da figura abaixo, e o cone do mouse ser transformado em um sinal de +, indicando o estado de gravao. Toolbar exibida para a gravao de macros. 7. Na barra de ferramentas, existem dois botes: Parar Gravao e usar referencias Relativas O boto de Parar Gravao termina a gravao da macro, o boto de Referencias Relativas seleciona o modo de gravao da macro se feito com base em referncias relativas (boto selecionado) ou referncias absolutas.
8. No caso barra de ferramentas Parar Gravao desaparecer, poder acessar o menu Ferramentas: Macros / Parar Gravao
Nota: ao gravar uma macro, tenha ateno ao passos executados, pois tudo ser registrado, o que significa que quando for executar a macro, esses procedimentos sero efetuados exatamente da mesma maneira que voc os gravou.
www.melhordesempenho.com.br sua consultoria online 56 7.2.2. PROCEDIMENTO BACKGROUND DO EXCEL
Quando se grava uma macro no Excel, este cria um objeto designado por Modulo no workbook, onde registra todas as operaes gravadas em linguagem Visual Basic for Applications - VBA. Este Modulo no aparece no Excel com as restantes Sheets. Para ser visualizado necessrio abrir o Editor de Visual Basic for Applications: 1. Ferramentas / Macro / Macros 2. Selecione a Macro e clique no boto Editar 3. Neste ambiente, e possvel executar as mesmas tarefas que num editor de texto normal: escrever, apagar, copiar, mover, mas instrues de VBA.
7.2.3. PROGRAMAO EM VISUAL BASIC FOR APPLICATIONS
1. Para acessar ao editor de Visual Basic for Applications: Ferramentas / Macro / Visual Basic Editor (para se familiarizar mais com o editor consulte o capitulo Editor Visual Basic for Applications e o capitulo Funes e SubRotinas)
Editor de Visual Basic for Applications
www.melhordesempenho.com.br sua consultoria online 57 2. Para inserir um mdulo: Insert / Modulo isto porque as macros que construir devero ser escritas dentro de um mdulo (repare na Figura 3 que o Modulo 1 est selecionado na janela de projeto e do lado direito tem-se uma rea de edio onde e possvel escrever as macros)
3. Voc pode agora programar os procedimentos manualmente ou com recurso a algumas funcionalidades do Editor:
a) Inserir / Procedimento insere um procedimento para o qual dever indicar o tipo de procedimento. b) Ao introduzir variveis, ser exibida a lista de tipos de variveis possveis.
4. Sempre que precisar construir uma macro um pouco mais complicada, voc poder comear gravando no EXCEL pequenas macros com operaes muito simples e depois no editor de VBA tentar compreender a sua funcionalidade e assim construir uma macro cada vez mais complexa, completa e adequada s suas exigncias.
5. Poder em cada macro fazer uma chamada a uma outra, bastando para tal escrever o respectivo nome.
7.3. EXECUTAR UMA MACRO
A execuo de uma macro pode ser concretizada de diversas formas: Tecla de Atalho Shortcut Key Executar Editor de Visual Basic for Applications
7.3.1. TECLA DE ATALHO SHORTCUT KEY
A associao a teclas de atalho realizada na criao da macro.
7.3.2. EXECUTAR
1. Ferramentas / Macro / Macros 2. Na caixa de dilogo Macros seleciona-se a macro pretendida na lista da Macro Name (Figura 6) www.melhordesempenho.com.br sua consultoria online 58 3. Clique sobre o boto Executar Janela para seleo da macro a executar
7.3.3. EDITOR DE VISUAL BASIC FOR APPLICATIONS
1. Ferramentas / Macro / Visual Basic Editor - para acessar ao Editor 2. Posicionando-se no corpo de uma macro, na janela do lado direito inferior, poder executar a macro atravs de: Run / Run Sub-UserForms (figura 9) ou boto Run. Execuo de uma macro no Editor de Visual Basic for Applications
www.melhordesempenho.com.br sua consultoria online 59 7.4. REMOVER MACROS
A remoo das macros poder ser feita: no ambiente Excel, ou no Editor de VBA
7.4.1. REMOO DE MACROS EM AMBIENTE EXCEL
1. Ferramentas / Macro / Macros 2. Seleciona-se a Macro a remover 3. Clica-se no boto Delete
7.4.2. REMOO DE MACROS NO EDITOR DE VBA
1. Ferramentas / Macro / Visual Basic Editor - para acessar ao Editor 2. Apagar as macros que se encontram na janela do lado direito inferior e que tm incio com a palavra Sub e fim com as palavras End Sub (Ver capitulo de funes e procedimentos)
7.4.3. EDITOR DE VISUAL BASIC FOR APPLICATIONS
Para acessar o editor de VBA: Ferramentas / Macro / Visual Basic Editor Editor de Visual Basic for Applications
www.melhordesempenho.com.br sua consultoria online 60 Note que a janela dividida em trs grandes reas: Project Explorer, Propriedades Window e do lado direito a janela de edio de texto.
7.5. PROJECT EXPLORER
Se a janela no estiver visvel, ative-a atravs do Ferramentas / Projet Explorer ou utilizando o atalho Alt + F11. Nesta janela poder visualizar a hierarquia dos projetos de Visual Basic for Applications ativos no momento. Entre eles dever encontrar um cujo nome corresponde ao nome do WorkBook do Excel com que est a trabalhar. Exemplo: VBAProject (Book1). dentro deste projeto que dever trabalhar para que todas as funcionalidades que voc implemente estejam nele ativas sempre que necessrio. Janela do Project Explorer
Assim se fizer o desdobramento do seu VBAProjet, encontrar um folder cuja designao Microsoft Excel Objets, e um outro designado Modulos (se este no aparecer significa que o seu projeto ainda no possui qualquer macro implementada. Para criar este folder dever fazer: Inserir / Modulo). No folder do Microsoft Excel Objets, encontrar todos os objetos que fazem parte do seu documento: as WorkSheets e o WorkBook (que no fundo o conjunto de WorkSheets). Se clicar duplamente em cada um destes objetos, uma nova janela ser visualizada na rea da direita, em cada uma dessas reas poder definir a ao a ser executada em funo dos eventos de cada objeto. No Folder Mdulos, aparecer o conjunto de mdulos onde poder programar as suas macros. Clicando duplamente em cada um dos mdulos indicados poder visualizar as macros que o compem. www.melhordesempenho.com.br sua consultoria online 61
7.6. JANELA DE PROPRIEDADE
Se a janela das propriedades no estiver visvel ative-a atravs do menu Ferramentas / Propriedades ou utilizando o boto F4. Janela de propriedades Nesta janela voc poder visualizar e alterar as propriedades que definem cada objeto: o nome - neste caso.
7.7. JANELA DE EDIO
A janela de edio exibir a cada momento o cdigo em Visual Basic for Applications associado ao elemento selecionado na janela do Project Explorer.
Janela de edio
www.melhordesempenho.com.br sua consultoria online 62 7.8. HELP ONLINE
O Editor de Visual Basic for Applications, disponibiliza ao utilizador um sistema de ajuda constante. Assim, quando se constri procedimentos, na janela de edio, medida que a linguagem escrita o editor abre oportunamente listas de opes para ajudar a escrever o cdigo.
7.9. AS CORES DO VBA
Na Janela de Edio so programados, armazenados e exibidos os procedimentos VBA criados. Porm, o texto envolvido em cada procedimento dotado de uma srie de cores diferentes, sendo que cada uma tem seu significado. Cor Significado Azul Palavras-Chave da linguagem. Ex: Sub, End Sub, Function, If, Then, Else, While, Loop, Vermelho Sempre que escreve na janela uma linha em linguagem VBA, o editor vai retificar a sintaxe da linguagem por forma a indicar se existe ou no algum erro de escrita. Se for detectado um erro a linha fica a vermelho e exibida uma mensagem de erro, seno todas as palavras so reconhecidas, coloridas da cor da respectiva categoria e alteradas para letras maisculas ou minsculas, conforme esteja pr-definido. Preto Nome de variveis, procedimentos, valores, operadores, Verde Comentrios introduzidos no procedimento. Estes comentrios servem para o utilizador poder associar algumas explicaes aos procedimentos realizados. De referir que as palavras com esta cor so ignoradas no procedimento, i.e., no produzem qualquer efeito na sua execuo. Para introduzir comentrios bastar que o caractere anteceda o texto desejado. Amarelo Um sombreado amarelo poder aparecer sobre a linha que identifica um procedimento. Esta cor simboliza a ocorrncia de um erro na execuo do respectivo procedimento e o estado de execuo do mesmo, i.e., o procedimento iniciou a execuo, durante a qual detectou um erro e agora est parado, mas ainda em execuo. Quando isto acontecer no dever voltar a dar ordem de execuo do procedimento, sem antes parar (Stop) a execuo mal sucedida. www.melhordesempenho.com.br sua consultoria online 63
7.10. IDENTAO
Dentro da computao, identao um termo aplicado ao cdigo fonte de um programa para indicar que os elementos hierarquicamente dispostos tm o mesmo avano relativamente posio. Na maioria das linguagens, a identao tem um papel meramente esttico, tornando a leitura do cdigo fonte muito mais fcil (read-friendly), porm obrigatria em outras: Phyton, Occan e Haskell, por exemplo, utilizam-se deste recurso tornando desnecessrio o uso de certos identificadores de blocos (Begin e/ou end). A verdadeira valia deste processo visvel em arquivos de cdigos fonte extensos, no se fazendo sentir tanto sua necessidade em arquivos pequenos (relativamente ao numero de linhas). Para qualquer programador, deve ser a ter em conta, principalmente, por aqueles que pretendem partilhar o seu cdigo com outros usurios. A identao facilita tambm a modificao, seja para correo ou aprimoramento de seu cdigo fonte. Existem centenas de estilos de identao, mas, basicamente, consiste na adio de tabulaes no incio de cada linha na quantidade equivalente ao nmero de blocos em que cada linha est contida.
7.11. FUNES E SUBROTINAS
Como foi referido anteriormente, quando se grava uma macro no Excel, este tem um comportamento em background que realiza a respectiva codificao para Visual Basic for Applications. Este resultado bem visvel quando procedemos edio de uma macro no Editor de Visual Basic for Applications. Cada macro que se cria tem um comportamento concreto e autnomo relativamente a outras macros implementadas, e tem como Objetivo executar um determinado nmero de instrues 1 que respondam s exigncias do utilizador. Cada macro criada d origem a um procedimento ou rotina. Existem dois tipos de rotinas: as subrotinas ou rotinas Sub, e
1 Entenda-se instruo como uma tarefa a executar que corresponde a uma linha de cdigo.
www.melhordesempenho.com.br sua consultoria online 64 as funes.
7.11.1. SUBROTINAS
7.11.1.1. DEFINIO DE SUBROTINAS
As SubRotinas so aquelas cuja definio delimitada pelas palavras-chave Sub e EndSub. Note que todas as macros gravadas no Excel so deste tipo. Repare ainda como que so definidas:
Sub <nome_da_macro> ( ) <corpo_da_macro> End Sub
Estas SubRotinas so designadas pelo nome 2 que lhe atribumos e, em geral, no recebem parmetros 3 do exterior e tm como funo desempenhar um conjunto de tarefas que compem o seu corpo.
7.11.1.2. EXECUO DE UMA SUBROTINA
SubRotina e Macro so duas designaes para a mesma realidade, portanto tudo o que foi referido relativamente a Macros vlido tambm para as SubRotinas. Neste contexto a execuo de SubRotinas segue o mesmo mecanismo das macros. Porm neste momento j se pode referir uma nova forma de executar as macros ou SubRotinas dentro de outras rotinas, isto , quando se escreve dentro de uma rotina o nome de outra a execuo da rotina tem continuidade na execuo da rotina que est a ser invocada.
2 O nome da rotina pode ser qualquer um desde que no contenha espaos, comece por caracteres alfa
3 Para ter a noo do que so parmetros recorde-se do funcionamento das funes do Excel, que para executarem determinada funo necessitavam de receber parmetros que colocamos entre parntesis separados por vrgulas.
www.melhordesempenho.com.br sua consultoria online 65
7.11.2. FUNES
7.11.2.1. DEFINIO DE FUNES
Funes so rotinas cuja definio comea com a palavra-chave Function e termina com as palavras End Function. Todas as funes que voc utiliza no Excel so deste tipo de rotina (soma, VP, Etc). A sua definio tem a estrutura seguinte: Function <Nome da Funo> ( <parametro1>, <parametro2>,)
<Nome da Funo> = <Valor / Expresso>
End Function
A funo identificada pelo nome, pelo nmero e tipo de parmetros recebidos, e tem como objetivo executar um conjunto de instrues e produzir um valor final. Isto , sempre que se pretender executar uma funo sabido priori que ela produzir um valor. Para definir o valor produzido por uma funo basta no seu interior, atribuir ao nome da funo um determinado valor ou expresso.
7.11.2.2. DEFINIO DO TIPO DE PARMETROS E DO TIPO DA FUNO
Todos os elementos de input e output de uma funo tm um tipo de dados atribudo. Assim os parmetros devero ser definidos com o tipo de dados respectivo e a funo dever ser definida do tipo de dados que ela envie para o exterior. Aps isto podemos refinar a definio de uma funo: Function <Nome da Funo> ( <parametro1> As <Tipo>, ) As <Tipo>
<Nome da Funo> = <Valor / Expresso>
End Function
Nota: Se os tipos no forem definidos ser assumido por default como sendo do tipo Variant www.melhordesempenho.com.br sua consultoria online 66
7.11.2.3. EXECUO DE UMA FUNO
Uma vez que uma funo produz um valor, ela poder ser executada: dentro de uma clula numa WorkSheet, semelhana de qualquer uma outra funo do Excel dentro de qualquer outra funo ou SubRotina. Janela de Edio com a funo IVA
7.11.2.3.1. EXECUO DENTRO DE UMA CLULA
1. Posicione-se na clula onde pretende inserir a funo 2. Inserir / Funo 3. Selecione a categoria User Defined repare que aparece listada a funo que acabou de criar IVA. www.melhordesempenho.com.br sua consultoria online 67 Caixa de Dilogo para introduo da funo 4. Clique em OK e de imediato uma janela de ajuda vir auxiliar a utilizao da sua funo Caixa de Dilogo para apoio utilizao da funo Caixa de Dilogo para apoio utilizao da funo introduo de valores
5. Introduza os parmetros e clique em OK
Resumindo: Qualquer funo poder ser chamada a partir da WorkSheet do Excel, sendo que a sua chamada ser realizada semelhana de qualquer outra funo: numa clula = <nome da funo> (<Param_1> , <Param_2>)
7.11.2.3.2. EXECUO DENTRO DE UMA ROTINA
No exemplo que segue, a funo Valor_Liquido faz uma chamada funo IVA de forma que o valor produzido seja adicionado varivel Valor produzindo assim produzir o output final da funo Valor_Liquido. www.melhordesempenho.com.br sua consultoria online 68 Funo Valor_Liquido ao ser executada d ordens de execuo funo IVA
Um outro exemplo poder ilustrar melhor: A Subrotina Ident_Maior ao ser executada d ordens de execuo funo Ver_Maior
7.11.3. DIFERENAS ENTRE FUNES E ROTINAS
As funes so similares s subrotinas, existem simplesmente trs diferenas: 1. As Funes Comeam com a palavra-chave Function e terminam com as palavras End Function www.melhordesempenho.com.br sua consultoria online 69 2. As Funes podem ser chamadas a partir de frmulas introduzidas numa WorkSheet 3. As funes retornam valores para as frmulas ou subrotinas que as chamarem
7.11.4. REGRAS PARA A PASSAGEM DE PARMETROS
Regra 1: Como uma funo retorna um valor, esta dever ser utilizada numa expresso. Regra 2: Pode-se chamar uma funo ou subrotina com a palavra-chave Call, neste caso deve-se colocar todos os parmetros entre parnteses. Regra 3: Quando uma rotina chamada de forma isolada e sem a palavra-chave Call, no se deve utilizar parnteses.
8. VARIVEIS
8.1. O QUE SO VARIVEIS?
As variveis constituem repositrios temporrios de dados, podendo ser utilizadas para diversos fins.
Manuseamento de Variveis
www.melhordesempenho.com.br sua consultoria online 70 8.1.1. ATRIBUIO DE VALORES A VARIVEIS:
Quando se pretende atribuir valores a variveis, deve-se indicar o nome da varivel, o operador "=" e o valor que se pretende que a varivel armazene.
<Nome_Varivel> = <Valor>
Pela observao do procedimento Adio - Figura 22- podemos verificar que as variveis Parcela_1 e Parcela_2 armazenam os valores introduzidos pelo utilizador atravs das InputBox (Ver captulo "InputBox e MsgBox"). Tambm varivel Total vai ser atribudo o valor resultante da adio das duas parcelas - Total = Parcela_1 + Parcela_2.
8.1.2. UTILIZAO DE VARIVEIS COMO SE FOSSEM VALORES:
O nome da varivel representa o contedo da mesma, i.e., sempre que mencionar o nome da varivel o seu contedo que ser considerado.
No exemplo da figura 22, pode-se constatar que na expresso:
Total = Parcela_1 + Parcela_2
Parcela_1 representa o primeiro valor introduzido e Parcela_2 representa o segundo valor, no se trata de adicionar o nome de duas variveis, mas adicionar os contedos que elas armazenam.
8.2. TIPOS DE VARIVEIS
O tipo de varivel est associado ao gnero de informao que esta devera armazenar.
TIPO TAMANHO AO Boolean 2 bytes Permite armazenar valores Boolenos: True ou False Byte 1 Byte Permite armazenar nmeros sem sinal entre 0 e 255 Currency 8 Bytes permite armazenar moeda Date 8 Bytes permite armazenar datas www.melhordesempenho.com.br sua consultoria online 71 Double 8 bytes permite armazenar um real desde - 1.79769313486232E308 at - 4.94065645841247E-324 para valores negativos, e desde 1.79769313486232E308 at 4.94065645841247E-324 para valores positivos. Single 4 bytes permite armazenar um real desde -3.402823E38 at -1.4011298E-45, para valores negativos e desde 3.402823E38 at 1.4011298E-45, para valores positivos Integer 2 bytes permite armazenar nmeros inteiros entre - 32.768 e 32767 Long 4 bytes permite armazenar nmeros inteiros entre -2 147 483 648 e 2 147 483 648 Object 4 bytes utilizado para fazer referncia a um objeto do Excel String 1 byte por caractere permite armazenar conjuntos de caracteres Variant 16 bytes permite armazenar qualquer tipo de dados User-Defined permite armazenar valores de tipos diferentes
8.3. DECLARAO DE VARIVEIS
A declarao de variveis deve seguir a seguinte estrutura: Dim I_Numero As I nteger
Onde:
Dim Palavra chave que indica uma declarao de variveis (abreviatura de dimenso) I_Numero - nome da varivel a utilizar As palavra chave utilizada para separar o nome da varivel do tipo de dados Integer tipo de dados atribudo varivel
possvel na mesma declarao de variveis declarar variveis de diversos tipos:
Dim var1 As Integer, var2 As Date, var3 As Double
Para declarar diversas variveis do mesmo tipo:
Dim var_1, var_2, var_3 As Currency
Dica: padronize o nome de suas variveis para obter um cdigo mais fcil de ser interpretado. Exemplo: strNome para armazenar strings com contedo nome; bolCheck para armazenar valores lgicos (true ou false) na vaiavel check, etc
www.melhordesempenho.com.br sua consultoria online 72 8.4. VARIVEIS VANTAGENS DA UTILIZAO
Simplificam a codificao, principalmente quando se necessita de utilizar um valor especifico inmeras vezes
Com variveis o cdigo mais rpido
8.5. VARIVEIS DO TIPO OBJETO
Uma varivel objeto representa uma referncia a um objeto. Uma varivel de extrema importncia que facilita a codificao e melhora a performance da subrotina.
8.5.1. DECLARAO DA VARIVEL OBJETO
Dim <Var_Objeto> As Object
8.5.2. ATRIBUIO DE UMA VARIVEL OBJETO
Set <Var_Objeto> = <Objeto>
Onde:
Set palavra chave que indica a atribuio de uma varivel objeto <Var_Objeto> - Varivel Objeto = Operador de atribuio <Objeto> - Objeto a ser atribudo varivel
8.5.3. UTILIZAO GENRICA DA VARIVEL OBJETO
A utilizao genrica do tipo Objeto serve para suportar qualquer tipo de objeto Excel (WorkBook,WorkSheet,Range,)
Exemplo: www.melhordesempenho.com.br sua consultoria online 73 Dim Range_1 as Objet Range_1 = Worksheet(1).Range(A1) Range_1.Value = 10
8.5.4. UTILIZAO ESPECIFICA DA VARIVEL OBJETO
Utiliza-se o tipo exato do objeto que se pretende atribuir varivel. Esse tipo especfico de objetos coincide com o nome dos objetos em EXCEL.
Dim Range_1 As Range Dim WB_1 As Workbook Dim WS_1 As WorkSheet Dim XL As Aplicativo
Exemplo: Dim Range_1 as Range Range_1 = Worksheet(1).Range(A1) Range_1.Value = 10
Contudo estas declaraes tambm podem ser feitas da seguinte forma genrica: Dim Range_1 As Objet Dim WB_1 As Objet Dim WS_1 As Objet Dim XL As Objet www.melhordesempenho.com.br sua consultoria online 74
Ento qual o interesse de definir as variveis de forma especifica se o podemos fazer de forma genrica?
Por uma questo de performance, se utilizar um objeto genrico, o VBA antes de executar qualquer funo com o objeto tem que primeiramente o identificar (perdendo tempo) em subrotinas simples essa diferena no substancial mas quando se trata de grandes subrotinas j se denotam diferenas significativas.
8.6. VARIVEIS DECLARAO OPCIONAL E O TIPO VARIANT
A declarao de variveis opcional, se as variveis no forem declaradas o VBA faz a sua declarao por default. Assim, sempre que a instruo Dim omitida para uma varivel, essa assume o tipo Variant.
8.6.1. OS PRS E CONTRAS DA UTILIZAO DO TIPO VARIANTS
8.6.1.1. PRS Diminui o nmero de linhas de cdigo No necessrio estar preocupado se a varivel est ou no declarada porque o VBA automaticamente o faz
8.6.1.2. CONTRAS Aumenta o tempo de execuo o VBA primeiro precisa de reconhecer o tipo de dados com os quais est a trabalhar. Este tipo de dados consome mais memria (uma vez que tem que alocar espao para qualquer tipo de dados que lhe seja atribudo) 16 bytes mais um byte por caractere se for String => problemas de performance para subrotinas grandes. No possvel saber o tipo de dados que uma determinada varivel contm dificultando a deteco de erros.
8.6.2. VARIVEIS DECLARAO FORADA
Para que o VBA detecte um erro sempre que uma varivel no seja declarada dever fazer: www.melhordesempenho.com.br sua consultoria online 75 Ferramentas / Options Editor Tab Activar Require Variable Declaration
Ou ento, escrever no incio de cada mdulo Option Explicit
Neste caso sempre que seja detectada uma varivel que ainda no foi declarada d uma mensagem de erro - Variable Not Defined
8.7. VARIVEIS TIPOS DEFINIDOS PELO UTILIZADOR - ESTRUTURAS
8.7.1. DEFINIO DO TIPO
A primeira fase constituda pela definio do tipo: Type Dados_Pessoais
Nome As String Idade As Integer DataNascimento As Date BI As Long End Type
Criou-se um tipo de dados que representa uma estrutura com dados de diferentes tipos. Esta definio dever ocorrer no incio do mdulo VBA. www.melhordesempenho.com.br sua consultoria online 76 Onde: Type Palavra-Chave que indica a definio de um tipo de dados criado pelo utilizador. Dados_Pessoais Nome atribudo ao tipo de dados. Nome As String Primeiro elemento da estrutura de dados definida. Idade As Integer Segundo elemento da estrutura de dados definida. DataNascimento As Date Terceiro elemento da estrutura de dados definida. BI As Long Quarto elemento da estrutura de dados definida. End Type Palavra-Chave que indica o fim da definio da estrutura de dados.
8.7.2. UTILIZAO DAS ESTRUTURAS DE DADOS
Como utilizar as estruturas de dados: Sub Tipos_definidos_Utilizador()
MsgBox 4 Pessoa.Nome & Chr(13) & , Idade & Pessoa.Idade & Chr(13) & _ , Data de Nascimento & Pessoa.DataNascimento & Chr(13) & _ , com o BI nmero _ & Pessoa.BI
End Sub
4 Ver captulo InputBox e MsgBox www.melhordesempenho.com.br sua consultoria online 77 8.8. VARIVEIS ARRAYS
8.8.1. O QUE UM ARRAY?
Um Array uma varivel que representa um conjunto de variveis do mesmo tipo. Os Arrays podem ser multi-dimensionais, onde todas as dimenses so indexadas numericamente.
8.8.1.1. ARRAY UNI-DIMENSIONAL
0 1 2 3 4 5
Um array uni-dimensional constitudo por uma nica lista de elementos indexveis. Esta lista tem um elemento inicial e um outro final sendo que a cada elemento da lista corresponde um nico ndice, traduo do lugar que ocupa na lista, que o identifica univocamente.
8.8.1.2. ARRAY BI-DIMENSIONAL
0 1 2 0 1 2 3
www.melhordesempenho.com.br sua consultoria online 78 Um array bi-dimensional um pouco mais complexo e constitudo por um conjunto de listas do mesmo comprimento, este formato normalmente conhecido como array ou matriz. , portanto, constituda por linhas e colunas e cada elemento identificado por um ndice composto pela intercepo dos nmeros da linha e da coluna.
8.8.2. DECLARAO DE UM ARRAY
8.8.2.1. ARRAYS UNI-DIMENSIONAIS
Dim ArrayNumerico(10) As Integer
Array_Numerico o nome da varivel array, o nmero entre parntesis indica o nmero de elementos que o array pode armazenar, isto
Array_Numerico 0 1 2 3 4 5 6 7 8 9
Em que cada elemento do tipo Integer.
www.melhordesempenho.com.br sua consultoria online 79 8.8.2.2. ARRAYS BI-DIMENSIONAIS
Dim Tabela_Textual (4, 3) As String
Tabela_textual o nome da varivel, os nmero entre parntesis indicam que a tabela ir ter 4 linhas e 3 colunas, podendo assim armazenar 12 elementos do tipo String.
Aps a atribuio de valores a cada elemento do array, este passa a ter o contedo seguinte: Pases Portugal 0 Brasil 1 Moambique 2
Valor estes que sero exibidos atravs da MsgBox. Exemplo: Option Base 1 Sub Utilizacao_Array() Dim Loteria(3) As Integer Loteria(1)=int(10000*Rnd()) Loteria(2)=int(10000*Rnd()) Loteria(3)=int(10000*Rnd()) MsgBox Nmeros da Loteria: & Loteria(1) & , & Loteria(2) & , &_ Loteria(3) End Sub
8.8.4. OPTION BASE E ARRAY BOUNDS
A indexao de um array por default tem inicio em 0, sendo que os respectivos ndices vo de 0 a dimenso-1. Para alterar a base de indexao possa a ter inicio em 1 basta colocar no inicio do mdulo Option Base 1 www.melhordesempenho.com.br sua consultoria online 81 Contudo se pretender que um array comece em um nmero que no seja 0 ou 1, necessrio especificar os limites inferior e superior do ndice na declarao do array.
Exemplo: Sub Utilizacao_Array()
Dim Loteria(4 To 5) As Integer
Loteria(4)=int(10000*Rnd()) Loteria(5)=int(10000*Rnd()) MsgBox Nmeros da Loteria: & Loteria(4) & , & Loteria(5) End Sub
9. CONSTANTES
9.1. O QUE SO CONSTANTES?
Constantes so valores que no alteram durante a execuo de uma rotina. So declaradas da mesma forma que as variveis, a nica diferena reside no fato da atribuio ser feita na mesma instruo da declarao, e s poder ser feita uma nica vez. Const <Nome_Constante> As <Tipo> = <Valor> Const <Nome_Constante> As <Tipo> = <Expresso de clculo>
Manuseamento de Constantes www.melhordesempenho.com.br sua consultoria online 82
10. INPUTBOX E MSGBOX
10.1. O QUE SO?
Para haver interao entre o utilizador e uma macro ou programa necessrio que exista um interface de comunicao. Este poder ser mais ou menos complexo e completo, contudo existem dois elementos bsicos para estabelecer esta ligao: InputBox e MsgBox.
Neste contexto a InputBox uma funo que permite ao utilizador introduzir dados no programa portanto um mecanismo de input. O MsgBox um mecanismo de Output e permite ao utilizador visualizar os dados produzidos pelo programa.
10.2. INPUTBOX
10.2.1. O QUE FAZ
1. Exibe uma janela com uma caixa text box para a insero de dados. 2. Espera que o utilizador introduza os dados e/ou acione um dos botes. 3. Como uma funo, produz um valor final. Este consiste nos dados inseridos pelo utilizador na forma textual - String.
Numa primeira avaliao da funo, pode-se dizer que a mesma possui diversos parmetros, mas somente o primeiro obrigatrio, sendo que todos os outros quando ignorados assumem valores atribudos por defeito.
www.melhordesempenho.com.br sua consultoria online 83 Parmetro Comentrio Prompt (Obrigatrio ) Expresso textual exibida como mensagem na janela de input. A dimenso mxima de 1024 caracteres. Se se pretender construir uma mensagem com mais do que uma linha poder utilizar o caractere Enter - Chr(13). A juno dos elementos que constituem a mensagem realizada atravs do operador &.
Exemplo: "A Soma de 3 com 5 :" & Chr(13) & " 8 " Title (Facultativo) Titulo da janela de input. Se este for omitido, aparecer por defeito o nome da aplicao. Default (Facultativo) Expresso inserida por defeito na caixa de insero de dados e constituir a resposta por defeito se o utilizador no introduzir outra. Se este parmetro for omitido aparecer uma text box vazia. Xpos (Facultativo) Nmero que identifica a distncia horizontal entre o lado esquerdo do cran e a janela de input. Se este valor for omitido a janela aparecer centrada horizontalmente. Ypos (Facultativo) Nmero que identifica a distncia vertical entre o lado superior do monitor e a janela de input. Se este valor for omitido a janela ficar posicionada a 1/3 da parte inferior do monitor. HelpFile (Facultativo) Nome do ficheiro de Help que ser utilizado para dar apoio ao preenchimento desta janela. Se for indicado este parmetro o seguinte obrigatrio. Context (Facultativo) Nmero do ndice do tpico de Help constante no ficheiro HelpFile, e que corresponde janela em questo.
Ateno: Se pretender enviar mais que um parmetro optativo respeite a ordem atravs de , (virgulas)
www.melhordesempenho.com.br sua consultoria online 84 Exemplo: InputBox(Introduza o Nome da Aplicao:, , Excel) Na janela de input ser exibida a mensagem Introduza o Nome da Aplicao:, o ttulo da caixa ser o definido por defeito e o valor na caixa de insero ser Excel.
10.3. MSGBOX
10.3.1. O QUE FAZ
1. Exibe no cran uma janela com uma mensagem. 2. Espera que o utilizador acione um dos botes. 3. Como uma funo produz um valor final. Devolve um nmero inteiro indicando o boto que foi clicado.
semelhana da InputBox , pode-se dizer que a mesma possui diversos parmetros, mas somente o primeiro obrigatrio, sendo que todos os outros quando ignorados assumem valores atribudos por defeito.
10.3.3. PARMETROS
Parmetro Comentrio Prompt (Obrigatrio ) Expresso textual exibida como mensagem na janela de input. A dimenso mxima de 1024 caracteres. Se se pretender construir uma mensagem com mais do que uma linha poder utilizar o caractere Enter Chr(13) www.melhordesempenho.com.br sua consultoria online 85
Exemplo: "A Soma de 3 com 5 :" & Chr(13) & " 8 " Buttons (Facultativo) Nmero que identifica o tipo de botes que se pretende visualizar na janela de output. Ver tabela seguinte. Se for omitido assumir o valor 0 por defeito. Title (Facultativo) Titulo da janela de input. Se este for omitido, aparecer por defeito o nome da aplicao. HelpFile (Facultativo) Nome do ficheiro de Help que ser utilizado para dar apoio ao preenchimento desta janela. Se for indicado este parmetro o seguinte obrigatrio. Context (Facultativo) Nmero do ndice do tpico de Help constante no ficheiro HelpFile, e que corresponde janela em questo.
Ateno: Se pretender enviar mais que um parmetro optativo, respeite a ordem atravs de , (virgulas)
Exemplo: MsgBox(Erro de Sintaxe !!!, , Mensagem de Erro) Na janela de output ser exibida a mensagem Erro de Sintaxe, o boto exibido ser o de OK (por defeito) e o titulo da janela ser Mensagem de Erro.
Constante de VBA Valor Descrio VbOKOnly 0 Exibe somente o boto de OK. VbOKCancel 1 Exibe os botes OK e Cancel. VbAbortRetryIgnore 2 Exibe os botes Abort, Retry, e Ignore. VbYesNoCancel 3 Exibe os botes Yes, No, e Cancel . VbYesNo 4 Exibe os botes Yes e No. www.melhordesempenho.com.br sua consultoria online 86 VbRetryCancel 5 Exibe os botes Retry e Cancel. VbCritical 16 Exibe o cone de Critical Message. VbQuestion 32 Exibe o cone de Warning Query. VbExclamation 48 Exibe o cone de Warning Message. VbInformation 64 Exibe o cone de Information Message. VbDefaultButton1 0 O primeiro boto o selecionado por defeito. VbDefaultButton2 256 O segundo boto o selecionado por defeito. VbDefaultButton3 512 O terceiro boto o selecionado por defeito. VbDefaultButton4 768 O quarto boto o selecionado por defeito. VbApplicationModal 0 Application modal o utilizador s depois de responder MsgBox que poder dar continuidade ao trabalho na aplicao corrente. VbSystemModal 4096 System modal - o utilizador s depois de responder MsgBox que poder dar continuidade ao trabalho em qualquer aplicao em curso no sistema.
Pela anlise desta tabela poder constatar que existem diferentes agrupamentos de cdigos: para definir o tipo de botes (0-5), para definir o tipo de cones (16,32,48,64), para definir o boto selecionado por defeito (0,256,512,768) e para indicar o modo de execuo (0 e 4096). Poder adicionar os cdigos e assim fazer combinaes entre diversas opes destes 4 grupos, contudo nunca dever adicionar mais do que um cdigo por agrupamento.
Exemplos:
Para a instruo: MsgBox "Erro de Sintaxe!!!", 2 + 48 + 512 + 4096, "Mensagem de Erro"
exibida a seguinte janela: www.melhordesempenho.com.br sua consultoria online 87
MsgBox Para a instruo: MsgBox "Erro de Sintaxe!!!", 5 + 64 + 256 + 4096, "Mensagem de Erro" exibida a seguinte janela: MsgBox
10.3.4. VALORES PRODUZIDOS
Como j foi referido, a funo MsgBox produz um valor em funo do boto acionado, assim produzir como output um dos valores constantes da tabela seguinte: Constante de VBA Valor Boto Acionado vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes vbNo 7 No
www.melhordesempenho.com.br sua consultoria online 88 11. DOMNIO DAS VARIVEIS, CONSTANTES E ROTINAS
11.1. O QUE O DOMNIO?
Scope ou domnio de um elemento refere-se rea na aplicao na qual esse mesmo elemento pode ser acessvel e utilizado, ou seja, onde que o elemento reconhecido.
11.2. DOMNIO DAS VARIVEIS
Refere-se rea onde a varivel permanece ativa, mantendo o valor que lhe vai sendo atribudo. Existem 3 nveis de domnio para as variveis: mbito do Procedimento ou Procedimental mbito do Modulo ou Modular mbito do Projeto
As declaraes de tipos User Defined que so escritas no Declarations do mdulo tm domnio de Projeto.
11.2.1. MBITO DO PROCEDIMENTO
Estas variveis so declaradas no corpo do procedimento com recurso palavra chave Dim.
So variveis criadas quando da execuo do procedimento e automaticamente destrudas quando o procedimento termina, sendo que s so reconhecidas no interior do procedimento que as declarou. Assim sendo, qualquer tentativa realizada por um procedimento no sentido de trabalhar com variveis definidas no corpo de um outro procedimento no ter xito.
Exemplo: Sub Ambito_Procedimento() Dim Var_1 As Integer Var_1 = InputBox (Introduza um nmero Inteiro) MsgBox Foi este o nmero que introduziu: & Var_1 www.melhordesempenho.com.br sua consultoria online 89 Ambito_Procedimento_2 End Sub
Sub Ambito_Procedimento_2() MsgBox Foi este o nmero que introduziu: & Var_1 End Sub
A execuo destas rotinas resultar no seguinte: A primeira mensagem (MsgBox no Procedimento Ambito_Procedimento)exibir o nmero introduzido pelo utilizador que fora armazenado na varivel Var_1. A segunda mensagem, oriunda da instruo MsgBox do Procedimento Ambito_Procedimento_2 no exibir o valor introduzido, porque a varivel Var_1 nele referida considerada como uma varivel interna do processo, e portanto criada dentro do procedimento Ambito_Procedimento_2. Como tal, embora possua o mesmo nome que a varivel da rotina Ambito_Procedimento_1 no existe qualquer ligao entre elas, so duas variveis distintas. Se pretendssemos que o valor da primeira varivel fosse reconhecido no procedimento chamado, teramos de pass-lo por parmetro.
11.2.2. MBITO DO MDULO
Uma varivel como mbito do Mdulo pode ser acessada por todas as rotinas existentes no mdulo onde a varivel declarada. Para declarar uma varivel do nvel modular, dever declar-la com a palavra chave Dim na seo Declarations do respectivo mdulo VBA. Neste caso qualquer varivel a declarada ser considerada de nvel modular por defeito, para tornar esse fato mais explicito poder-se- utilizar a palavra chave Private na declarao:
Exemplo: Private Var_2 As String
www.melhordesempenho.com.br sua consultoria online 90 Exemplo: Dim Var_1 As Integer ou Private Var_1 As Integer
Sub Ambito_Modulo() Var_1 = InputBox (Introduza um nmero Inteiro) Ambito_Modulo_2 End Sub
Sub Ambito_Modulo_2() MsgBox Foi este o nmero que introduziu: & Var_1 End Sub
Neste caso como a varivel reconhecida no mdulo por qualquer rotina nele existente, desde que seja referida sempre pelo mesmo nome, o procedimento Ambito_Modulo_2 ir exibir o valor introduzido pelo utilizador no procedimento Ambito_Modulo.
11.2.3. MBITO DO PROJETO
As variveis assim definidas tm o mbito correspondente a todo o projeto, isto podem ser acessadas e alteradas em todos e quaisquer mdulos. Para declarar variveis deste tipo dever faz-lo na seo Declarations de qualquer mdulo, para tal dever utilizar a palavra chave Public.
Exemplo: No Modulo_1 tem-se: Public Var_1 As Integer
Sub Ambito_Projeto() Var_1 = InputBox (Introduza um nmero Inteiro) Ambito_Projeto _2 End Sub
No Modulo_2 tem-se: Sub Ambito_Projeto _2() MsgBox Foi este o nmero que introduziu: & Var_1 End Sub
www.melhordesempenho.com.br sua consultoria online 91 A execuo do procedimento Ambito_Projeto no Modulo_1 mandou executar o procedimento Ambito_Projeto do Modulo_2, e o valor atribudo varivel Var_1 foi acessado posteriormente no outro procedimento de outro mdulo, visto que Var_1 uma varivel global.
11.3. DOMNIO DAS CONSTANTES
semelhana das variveis tambm as constantes tm 3 nveis de domnio: mbito do Procedimento ou Procedimental mbito do Modulo ou Modular mbito do Projeto
11.3.1. MBITO DO PROCEDIMENTO
Estas constantes so declaradas no corpo do procedimento com recurso palavra chave Const. S tm existncia dentro do procedimento onde so declaradas.
Exemplo: Sub Ambito_Procedimento() Const Taxa_Desc As Single = 0.05 Dim Desconto As Double
Desconto = InputBox (Introduza o montante das Compras) * Taxa_Desc MsgBox O desconto de : & Desconto End Sub
11.3.2. MBITO DO MDULO
Uma constante com mbito do Mdulo pode ser utilizada por todas as rotinas existentes no mdulo onde definida. Para declarar uma constante a nvel modular, dever declar-la com a palavra chave Const na seo Declarations do respectivo mdulo VBA. Neste caso qualquer constante a declarada ser considerada de nvel modular por defeito, para tornar esse fato mais explicito poder-se- utilizar a palavra chave Private na declarao:
www.melhordesempenho.com.br sua consultoria online 92 Exemplo: Private Cons Const_1 As String
11.3.3. MBITO DO PROJETO
As constantes assim definidas tm o mbito correspondente a todo o projeto, isto podem ser utilizadas em todos e qualquer mdulo. Para definir constantes deste tipo dever faz-lo na seo Declarations de qualquer mdulo, para tal dever utilizar a palavra chave Public.
Exemplo: Public Const Const_1 As String
11.4. DOMNIO DE SUBROTINAS E FUNES
Estas s tm dois nveis de Scope: o nvel do projeto e o nvel do mdulo. Por default, as rotinas so de mbito do projeto sem qualquer indicao adicional. Contudo poder tornar este fato mais explicito pela introduo da Palavra-Chave Public, que em termos operacionais no adicionar qualquer funcionalidade, mas em termos de leitura dar uma maior percepo.
Exemplo: Public Sub Ambito_Procedimento() Const Taxa_Desc As Single = 0.05 Dim Desconto As Double
Desconto = InputBox (Introduza o montante das Compras) * Taxa_Desc MsgBox O desconto de : & Desconto End Sub
www.melhordesempenho.com.br sua consultoria online 93 Para que uma rotina tenha o mbito do mdulo onde est definida, dever ser antecedida pela palavra chave Private.
12. ESTRUTURAS DE CONTROLE
12.1. O QUE SO ESTRUTURAS DE CONTROLE?
O VBA disponibiliza algumas estruturas que podem auxiliar no controle durante a execuo da rotina. Estas estruturas do ao programador um poder enorme para construir rotinas bastante complexas e flexveis.
12.2. QUAIS AS ESTRUTURAS
VBA Control If -Then Else Testa uma condio e executa um determinado conjunto de instrues consoante o resultado dessa avaliao For Next Executa uma determinada tarefa um determinado nmero de vezes. While-Wend Executa uma determinada tarefa enquanto que uma determinada condio permanea verdadeira, i.e., com o valor True. Do Loop Executa uma determinada tarefa enquanto que a avaliao de uma condio permanea True ou ento at que seja True. Select - Case Seleciona um dos segmentos de cdigo a processar mediante a avaliao consecutiva de condies. For Each Next Realiza uma determinada tarefa repetitiva em cada objeto de uma coleo ou em cada item de um array.
www.melhordesempenho.com.br sua consultoria online 94 12.3. IF-THEN-ELSE
12.3.1. FUNO IF DO EXCEL
Recorrendo funo IF do Excel, recorde: =IF( <condio>, <se condio verdadeira>, <se condio falsa> ) A funo IF tinha o seguinte comportamento: 1. Avalia a condio, que dever ser uma expresso booleana colocada como primeiro parmetro; 2. Se a condio for verdadeira, ento (then) realiza as operaes colocadas no segundo parmetro; 3. Caso contrrio (else), realiza as operaes que formam o terceiro parmetro
A estrutura IF do VBA tem o mesmo tipo de funcionamento, o que difere a sintaxe. 12.3.2. SINTAXE DA ESTRUTURA IF-THEN-ELSE
If <Condio> Then <se condio verdadeira> [ Else <se condio falsa> ] End If
A palavra Else opcional num If-Then-Else Statement, sendo que no caso de ser omitida, a avaliao negativa da condio implica uma sada automtica da Instruo If. www.melhordesempenho.com.br sua consultoria online 95 Aplicao Prtica com um IF
12.3.3. APLICAO PRTICA
A rotina Aposta recebe uma aposta do utilizador e mediante o Sorteio a realizar pela respectiva funo, verifica se o jogador ganhou ou no a aposta, comunicando-lhe esse fato. Para uma maior clarificao do funcionamento do IF, atenda ao quadro seguinte: If Palavra chave que indica o inicio de uma instruo If-Then- Else Nsorteio = NAposta A condio a testar. Determina a sequncia da rotina. Da avaliao desta condio, obtem-se um de dois valores True ou False, sendo que depende deste resultado o caminho a prosseguir. Se for True executar as instrues que seguirem a palavra-chave Then at encontrar a palavra chave Else, no executando mais nada dentro do IF, caso contrrio executar o cdigo que se seguir palavra chave Else at ao End If. Then Palavra chave que determina o fim da condio teste. Todas as instrues que tm inicio nesta palavra-chave at palavra-chave Else sero executadas se a condio for verdadeira. www.melhordesempenho.com.br sua consultoria online 96 MsgBox Parabns!! Acertou em cheio! O nmero sorteado foi o & NSorteio Instrues a executar se a condio for verdadeira. Else Palavra-chave que determina o termino de execuo das instrues quando o resultado da avaliao for True, e que determina o inicio das instrues a executar se o resultado da condio for False. MsgBox Continue a Tentar!! O nmero sorteado foi o & NSorteio Instrues a executar se a condio for falsa. End If Palavra-chave que indica o fim do controlo de If-Then-Else e como tal onde se deve retomar as instrues para prosseguir a execuo do procedimento.
12.3.4. A INSTRUO ADICIONAL ELSEIF
Esta instruo prope uma condio alternativa se o teste da condio anterior tiver tido um resultado negativo.
12.3.4.1. APLICAO PRTICA
Pretende-se criar uma macro que classifique etariamente um indivduo em funo da sua idade. A classificao pretendida a seguinte:
Idade Classe Etria Menos de 3 anos Beb Dos 3 aos 12 Criana Dos 13 aos 17 Adolescente Dos 18 aos 25 Jovem Dos 26 aos 65 Adulto Mais de 65 Idoso Aplicao Prtica com ElseIf
www.melhordesempenho.com.br sua consultoria online 97 12.4. FOR NEXT
Permite a execuo de uma tarefa durante um determinado nmero de vezes.
12.4.1. SINTAXE
For <Inicializao do Contador> To <Valor > [ Step <Valor a Incrementar>] <Instrues a realizar em cada iterao> Next
12.4.2. APLICAO PRTICA
Pretende-se criar uma rotina que recebendo a base e a potncia calcule o valor respectivo.
Procedimento que calcula a potncia de um nmero A instruo For-Next tem como funo calcular a potncia. O mesmo efeito poderia ser obtido recorrendo expresso Resultado = Base ^ Potncia, contudo para fins de demonstrao de funcionamento este exemplo bastante simples.
www.melhordesempenho.com.br sua consultoria online 98 12.4.2.1. A FUNO DAS VARIVEIS:
Varivel Funo Base Elemento a elevar. Potncia Nmero de vezes a multiplicar a base. Contador Conta o nmero de vezes que a base j foi multiplicada, uma varivel que ser automaticamente incrementada em cada looping do ciclo. Resultado Varivel que armazena o resultado sucessivo por cada vez que se multiplica.
12.4.2.2. CONSTRUO DO CICLO: For Palavra-chave que indica o inicio do ciclo For-Next Contador = 1 To Potncia Expresso que contm a inicializao do contador, indicando o valor de inicio e de fim. Assim, o nmero de vezes que o ciclo executado ser: Valor_Fim Valor_Inicio +1. A palavra To utilizada para separar o valor do contador no momento inicial do valor no momento final. (Traduo: O contador iniciar-se- a um e atingir o valor mximo traduzido pela varivel Potncia) Step 1 Palavra chave utilizada para especificar o valor a incrementar ou decrementar ao contador do ciclo por cada vez que o loop concretizado. Normalmente o valor a incrementar um, contudo qualquer outro valor pode ser utilizado, desde nmeros decimais, a nmeros negativos (Provocando assim o decrscimo). A palavra-chave Step opcional, sempre que for omitida assumido 1 como o valor a incrementar por defeito. Resultado = Resultado * Base Instruo a realizar de cada vez que o ciclo for executado. Neste caso a instruo nica, contudo poder-se-o adicionar outras instrues. Next Palavra Chave que indica o fim de um ciclo For-Next . Sempre que a execuo do ciclo chega instruo Next incrementa a varivel contador e volta ao inicio do ciclo. www.melhordesempenho.com.br sua consultoria online 99 12.4.2.3. TRADUO INTEGRAL
For Contador = 1 To Potncia Step 1 Resultado = Resultado * Base Next
Para o nmero de vezes, a iniciar em 1 at que atinja, o valor Potncia, pela incrementao de 1 na execuo de cada ciclo, dever multiplicar sucessivamente o resultado acumulado, pela base.
12.4.3. FUNCIONAMENTO DO CICLO:
A primeira execuo do ciclo distingue-se das restantes por a ela estar associada inicializao do contador, sendo o restante procedimento semelhante a qualquer outra execuo. No inicio de cada execuo do ciclo, a varivel contador comparada com o valor final de execuo. Se o Step for um valor positivo (incrementar) e o valor do contador for superior ao valor final significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a execuo da instruo For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir, caso contrrio executa uma vez mais o ciclo e incrementa a varivel contador. Por outro lado, se o Step contiver valor negativo (decrementar) e o valor do contador for inferior ao valor final significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a execuo da instruo For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir, caso contrrio executa uma vez mais o ciclo e decrementa a varivel contador.
12.4.4. PERIGOS ASSOCIADOS UTILIZAO DO CICLO FOR-NEXT:
No definir o limite de execuo (no atribuir valor varivel que o define) Definir erroneamente o Step, por forma a que nunca seja obtido o valor que determina o fim da execuo estas condies implicaro que o ciclo no tenha fim Ciclos Infinitos
www.melhordesempenho.com.br sua consultoria online 100 12.4.5. OUTRA APLICAO
Pretende-se criar uma rotina para calcular um fatorial.
Procedimento que calcula o fatorial
12.5. WHILE-WEND
A estrutura While-Wend tem um funcionamento similar ao For-Next. Realiza um looping um determinado nmero de vezes, at que uma determinada condio seja verdadeira.
12.5.1. SINTAXE
While <Condio> <Instrues a realizar em cada iterao> Wend
www.melhordesempenho.com.br sua consultoria online 101
12.5.2. APLICAO PRTICA
Procedimento Loteria Viciada A instruo While-Wend tem como funo gerar nmeros aleatrios entre 1 e 10 por forma a encontrar o nmero da aposta, e saber qual o nmero de lanamentos necessrios para que aquele valor fosse obtido.
12.5.2.1. A FUNO DAS VARIVEIS:
Varivel Funo Num_Loteria Nmero sorteado. Este ser inicializado a 0 por forma a que no corresponda a nenhum valor introduzido pelo utilizador e assim possa realizar o primeiro sorteio. Aposta Nmero em que o utilizador pretende apostar. Num_Lanc Nmero de lanamentos realizados at obter o resultado da aposta. Este valor tem de ser incrementado cada vez que realizado um sorteio.
www.melhordesempenho.com.br sua consultoria online 102 12.5.2.2. CONSTRUO DO CICLO:
While Palavra-chave que indica o inicio do ciclo While-Wend Num_Loteria <> Aposta Condio teste utilizada para determinar o terminus da realizao do ciclo. Se esta condio for Verdadeira executa as instrues que esto dentro do While-Wend, se for Falsa a execuo do ciclo terminada tendo o programa sequncia nas instrues que seguem a palavra chave Wend. Num_Loteria = Int ( 9 * Rnd() + 1 ) Instruo a realizar de cada vez que o ciclo executado. Tem como funo gerar nmeros aleatrios entre 1 e 10. Num_Lanc = Num_Lanc +1 Instruo a realizar de cada vez que o ciclo executado. Tem como funo fazer a contagem de quantos lanamentos foram realizados at se obter o valor da aposta. Beep Instruo a realizar de cada vez que o ciclo executado. Tem como funo apitar em cada sorteio Wend
Palavra Chave que indica o fim de um ciclo While-Wend.
12.5.2.3. TRADUO INTEGRAL
While Num_Loteria <> Aposta Num_Loteria = Int ( 9 * Rnd() + 1 ) Num_Lanc = Num_Lanc +1 Beep Wend
Enquanto o nmero sorteado no for igual ao valor da aposta, o sorteio continua, o que implica sortear um nmero contabilizar o nmero de sorteios realizados e apitar para que o utilizador tenha a percepo do que est a ser realizado. www.melhordesempenho.com.br sua consultoria online 103 12.5.3. FUNCIONAMENTO DO CICLO
Existe uma fase de inicializao das variveis envolvidas na condio Teste para garantir o correto funcionamento do ciclo. Avalia a condio teste e se for verdadeira executa todas as instrues at palavra- chave Wend voltando de novo avaliao da condio, se for falsa prossegue a execuo da rotina nas instrues que se localizam depois da palavra-chave Wend.
12.5.4. PERIGOS ASSOCIADOS UTILIZAO DO CICLO WHILE- WEND
M ou inexistncia de inicializao das variveis envolvidas na condio-teste. Garantir que as variveis envolvidas na condio teste podero ter valores diferentes por cada vez que o ciclo seja executado. Garantir que em algum momento a condio teste falsa e o ciclo termina a sua execuo.
Ateno: A no verificao destas condies implicar que o ciclo no tenha fim Ciclos Infinitos
www.melhordesempenho.com.br sua consultoria online 104
12.5.5. OUTRA APLICAO
Pretende-se realizar um jogo de geografia. Tente compreender o seu funcionamento. Corpo do jogo Funo Auxiliar
www.melhordesempenho.com.br sua consultoria online 105
12.6. DO LOOP
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas possibilidades que esto limitadas quela estrutura:
Do Loop permite posicionar a condio teste no inicio ou fim do loop, a condio no fim do Loop evita uma inicializao prvia do valor das variveis envolvidas na condio teste, dado que essa inicializao pode ser feita no decurso do ciclo com valores reais.
Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma expresso for verdadeira ou at que (until) a condio seja verdadeira (facilidade conseguida atravs do operador Not)
12.6.1. SINTAXE
Poder ser:
Do [{While | Until} <condio>] <Instrues a realizar em cada iterao> Loop
Ou ento: Do <Instrues a realizar em cada iterao> Loop[{While | Until} <condio>]
www.melhordesempenho.com.br sua consultoria online 106
12.6.2. APLICAES PRTICAS
Utilizando a condio teste no inicio do Loop e com a palavra While Condio teste no inicio com While
Utilizando a condio teste no inicio do Loop e com a palavra Until Condio teste no inicio com Until
www.melhordesempenho.com.br sua consultoria online 107
Utilizando a condio teste no fim do Loop e com a palavra Until Condio teste no fim com Until
Utilizando a condio teste no fim do Loop e com a palavra While
Condio teste no fim com While
www.melhordesempenho.com.br sua consultoria online 108
12.7. SELECT CASE
Permite a escolha de um percurso mediante a avaliao de n condies. de extrema utilidade para evitar os Ifs encadeados, dando um maior grau de legibilidade e simplicidade ao cdigo construdo.
12.7.1. SINTAXE
Select Case <Expresso a ser avaliada> [Case <Valor da Expresso> [Instrues a realizar]] ... [Case Else [Instrues a realizar na situao residual]] End Select
12.7.2. APLICAO PRTICA
Recordem o processo resolvido com recurso a If Then Else ElseIf Mais facilmente seria resolvido com recurso estrutura Select Case www.melhordesempenho.com.br sua consultoria online 109 Aplicao da estrutura Select Case rotina Classe_Etaria
12.7.2.1. CONSTRUO DA ESTRUTURA
Select Case Palavras-Chave que indicam o inicio de um controle Select Case Idade Expresso sujeita a teste, i.e., varivel cujo contedo est a ser avaliado. Esta varivel vai ser comparada sucessivamente pelos valores alternativos apresentados nas instrues Case <Valor>, se encontrar o valor nalguma dessas opes Case executar as linhas de cdigo que a tero inicio at opo de Case seguinte. Caso o valor da varivel a ser comparada no corresponda a nenhum valor apresentado nas opes Case, existe uma opo Case especial - Case Select - para os restantes valores, neste caso sero executadas todas as instrues que se localizem entre o Case Else e o Case Select. www.melhordesempenho.com.br sua consultoria online 110 Case Is<3 ou Case Is<=12 ou Case Is<=17 ou Case Is<=25 ou Case Is<=65 ou Expresses Case. Se o valor da varivel for igual a qualquer um dos valores apresentados em cada uma destas expresses, o fluxo de execuo ter continuidade na linha abaixo da expresso case que faz o matching, at que uma nova expresso case seja encontrada. Sendo que nessa altura termina o controlo Select Case dando continuidade ao programa nas instrues que se seguirem ao End Select. Case Else Ser a instruo Case residual, selecionada somente se nenhuma das outras o tiver sido. Neste caso sero realizadas todas as instrues de cdigo que se lhe seguirem at expresso End Select. Findo o qual seguir todas as instrues aps o controlo Select case. End Select Palavra-Chave que indica o fim do controlo Select Case.
12.8. FOR EACH NEXT
A estrutura For-each-next de longe a mais potente do VBA. De facto permite executar uma determinada instruo em todos os elementos de uma coleo de objetos, ou em todos os elementos de um array.
Esta estrutura quando aplicada em arrays no funciona para a actualizao dos valores do array, mas somente para a extrao do seu contedo. Contudo quando aplicada a colees de objetos pode s-lo para alterao das suas propriedades ou extrao de valores.
12.8.1. SINTAXE
For Each <Varivel do tipo dos elementos do grupo> In <Grupo> <Instrues a realizar para cada elemento do grupo> Next www.melhordesempenho.com.br sua consultoria online 111
12.8.1.1. UTILIZANDO ARRAYS
Pretende-se inicializar um array com um conjunto de 5 pases e posteriormente visualizar os elementos introduzidos.
Exemplo no-funcional
Repare que o exemplo, poder estar conceitualmente correto, mas no funciona devido restrio do For-Each-Next para a alterao de valores de arrays tarefa impossvel de realizar. A alternativa poderia ser a exibida na figura 39: Alterao da sub-rotina Inicializa_Array
www.melhordesempenho.com.br sua consultoria online 112
12.8.1.1.1. CONSTRUO DO CICLO
For Each Palavras-Chave que indicam o inicio de um controlo For-Each Pais Varivel qual vo ser atribudos sucessivamente todos os elementos do grupo de objetos. Este grupo pode ser constitudo por uma array ou uma coleo de objetos. Sendo que se se tratar de um array esta varivel dever ser do tipo Variant. Se se tratar de uma coleo, esta varivel poder assumir o tipo Variant, o tipo Objet genrico ou o tipo Objet especifico que corresponde ao tipo de objetos a que a coleo remete. In Palavra-chave que separa a varivel do grupo. Array_Pais Grupo de elementos a tratar. Poder ser um array ou uma coleo de objetos. O ciclo ser executado tantas vezes quantos os elementos constantes do grupo. Na primeira iterao, a varivel assume o valor do primeiro item do grupo, como tal em cada loop este valor ser atualizado pelo item seguinte. MsgBox Pais Instruo a realizar em cada volta do ciclo. Sendo que em cada volta a varivel Pais ter um elemento diferente. Next Palavra-chave que indica o fim do loop. Neste momento o programa ter continuao na instruo For Each correspondente se a varivel no corresponder ao ltimo item do grupo, caso contrrio sair da instruo For Each-Next prosseguindo a execuo da rotina na linha de cdigo abaixo do Next.
www.melhordesempenho.com.br sua consultoria online 113
12.8.1.2. UTILIZANDO COLEES DE OBJETOS
Rotina para atribuir nomes s WorkSheets do Excel
Rotina para demonstrar o manuseamento de ranges
www.melhordesempenho.com.br sua consultoria online 114 13. COLEES DE OBJETOS E OBJETOS
13.1. O QUE SO OBJETOS?
Objetos so elementos caracterizados por um conjunto de propriedades, e que tm subjacente um determinado comportamento. Por exemplo, uma janela do windows um objeto, caracterizada por um nome, um ttulo, uma dimenso, um posicionamento dentro do cran,, e tem um comportamento inerente, pode ser aberta, fechada, minimizada, maximizada, escondida, redimensionada,
Seguindo esta lgica podemos identificar alguns objetos do ambiente de trabalho Windows: o boto, o grfico, o menu, o documento, a imagem, a textbox, a frmula, o workbook, a worksheet, a clula, o conjunto de clulas de uma worksheet,
13.2. OBJETOS: PROPRIEDADES, MTODOS E EVENTOS
13.2.1. PROPRIEDADES
As propriedades dos objetos constituem o conjunto de caracteristicas que o definem. Por exemplo: nome, cor, dimenso, designao, valor contido,
13.2.2. MTODOS
Os mtodos traduzem o comportamento de um objeto. Estes mtodos representam procedimentos que executam uma determinada tarefa, que pode ser complementada atravs da passagem de argumentos ou parmetros.
13.2.3. EVENTOS
Eventos ou acontecimentos, representam todas as actividades que envolvam o objeto e que normalmente directa ou indirectamente so despoletadas pelo utilizador. Por exemplo: abrir ou fechar um workbook, clicar sobre um boto ou worksheet, alterar o contedo de um elemento,
www.melhordesempenho.com.br sua consultoria online 115 Estes eventos servem para que possamos activar uma determinada tarefa aquando da sua ocorrncia.
Exemplo: Suponha que pretende executar uma macro quando abre o seu workbook.
1 Crie a macro que pretende executar. 2 No Editor de Visual Basic, na janela de Projeto Projet Window selecione o objeto ThisWorkBook. Na janela de edio repare nas duas caixinhas que se encontram na parte superior. A do lado esquerdo indica general clique nela e selecione o elemento workbook, na caixinha da direita selecione o evento Open. 3 Automaticamente aparecer um procedimento na janela de edio cujo nome ser Workbook_Open, tudo o que escrever no seu contedo ser executado quando o documento for aberto, neste caso indique o nome da macro que criou anteriormente.
13.3. OBJETOS MAIS UTILIZADOS NO EXCEL
Os Objetos mais utilizados no Excel so: Application, WorkBook, WorkSheet e Range
13.3.1. APPLICATION
Application o objeto de topo hierrquico, representa o prprio Excel.
13.3.1.1. PROPRIEDADES
Propriedades Caption Meno exibida na barra de ttulos do Excel DisplayAlerts TRUE as mensagens de alerta so exibidas durante a execuo da subrotina. False caso contrrio. Path Nome do deiretorio onde o Excel est instalado. www.melhordesempenho.com.br sua consultoria online 116 ScreenUpdating True altera o cran consoante a subrotina que executa. Caso contrrio, o cran no alterado durante a execuo da subrotina. WindoWorkSheetState O estado da janela da aplicao: XlNormal janela tamanho normal XlMaximized janela tamanho maximizado XlMinimized janela com tamanho minimizado DisplayStatusBar Mostra ou esconde a StatusBar. True exibe DisplayFormulaBar Mostra ou esconde a Barra de Formulas True exibe
13.3.1.2. MTODOS
Mtodos Calculate Implica o clculo de todas as frmulas de todas as WorkSheet e WorkBookS abertos.
Argumentos: no tem Help Exibe um tpico do Help de um determinado ficheiro de Help.
Argumentos: Helpfile: nome do ficheiro, incluindo a path se necessrio Helpcontextid: nmero que faz referncia ao ndice de help www.melhordesempenho.com.br sua consultoria online 117 Quit Fecha aplicao Excel. (se a propriedade Display alerts estiver com o valor False, o Excel no propor a gravao de alteraes nos ficheiros)
Argumentos : no tem Run Utilizado para correr uma subrotina de VB ou uma Macro do XL Argumentos : Macro: nome da macro ou subrotina a executar Argumentos que a subrotina necessita para ser executada arg1:=<valor 1>, arg2:=<valor>,
13.3.1.3. WORKBOOK
O Objeto WorkBook, na hierarquia de objetos segue de imediato o objeto application e representa um ficheiro de Excel.
13.3.1.4. PROPRIEDADES
Propriedades Name Nome do ficheiro. No permite a alterao do nome, para isso necessrio proceder ao Save/As
Path Directoria onde o ficheiro se encontra
www.melhordesempenho.com.br sua consultoria online 118 Saved True se no houve nenhuma alterao no ficheiro desde a ltima gravao False caso contrrio Exemplo: If not(activeWorkbook.Saved) Then ActiveWorkbook.Save End If
13.3.1.5. MTODOS
Mtodos Activate Activa um documento aberto. Equivalente a ir ao Window e selecionar um documento aberto, trazendo-o para a janela principal do Excel. Argumentos: no tem www.melhordesempenho.com.br sua consultoria online 119 Close Fecha um documento. Argumentos: SaveChanges se True, o documento gravado antes de ser fechado; False caso contrrio FileName se o argumento SaveChanges estiver a TRUE, o WorkBook gravado com o nome aqui indicado RoutWorkBook se TRUE e o WorkBook tiver endereos para envio atribudos, envia o ficheiro por e-mail antes de fechar, caso contrrio no. Protect Protege um documento contra qualquer tipo de alterao Argumentos: Password: Password a utilizar na proteo Structure: True protege tambm a estrutura WindoWorkSheet: True a estrutura do WorkBook na janela protegida Save Grava o WorkBook. Argumentos: No Tem SaveCopyAs Cria uma cpia do documento em questo Argumentos: FileName: nome da cpia pretendida para o ficheiro
13.3.1.6. WORKSHEET
Na hierarquia situa-se abaixo do objeto WorkBook, uma vez que um WorkBook constitudo por um conjunto de WorkSheets.
13.3.1.7. PROPRIEDADES
www.melhordesempenho.com.br sua consultoria online 120 Propriedades Index ndice de uma WorkSheet num WorkBook Name Nome da WorkSheet. UsedRange Traduz o range na WorkSheet que contm dados. Visible True est visvel False est escondida, mas o utilizador pode vizualiz-la recorrendo ao Menu Format XlVeryHidden est escondida e ningum a pode visualizar, a menos que volte a aplicar uma subrotina que a coloque visvel.
13.3.1.8. MTODOS
Mtodos Activate Activa uma determinada WorkSheet. Equivalente a estarmos a trabalhar num WorkBook e clicarmos nela para visualizarmos o seu contedo. Argumentos: No Tem Calculate Provoca o clculo de todas as frmulas constantes da WorkSheet Argumentos: No Tem Delete Apaga uma WorkSheet do WorkBook. Argumentos: No Tem www.melhordesempenho.com.br sua consultoria online 121 Protect Protege uma WorkSheet contra qualquer tipo de alterao Argumentos: Password: Password a utilizar na proteo DrawingObjets: True- protege os objetos grficos Contents True- protege as clulas e contedos Scenarios True protege os cenrios afectos WorkSheet UserInterfaceOnly True protege os interfaces contra alteraes apesar de poder alterar as subrotinas Cell Referncia uma clula, atravs dos seus ndices numricos. Argumentos: Nmero da Linha Nmero da Coluna Ex: Clula C5 ser representado por Cells( 5, 3) Range Objeto utilizado para representar uma ou mais clulas de uma WorkSheet.
13.4. PROPRIEDADES
www.melhordesempenho.com.br sua consultoria online 122 Propriedades Count Nmero de Clulas num Range. Read-Only Dependents Retorna um range, que contm todos os dependentes (valores indexados pelas frmulas)do range em questo. Read-Only Name Nome de um range. Read/Write Value Valor constante de um range (clula ou conjunto de clulas). Read/Write Formula Traduz a frmula contida num range como uma string. Read/Write Text Busca o contedo de uma clula mas em formato de texto.
13.4.1.1. MTODOS
Mtodos Calculate Provoca o clculo da frmula constantes do range Argumentos: No Tem ClearContents Apaga o contedo (frmulas e valores) de uma clula, deixando os formatos. Argumentos: No Tem Copy Copia o contedo de um range para um outro de igual dimenso ou ento para o clipboard. Argumentos: Destination range para o qual os valores vo ser copiados (na ausncia deste parmetro a cpia feita para o clipboard) www.melhordesempenho.com.br sua consultoria online 123 OffSet Provoca um deslocamento de um determinado nmero de linhas e de colunas, tendo como base o range ao qual este mtodo est a ser aplicado. Argumentos: RowOffset nmero de linhas que se desloca ColumnOffset nmero de colunas que se desloca EntireRow Faz referncia (s) linha(s) indicadas por um determinado range. Argumentos: No Tem Select Seleciona o range em questo. Argumentos: Replace- (Opcional) Cell Referncia uma clula, atravs dos seus ndices numricos. Argumentos: Nmero da Linha Nmero da Coluna Ex: Clula C5 ser representado por Cells( 5, 3)
13.5. OBJETOS SINGULARES VS COLEES DE OBJETOS
Objeto Singular refere um nico objeto que pode ser referenciado pelo nome.
Colees de Objetos constituem conjuntos de objetos singulares que so referenciados pelo ndice que os identifica na coleo.
www.melhordesempenho.com.br sua consultoria online 124 As colees de objetos tambm podem ser considerados como objetos. Exemplo:
WorkBooks(Book1.XLS) um conjunto de objetos do tipo WorkSheet, mas tambm um objeto do tipo WorkBook.
13.6. INDEXAO DE COLEES POR NMERO OU NOME
Perante uma coleo de objetos necessrio identificar cada um dos diferentes itens que a compem para que a eles seja possvel acessar. Por analogia poder-se- mencionar o exemplo do array, este uma varivel plural, dado que composto por um conjunto de variveis. Quando se pretende acessar a uma posio do array utiliza-se o nome do array e o ndice da posio requerida. Assim, a indexao de colees pode ser realizada com base: em nmeros ou em nomes.
13.6.1. INDEXAO COM BASE EM NMEROS
Os nmeros prendem-se com a ordem pela qual o objeto est inserido na coleo (comea em 1).
Exemplo: WorkSheets(3).Name=Terceiro
13.6.2. INDEXAO COM BASE NO NOME
Seleciona-se um objeto numa coleo pelo nome que est associado ao objeto.
Exemplo: WorkSheets(Sheet3).Name=Terceiro www.melhordesempenho.com.br sua consultoria online 125 13.6.2.1. VANTAGEM
No necessrio saber a ordem pela qual foi inserido na coleo
13.6.2.2. DESVANTAGEM
Alterao do nome da sheet provoca erros
Exemplo: WorkSheets(Sheet3).Name=Terceiro WorkSheets(Sheet3).Visible=False o objeto no reconhecido
13.6.3. O OBJETO RANGE UMA EXCEO
O objeto range referido da mesma forma para ser utilizado como um objeto singular ou coleo de objetos.
13.6.3.1. TRATAMENTO COMO OBJETO:
Range(A1).Value=1 Equivalente a colocar na primeira clula da Sheet o valor 1.
13.6.3.2. TRATAMENTO COMO COLEO DE OBJETOS:
Range (A1:F20).Value= 1 www.melhordesempenho.com.br sua consultoria online 126 Equivalente a colocar em todas as clulas do range A1 a F20 o valor 1.
Ou ento:
Range (A1:F20).Name= Conjunto Range (Conjunto).Value= 1
Onde, na primeira instruo se atribui ao range A1:F20 o nome Conjunto, e na ltima instruo se utiliza essa designao para referenciar o respectivo conjunto de clulas e atribuir-lhe o valor 1.
13.7. REFERNCIA IMPLCITA
Quando se faz referncia a uma clula da worksheet, pode-se faz-lo de diversas formas equivalentes. No quadro seguinte exibida a equivalncia entre a expresso mais completa e a mais reduzida, sendo que ambas tm a mesma funo (colocar na clula A1 o valor 1): Aplication.Workbooks(1).Worksheets(1).Range(A1).Value=1 Range(A1).Value=1
A diferena entre ambas as formas de acesso est no fato da segunda forma (Range(A1).Value = 1) admitir que se est a trabalhar no workbook e na worksheet que nesse momento esto ativas no Excel, enquanto que na primeira forma so indicadas as referncias identificadoras do workbook e da worksheet onde se pretende trabalhar.
Assim, pode-se afirmar que a segunda forma faz uma aluso implcita aplicao, ao workbook e worksheet onde se trabalha.
www.melhordesempenho.com.br sua consultoria online 127 13.7.1. DECLARAO IMPLCITA DA APLICAO:
Para fazer a aluso implcita da aplicao, basta no a indicar, e por default o Excel assume que se est em seu contexto: Workbooks(1).Worksheets(1).Range(A1).Value=1
13.7.2. DECLARAO IMPLCITA DO WORKBOOK:
Omitir a referncia ao workbook, semelhante a assumir o workbook ativo como ambiente de trabalho. Neste contexto, as expresses abaixo indicadas assumem por defeito que se est a trabalhar no Excel, e no workbook que nesse momento estiver ativo. ActiveWorkbook.Worksheets(1).Range(A1).Value=1
13.7.3. DECLARAO IMPLCITA DA WORKSHEET:
O mesmo se aplica relativamente s worksheets. ActiveSheet.Range(A1).Value=1
www.melhordesempenho.com.br sua consultoria online 128 Ento, se existem tantas formas de referenciar uma clula, qual a forma devemos privilegiar?
O ideal seria escrever na forma completa, mas existem algumas desvantagens: cdigo muito denso dificuldades em escrever e ler maior probabilidade de ocorrncia de erros quando no se sabe precisamente o contexto em que a aplicao vai ser executada perigoso descrever uma path certinha
14. MISCELANEOUS
14.1. A INSTRUO WITH
A instruo With permite abreviar referncias a objetos. No faz sentido utiliz-lo quando se pretende utilizar s uma propriedade ou mtodo, mas quando pretendemos utilizar vrios, esta instruo facilita na escrita do cdigo, tornando-o mais limpo e de fcil entendimento.
14.1.1. APLICAO PRTICA
Rotina para demonstrar o manuseamento de objetos sem a instruo With
14.2. OUTRAS FUNES TEIS DO VBA
www.melhordesempenho.com.br sua consultoria online 129 Abs Valor absoluto de um nmero. CurDir Diretorio corrente. Date Data do sistema. Exit Do Interrompe a execuo de uma ciclo Do Loop Exit For Interrompe a execuo de um ciclo For Next ou For Each Next Exit Function Provoca a interrupo da execuo de uma funo. Exit Sub Provoca a interrupo da execuo de uma sub-rotina. Fix Arredonda um nmero decimal positivo para baixo, e um negativo para cima. Ex 3,9 ->3 e 3,9 -> -3 FormatDateTime Formata uma data em 4 possveis formatos Int Arredonda para cima um nmero decimal positivo ou negativo. Ex 3,9 ->4 e 3,9 -> -4 Is Array True se a expresso um array. False caso contrrio. IsDate True se a expresso do tipo Date. False caso contrrio. IsEmpty True se nenhum valor foi atribudo varivel. IsError True se a expresso contiver um erro. IsNull True se a expresso representar o valor NULL. IsNumeric True se a expresso for numrica. IsObjet True se se tratar de um objeto. Len Retorna a dimenso de uma String. Now Retorna o valor da data e da hora actual. Sqr Retorna a raiz quadrada de um nmero. Str Retorna a representao String de um nmero. StrComp Realiza a comparao de strings, produzindo True ou False conforme sejam ou no iguais. www.melhordesempenho.com.br sua consultoria online 130 Time Produz a hora actual. TypeName Retorna o tipo de dados de uma varivel. Cint Converte uma expresso de forma numrica ou textual para um valor de tipo inteiro. Cbool Converte uma expresso de forma numrica ou textual para um valor de tipo booleano. Cdate Converte uma expresso de forma numrica ou textual para um valor de tipo data. CLng Converte uma expresso de forma numrica ou textual para um valor de tipo Long. CStr Converte uma expresso de forma numrica ou textual para um valor de tipo String.