You are on page 1of 139

www.melhordesempenho.com.

br sua consultoria online


i










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.

Sintaxe: CORRESP(valor_procurado; matriz_procurada;tipo_correspondncia)

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

SE(teste_lgico; valor_se_verdadeiro; valor_se_falso)

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:

SE({VERDADEIRO.FALSO};ALERTA("Um";2);ALERTA("Dois";2))

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

Voc poderia usar a seguinte funo aninhada SE:

SE(Mdia>89;"A";SE(Mdia>79;"B";SE(Mdia>69;"C";SE(Mdia>59;"D";"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()

Dim Pessoa As Dados_Pessoais

Pessoa.Nome = Francisco
Pessoa.DataNascimento = #8/7/73#
Pessoa.Idade = WorksheetFunction.Year(Date)_
WorksheetFunction.Year(Pessoa.DataNascimento)
Pessoa.BI = 103582915

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.

Tabela_Textual
0 1 2
0
1
2
3



8.8.3. UTILIZAO DE UM ARRAY

8.8.3.1. PARA ACESSAR O ELEMENTO

<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ])

8.8.3.2. ATRIBUIO DE VALORES

<Nome_do_Array>(<Indice1_do_Elemento>[,<Indice2_do_Elemento>, ]) = <Valor>



www.melhordesempenho.com.br sua consultoria online
80
Exemplo 1:
Sub Pases()

Dim Pases(3) As String

Pases(0) = "Portugal"
Pases(1) = "Brasil"
Pases(2) = "Moambique"

MsgBox "Pases Armazenados:" & Chr(13) & Pases(0) & Chr(13) & Pases(1) &_
Chr(13) & Pases(2)

End Sub

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.



10.2.2. SINTAXE

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])


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.


10.3.2. SINTAXE

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

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

13.7.4. NVEL DE REFERNCIA A PRIVILEGIAR

Temos aqui representados 7 nveis de codificao:
Aplication.Workbooks(1).Worksheets(1).Range(A1).Value=1
Workbooks(1).Worksheets(1).Range(A1).Value=1
ActiveWorkbook.Worksheets(1).Range(A1).Value=1
Worksheets(1).Range(A1).Value=1
Activesheet.Range(A1).Value=1
Range(A1).Value=1
Range(A1)=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.

You might also like