Académique Documents
Professionnel Documents
Culture Documents
Por:
Paulo Castro Ribeiro
Viseu, 2000
ndice
1.
2.
3.
4.
5.
6.
7.
8.
9.
VBA -------------------------------------------------------------------------------------------------------------------------- 73
9.1. O QUE UMA FUNO -------------------------------------------------------------------------------------------------------- 73
9.2. FUNES DO EXCEL ----------------------------------------------------------------------------------------------------------- 73
9.3. COMO CRIAR FUNES ------------------------------------------------------------------------------------------------------- 73
9.4. ONDE DEFINIR A FUNO ---------------------------------------------------------------------------------------------------- 75
9.5. TRABALHAR NO EDITOR DE VBA CRIAR UMA FUNO -------------------------------------------------------------- 76
9.6. EXECUO DE UMA FUNO DENTRO DE UMA CLULA ----------------------------------------------------------------- 77
9.7. UTILIZAO DE VARIVEIS -------------------------------------------------------------------------------------------------- 78
9.7.1. Tipos de variveis --------------------------------------------------------------------------------------------------- 78
9.7.2. Declarao de Variveis-------------------------------------------------------------------------------------------- 79
9.8. ESTRUTURAS DE CONTROLO ------------------------------------------------------------------------------------------------- 80
9.8.1. If-Then-Else ---------------------------------------------------------------------------------------------------------- 80
9.8.2. Select Case ----------------------------------------------------------------------------------------------------------- 84
9.8.3. For Next ------------------------------------------------------------------------------------------------------------ 86
9.8.4. While Wend--------------------------------------------------------------------------------------------------------- 89
9.8.5. Do Loop------------------------------------------------------------------------------------------------------------- 93
Objectivos:
Formatao simples
Nomes de clulas
Resumo:
Folha de clculo:
um conjunto de clulas onde se pode colocar informao e que podem relacionar-se umas com as outras
atravs de expresses lgicas e matemticas;
uma ferramenta informtica que permite fazer todos os clculos que se pretendem, de forma simples,
iterativa ou repetitiva, relacionando os prprios dados que possui nos clculos que faz.
Pelo que ficou dito, uma folha de clculo uma excelente ferramenta de simulao.
Noes:
a)
b) barra de menu - mostra o nome dos diferentes menus relativos aplicao corrente. Cada menu contm
vrios comandos;
c)
barra de ferramentas - contm vrios cones onde se faz um "click" para executar uma tarefa;
f)
g) clula - quadro onde os dados so digitados. delimitada pela interseco de uma linha com uma coluna;
h) linhas - so seces horizontais ao longo da folha estendida, marcadas de 1 a 65536;
i)
folhas de clculo (worksheets) - um mapa composto por clulas que podem conter dados e frmulas. Uma
folha pode ainda incorporar outros objectos (grficos, botes,...);
grficos (charts);
mdulos de cdigo - contm programas escritos em VBA (Visual Basic for Applications);
caixas de dilogo;
Quando o excel acaba de ser carregado, o estado do mesmo o de Pronto. Este modo corresponde ao estado de no
edio, ou seja, quando o cursor de edio no se encontra activo. Neste modo, a folha de clculo apresenta, em
todas as clulas o resultado dos clculos efectuados. O contedo da clula na qual se encontra o cursor de folha
apresenta o resultado do clculo da formula que esta tem subjacente.
Este modo de trabalho permite activar os diferentes modos de seleco que passamos a descrever:
Colocar o cursor num dos cantos do rectngulo de clulas a seleccionar, pressionar a tecla
esquerda do rato e arrastar, sem largar a tecla esquerda, at ao canto oposto;
Colocar o cursor num dos cantos do rectngulo de clulas a seleccionar, pressionar a tecla Shift
sem largar e fazer click com o ponteiro do rato na clula do canto oposto (Seleco de...at)
Com o Teclado:
o
Colocar o cursor num dos cantos do rectngulo de clulas a seleccionar, pressionar a tecla Shift e
deslocar o cursor com as teclas de cursor
Apontar para o cabealho de coluna/linha e fazer click na tecla esquerda do rato. Se pretender
seleccionar mais do que uma coluna/linha ento deve repetir o procedimento anterior arrastando o
rato em coluna/linha enquanto pressiona a tecla esquerda.
Fazer click com o rato no quadrado de interseco entre os cabealhos de coluna e linha.
Seleco Mltipla
o
Pode ser aplicada a qualquer dos modos anteriores carregando-se, de seguida, na tecla Control e,
sem largar, seleccionar uma nova rea, coluna ou linha.
Neste modo o cursor de edio ( | )encontra-se a piscar ou na linha de edio ou dentro da clula que est a ser
editada. Editar significa alterar o contedo de uma clula ou seja, apagar, acrescentar ou alterar.
Caixa de nome (Contm o endereo da clula onde se encontra o cursor de folha ou o nome da mesma ou
do bloco seleccionado)
Em Modo Edio
Caixa de nome (Contm o endereo da clula onde se encontra o cursor de folha ou o nome da mesma ou
de um bloco seleccionado)
Cancelar (Estando em modo edio cancela as alteraes feitas e que ainda no foram validadas com enter)
INSERO DE DADOS
Colocar o cursor na clula onde ser feita a insero de dados e escrever. O excel passa automaticamente do modo
Pronto ao modo Edio.
Nmeros alinhados direita
Texto alinhado esquerda
Frmulas comeam pelo sinal de igual (= ou sinais de + ou -) e executam operaes sobre os valores da folha de
clculo
FORMATAO
Em modo Pronto, seleccionar clula(s) a formatar e fazer FORMATARCLULAS
Exemplos:
=2+3*5 resulta 17
=(2+3)*5 resulta 25
= 2>3 resulta Falso
="Ana"&2 resulta Ana2
A partir deste momento, vamos passar a considerar uma folha de clculo como reflexo de um modelo de clculo.
O modelo de clculo designa:
as variveis independentes,
as variveis dependentes, e
as expresses que permitam obter o valor das variveis dependentes em funo das variveis independentes.
A folha de clculo obtm-se do modelo de clculo fazendo a seguinte correspondncia:
10
varivel x (entrada)
varivel y (entrada)
16
Exemplo:
Voc vai loja comprar um computador. O vendedor diz-lhe que o computador custa 200c mais IVA. Quanto que
paga ?
Vamos considerar a resoluo do problema em duas etapas:
1) Definir o modelo de clculo
O modelo de clculo pode formular-se assim:
Variveis independentes
Preo : preo, indicado pelo vendedor
Taxa : taxa de IVA
Variveis Dependentes
IVA : valor do IVA
Valor : valor a pagar
Expresses
IVA = Preo * Taxa
Valor = Preo + IVA
11
12
PRATICANDO:
Resolva o exerccio seguinte imaginando que copia as frmulas no sentido indicado pelas setas. Identifique a
frmula e o valor resultante do processo de cpia.
REFERNCIA CIRCULAR - quando uma frmula se refere, directa ou indirectamente, sua clula (provoca erro)
A clula C6 contm a frmula =C5+C6
REFERNCIA A CLULAS NOUTRAS FOLHAS do mesmo livro
A clula B3 contm a frmula =Sheet2!A2
apresenta o valor uma clula acima e uma clula para a esquerda de B3 na folha Sheet2
REFERNCIAS 3D - referncia a clulas em vrias folhas
13
14
15
Objectivos:
Introduo s funes
Criao de funes
Funes matemticas/trigonomtricas
Funes estatsticas
Tipos de erros
Resumo:
FUNO:
As funes so frmulas predefinidas que executam clculos utilizando valores especficos, denominados
argumentos, numa ordem especfica, denominada sintaxe. Por exemplo, a funo SOMA adiciona valores ou
intervalos de clulas.
Os argumentos podem ser nmeros, texto, valores lgicos do tipo VERDADEIRO ou FALSO, matrizes, valores de
erro do tipo #N/D ou referncias de clula. O argumento dado deve produzir um valor vlido para esse argumento.
Os argumentos podem tambm ser constantes, frmulas ou outras funes.
A sintaxe de uma funo comea com o nome da funo, seguida de um parntese inicial, dos argumentos para a
funo separados por pontos e vrgula e de um parntese final. Se a funo comear com uma frmula, escreva um
sinal de igual (=) antes do nome da funo.
Se alguma funo no estiver disponvel, execute o programa de configurao para instalar o Analysis ToolPak.
Depois da instalao do Analysis ToolPak, deve seleccion-lo e activ-lo no gestor de suplementos.
Exemplo:
=SOMA(A1:A5;C1:C5;10)
16
17
18
19
2.6.2. Funo SE ou IF
=SE(teste_condicional; valor_se_verdadeiro; valor_se_falso)
Valor_se_verdadeiro o valor fornecido se teste_condicional for VERDADEIRO. Se teste_condicional for
VERDADEIRO e valor_se_verdadeiro for omitido, VERDADEIRO ser o resultado.
Valor_se_falso o valor fornecido se teste_condicional for FALSO. Se teste_condicional for FALSO e
valor_se_falso for omitido, FALSO ser o resultado.
=SE(A2>=10;"Aprovado!";"Reprovado!") se o valor da clula A2 for maior ou igual a 10 a funo d Aprovado!
seno (se o valor da clula A2 for menor que 10) a funo d Reprovado!.
20
ENCADEAMENTO DE SE'S
Podem ser imbricadas at sete funes SE como argumentos valor_se_verdadeiro e valor_se_falso para construir
testes mais elaborados
Suponha que quer saber qual a prova que teve a nota mais alta:
=SE(MXIMO(B4:B9)>MXIMO(C4:C9);"Teste";SE(MXIMO(B4:B9)=MXIMO(C4:C9);"Ambas";"Trabalho
"))
Suponha que quer classificar os alunos numa escala de Suficiente, Bom ou Muito Bom consoante as notas
arredondadas para inteiro estejam respectivamente nos seguintes intervalos: de 10 a 14, 15 a 18 e 19 a 20:
Na clula F4 ficava a seguinte frmula:
=SE(D4>=18.5;"Muito Bom"; SE(D4>14,5;"Bom"; SE(D4>=10;"Suficiente";"")))
Se o aluno tiver nota inferior a 9.5 o resultado da frmula uma string (cadeia de caracteres) vazia.
2.6.3. Funes E, OU e NO
E(lgico1; lgico2; ...) ou AND devolve VERDADEIRO se todos os argumentos (at 30) forem verdadeiros,
devolve FALSO se um ou mais argumentos forem FALSO. Os argumentos devem ser valores lgicos, matrizes ou
referncias que contenham valores lgicos.
=E(2=2;3<>2) VERDADEIRO
=E(2=2;"Joo"="Joo";"Maria"="Joana") FALSO
21
PRATICANDO:
Suponha que um aluno s fica aprovado se tiver mdia superior ou igual a 9.5 e tenha em ambas as provas nota
superior a 7:
=SE(E(D4>=9.5;B4>7;C4>7);"Aprovado";"Reprovado")
Suponha que o aluno s fica aprovado se tiver mdia superior ou igual a 9.5 e tenha pelo menos 13 numa das
provas:
=SE(E(D4>9.5;OU(B4>=13;C4>=13));"Aprovado";"Reprovado")
22
23
Texto
Valor lgico
Frmula
Valor de erro
16
Matriz
64
=TIPO("Maria") 2
=TIPO(E4) 2 - porque o resultado da frmula da clula E4 um texto (Aprovado)
=TIPO(2+"Maria") 16
CONTAR.VAZIO(intervalo) ou COUNTBLANK conta o nmero de clulas em branco no intervalo especificado.
As clulas com frmulas que devolvem "" tambm so contadas. As clulas com valores nulos (zero) no so
contadas.
.CL.VAZIA(valor) ou ISBLANK VERDADEIRO se valor se referir a uma clula em branco, seno FALSO
.ERRO(valor) ou ISERR VERDADEIRO se valor se referir a um valor de erro excepto #N/D
.ERROS(valor) ou ISERROR VERDADEIRO se valor se referir a qualquer valor de erro
.LGICO(valor) ou ISLOGICAL VERDADEIRO se valor se referir a um valor lgico
.NO.DISP(valor) ou ISNA VERDADEIRO se valor se referir ao valor de erro #N/D
.NO.TEXTO(valor) ou ISNONTEXT VERDADEIRO se valor se referir a qualquer item que no seja texto
.NM(valor) ou ISNUMBER VERDADEIRO se valor se referir a um nmero
.REF(valor) ou ISREF VERDADEIRO se valor se referir a uma referncia
.TEXTO(valor) ou ISTEXT VERDADEIRO se valor se referir a texto
24
Exemplos:
=.TEXTO("Maria") VERDADEIRO
=.NO.TEXTO("Maria") FALSO
=.ERRO(2/0) VERDADEIRO
=.NM("22") FALSO
INFORMAO(texto_tipo) ou INFO devolve informaes sobre o ambiente de trabalho actual. Ver Ajuda/Help
para ver as vrias possibilidades para texto_tipo
=INFORMAO("directrio") devolve o caminho da pasta actual
=INFORMAO("release") devolve a verso do Excel
MPAR(nm) ou ISODD devolve VERDADEIRO se nm truncado para for mpar
PAR(nm) ou ISEVEN devolve VERDADEIRO se nm truncado for par
=PAR(2) VERDADEIRO
=PAR(3.3) FALSO
=PAR(2.6) VERDADEIRO
=MPAR(2) FALSO
Exemplo:
25
##### O valor numrico introduzido numa clula ou o resultado de uma frmula demasiado extenso que
no cabe na clula, ou est a subtrair datas ou horas e o resultado deu um nmero negativo.
#NOME? ou #NAME? Est a inserir um nome que no est definido, ou est a introduzir um texto sem
estar entre aspas, ou no escreveu os dois pontos (:) ao definir um intervalo de clulas
#VALOR! ou VALUE! Introduziu uma frmula matemtica e est a utilizar um operando que texto, ou
est a indicar um intervalo de clulas quando esperado um valor nico
#N/D ou #N/A No est disponvel a informao para o clculo que quer executar
#NM! ou #NUM! Est a utilizar um argumento que no valido para a funo, ou a funo que est a
utilizar no encontrou resultado nenhum, ou introduziu uma frmula cujo o resultado e demasiado pequeno
ou demasiado grande para ser representado na folha de clculo
26
Objectivos:
Modelo de simulao
Resumo:
Introduo:
A unidade de tempo no Excel para o Windows o dia. Cada dia representado por um nmero de srie de 1 a
65380 (?), correspondendo s datas de 1 de Janeiro de 1900 a 31 de Dezembro de 2078 (?).
Quando introduzimos uma data na folha de clculo, essa data guardada como um nmero de srie. Nmero esse
que corresponde ao nmero de dias que passaram desde 1 de Janeiro de 1900 at data introduzida.
Os nmeros direita do ponto decimal no nmero de srie representam as horas a contar da meia-noite. Por exemplo
0.5 representa o meio-dia porque a diferena do meio-dia para a meia-noite exactamente igual a meio dia.
O nmero de srie 367.5 representa, ento, a combinao de data-hora: 12:00 de 1 de Janeiro de 1901.
Assim, porque as datas e horas so nmeros podemos criar frmulas para trabalhar com as datas e horas.
Para introduzirmos datas no necessitamos, felizmente, de saber os nmeros de srie correspondentes. Podemos
introduzir datas nos seguintes formatos:
d-m-yy
d-mmm-yy
d-m o ano fica, por defeito, o ano corrente
mmm-yy o dia fica, por defeito, o dia 01
com: d - corresponde ao dia do ms (1..31)
m - corresponde ao ms do ano em nmero (1..12)
mmm - corresponde ao ms do ano em texto (Jan...Dez)
yy - corresponde ao ano
h:mm AM/PM os segundos ficam, por defeito, 00
h:mm:ss AM/PM
h:mm
h:mm:ss
com: h - corresponde hora - se no for indicado AM/PM o Excel assume as horas de 1..24
27
28
29
Exemplos:
Calcular o nmero de horas, minutos e segundos que uma mquina trabalhou num dia.
30
Exemplos:
Calcular o nmero de notas positivas em cada uma das provas:
Na clula B12 =CONTAR.SE(B4:B9;">=10") copiar para a clula C12
Calcular o nmero de notas 10 em cada uma das provas:
Na clula B14 =CONTAR.SE(B4:B9;10) copiar para a clula C14
Calcular a mdia dos alunos aprovados:
Na clula D13 =SOMA.SE(E4:E9;"Aprovado";D4:D9)/CONTAR.SE(E4:E9;"Aprovado")
31
32
Objectivos:
Funes de texto
Resumo:
Funes de texto:
Com as funes de texto, podemos manipular cadeias de texto em frmulas.
TEXTO(valor; formato_texto) ou TEXT converte um valor para texto num formato numrico especfico. O
formato_texto um formato em texto do comando Formatar Clulas... Nmero
COMPACTAR(texto) ou TRIM remove todos os espaos do texto excepto os espaos nicos entre palavras.
=COMPACTAR("Informtica de Empresa ") Informtica de Empresa
33
EXACTO(texto1; texto2) ou EXACT compara duas cadeias de texto e devolve VERDADEIRO se forem
exactamente iguais, caso contrrio, devolve FALSO. A funo distingue entre letras maisculas e minsculas, mas
ignora as diferenas de formatao.
=EXACTO(22;22) VERDADEIRO
=EXACTO("Informtica";"informtica") FALSO
ESQUERDA(texto; nm_caract) ou LEFT devolve nm-caract mais esquerda numa cadeia de texto. Se
nm_caract for omitido considerado 1.
DIREITA(texto; nm_caract) ou RIGHT devolve nm-caract mais direita numa cadeia de texto. Se nm_caract for
omitido considerado 1.
SEG.TEXTO(texto; nm_inicial; nm_caract) ou MID devolve um nmero especfico de caracteres (nm_caract)
da cadeia de texto (texto), comeando na posio nm_inicial.
Exemplos:
Considere que a clula A14 tem o seguinte texto: Informtica de Empresa
=ESQUERDA(A14) I
=ESQUERDA(A14;3) Inf
=DIREITA(A14;3) esa
=SEG.TEXTO(A14;8;7) tica de
=DIREITA(1998;2) 98
34
REPETIR(texto; nm_vezes) ou REPT repete um texto (texto) um determinado nmero de vezes (nm_vezes).
Nm_vezes um nmero positivo, se for 0 d texto vazio, se no for um inteiro, ser truncado. O resultado da
funo no pode ser superior a 255 caracteres.
=REPETIR("Hi!";4) d Hi!Hi!Hi!Hi!
35
Os computadores utilizam nmeros para representar caracteres. A tabela mais utilizada a ASCII (American
Standard Code for Information Interchange) que recorre a um nmero entre 1 e 255 para representar cada letra,
nmero e smbolo.
CARCT(nm) ou CHAR devolve o carcter especificado pelo nmero de cdigo
=CARCT(55) 7 =CARCT(75) K
=CARCT(107) k
CDIGO(texto) ou CODE devolve um cdigo numrico para o primeiro carcter de uma srie de texto
=CDIGO(77) 55 =CDIGO("K") 75
=CDIGO(CARCT(107)) 107
36
37
NDICE ou INDEX
Forma matricial devolve sempre um valor ou uma matriz de valores.
NDICE(matriz; nm_linha; nm_coluna) devolve o valor de um elemento numa matriz, seleccionado pelos ndices
do nmero de linha (nm_linha) e coluna (nm_coluna).
=NDICE(A4:E9;3;2) 9
38
Exerccio:
Considere uma loja de informtica que vende Hardware (HW), Software (SW) e Livros (LI).
Para cada transaco (venda)
O Cdigo do Artigo composto por:
Os dois primeiros caracteres indicam categoria do artigo.
O 3 e 4 caracteres indicam o fornecedor.
Os outros qual o artigo.
Cdigos do IVA: 0 Isento, 1 - 5%, 2 - 12% e 3 - 17%
Pretende-se:
a) Calcular o valor total c/ IVA de cada artigo
1. Construir uma tabela auxiliar com os cdigos e taxas de IVA (C12:D15)
2. Na clula F5 -> =C5*D5*(1+PROCV(E5;C$12:D$15;2;FALSO))
3. Copiar para as clulas F6:F9
b) Calcular a quantidade vendida de jogos
1. Na clula G5 -> =DIREITA(B5;NM.CARACT(B5)-4)
2. Copiar para baixo
3. Numa clula qq. =SOMA.SE(G5:G9;"Games";C5:C9) 10
c) Calcular o valor do fornecedor MS
1. Na clula H5 -> =SEG.TEXTO(B5;3;2)
2. Copiar para baixo
3. Numa clula qq. =SOMA.SE(H5:H9;"MS";F5:F9) 187200
d) Calcular o valor da categoria HW
1. Na clula I5 -> =ESQUERDA(B5;2)
2. Copiar para baixo
39
40
Objectivos:
Tabelas
Critrios
Resumo:
Tabelas:
Uma maneira de armazenar dados relacionados (facturas, clientes, ...) numa folha de clculo atravs de uma tabela
(ou lista ou base de dados). Numa base de dados as linhas so registos e as colunas so os campos. A primeira linha
da lista contm rtulos (nomes) para as colunas (campos).
2.
3.
4.
5.
6.
Evitar colocar dados essenciais esquerda ou direita da Tabela. (Os dados podero estar ocultos quando
filtrar a Tabela)
Exemplo:
41
Exemplo:
A frmula em C24 vai contar o nmero de clulas preenchidas no campo Curso da lista que est A3:F10, desde que
o campo Curso seja igual a OGE. O Excel s vai considerar para esta operao (funo) os registos que obedecem
ao critrio indicado em B23:B24.
Funo BDOBTER:
Devolve um valor nico de uma coluna de uma lista que corresponde ao critrio indicado.
42
5.3.CONSTRUO DE CRITRIOS
5.3.1. Critrios comparados simples
Para localizar linhas numa lista que contenha um valor exacto, escreva o texto, nmero, data ou valor lgico na
clula existente abaixo do rtulo de critrio. Quando utiliza texto como critrio o Excel localiza todos os itens
comeados por esse texto.
B
25
Curso
26
OGE
Curso
26
=OGE
Data Nascimento
26
15-06-74
Considera todos os registos cujo o campo Data Nascimento exactamente igual a 15-06-74.
Para localizar valores de texto que tenham apenas alguns caracteres em comum, utilize um Wildcard (? Para um
carcter e * para um conjunto de caracteres. Para procurar um ? ou um * tenho que inserir um ~ antes do ? ou *. Por
exemplo ~?OGE~?, procurava o texto ?OGE?
B
25
Curso
26
?G*
Considera todos os registos cujo o campo Curso comea por um carcter qualquer seguido de um G
43
Data Nascimento
26
>=15-06-74
Considera todos os registos cujo o campo Data Nascimento maior ou igual a 15-06-74.
Conjuno:
B
25
Curso
Mdia
26
OGE
>=14
Considera todos os registos cujo o Curso comea por OGE e Mdia maior ou igual a 14.
B
25
Mdia
Mdia
26
>=14
<19
Considera todos os registos com Mdia superior ou igual a 14 mas inferior a 19.
Disjuno:
B
25
Curso
26
OGE
27
FIN
28
GEI
Considera todos os registos cujo Curso comea por OGE ou por FIN ou por GEI.
44
B
25
Curso
26
OGE
C
Mdia
>=14
27
Considera todos os registos cujo Curso comea por OGE ou cuja Mdia maior ou igual a 14.
B
25
Curso
Mdia
26
OGE
27
FIN
>=14
28
Considera todos os registos com Curso comeado por OGE, ou Curso comeado por FIN ou Mdia superior ou
igual a 14.
B
25
Curso
Mdia
26
OGE
>=14
27
FIN
Para localizar linhas que correspondam a uma de duas condies numa coluna e a uma de duas condies noutra
coluna, escreva os critrios em linhas separadas. Por exemplo, o intervalo de critrios seguinte apresenta as linhas
que contm "Dias" na coluna Vendedor e valores de vendas superiores a 3.000 contos ou as linhas para o vendedor
"Borges" com valores de vendas superiores a 1.500 contos.
Superior mdia
26
=E4>Mdia(E$4:E$10)
45
Superior mdia
26
=Mdia>Mdia(E$4:E$10)
Na clula B26 aparecia FALSO, o que no tem importncia nenhuma na avaliao que o Excel faz.
Ambos os critrios conduzem ao mesmo resultado, ou seja:
Consideram todos os registos cujo campo Mdia tem um valor superior mdia aritmtica do campo Mdia.
Normalmente temos que inserir as funes utilizadas em critrios com referncias absolutas. Isto porque o Excel ao
avaliar se um registo satisfaz um critrio como se copiasse o critrio para as linhas (registos) em baixo.
A frmula utilizada para uma condio tem de fazer referncia ao rtulo de coluna (por exemplo, Mdia) ou
referncia ao campo correspondente no primeiro registo (por exemplo E4).
Pode utilizar um rtulo de coluna na frmula em vez de uma referncia relativa de clula ou de um nome de
intervalo.
Quando o Excel apresentar um valor de erro tal como, #NOME? ou #VALOR!, na clula que contm o critrio,
poder ignor-lo porque no afecta o modo como a lista analisada.
B
25
Curso e mdia
26
=E(D4="OGE";E4>=14)
Considera todos os registos cujo Curso igual a OGE e Mdia maior ou igual a 14.
46
Esta opo colocou, em cada nome de campo, a possibilidade de abrir uma janela que contm vriasopes de
filtragem da tabela.
Agora, dentro de cada campo, possvel efectuar os seguintes filtros:
47
Exemplo:
Se pretendessemos filtrar a Tabela para visualizarmos apenas os alunos com trabalho realizado em Banco
obteramos o seguinte resultado:
Note-se que, quando uma Tabela se encontra filtrada, os nmeros das linhas e a seta do campo atravs do qual se
filtrou a Tabela encontram-se a azul.
48
A opo Filtrar Lista no local (in place) significa que a tabela ser ela prpria filtrada aps a execuo do
comando, ou seja, depois de executado o comando, o nmero de registos visveis na tabela sero apenas aqueles que
satisfazem o(s) critrio(s) definido(s).
A opo Copiar para outro local obrigaria a definir uma zona para a extraco dos registos em Copiar para (que
desta feita ficaria activo). A rea de extraco pode ser criada definindo todos ou apenas alguns dos campos da
tabela para os quais ser feita a extraco dos registos que passem pelo critrio definido.
Enquanto as opes anteriores funcionam em alternativa, a opo Intervalo da Lista deve ser preenchida com a
rea da Tabela ou nome da mesma (caso tenha sido criado um nome para a Tabela). Em rigor, se precedermos as
opes Dados Filtro Filtro Avanado com a colocao do cursor da folha dentro da Tabela, o Excel
automaticamente selecciona a Tabela de dados.
Na zona reservada ao Intervalo de Critrios devemos colocar a rea dentro da qual se situam os critrios com os
quais pretendemos filtrar a Tabela.
Exemplo:
Para filtrar a Tabela, podamos definir como critrio:
Todos os indivduos do Sexo F ou Trabalho em Banco teramos que definir o critrio do seguinte modo
13
14
Sexo
Trabalho
15
Banco
Ou
Todos os indivduos do Sexo F e Trabalho em Banco teramos que definir o critrio do seguinte modo
16
17
Sexo
Trabalho
Banco
49
Na zona referente ao Intervalo de Critrios teramos que definir a rea ou o nome do critrio pretendido, ou seja,
no primeiro caso $A$13:$B$15 e, no segundo caso, $A$16:$B$17.
Filtrando a Tabela no Local teramos como resultado, no primeiro caso:
50
Objectivos:
Funes financeiras
Funes de engenharia
Resumo:
Funes financeiras:
Na matemtica financeira o dinheiro tem um preo. E para ver como assim basta pensar no seguinte exemplo:
melhor 1000$ hoje ou 1200$ daqui a um ano?
Descrio
Valor futuro / Vf
Valor presente / Vp ou Va
Taxa / Taxa
Pagamento / Pgto
Tipo / Tipo
Perodo / Perodo
VA(taxa; nper; pgto; vf; tipo) ou PV devolve o valor actual de um investimento onde:
Taxa a taxa de juro por perodo;
Nper o nmero total de perodos de pagamento;
Pgto o pagamento feito em cada perodo (capital + juros) e no pode mudar durante a vigncia do investimento;
51
VF(taxa; nper; pgto; vp; tipo) ou FV devolve o valor futuro de um investimento de acordo com os pagamentos
peridicos e constantes e com uma taxa de juros constante onde:
Vp o valor presente ou a soma total correspondente ao valor presente de uma srie de pagamentos futuros. Se vp
for omitido, ser considerado 0.
Exemplos:
melhor 1000$ hoje ou 1200$ daqui a um ano?
Temos que ver quanto que valem os 1200$ hoje: =VA(2%;1;;1200;0) -> -1,176$47 o que significa que eu estou
disposto a pagar hoje 1,176$47 para obter daqui a um ano 1,200$, por isso melhor ter 1,200$ daqui a um ano;
ou
Temos que ver quanto valem os 1000$ daqui a um ano: =VF(2%;1;;1000;0) -> -1,020$00 o que significa que se eu
investir hoje 1000$ estou disposto a receber 1020$ daqui a um ano, por isso melhor ter 1,200$ daqui a um ano.
PGTO(taxa; nper; pv; fv; tipo) ou PMT devolve o pagamento peridico de uma anuidade de acordo com
pagamentos constantes e com uma taxa de juro constante.
PPGTO(taxa; perodo; nper; va; vf; tipo) ou PPMT devolve o pagamento de capital para determinado perodo de
investimento, de acordo com pagamentos constantes e peridicos e uma taxa de juro constante.
IPGTO(taxa; perodo; nper; va; vf; tipo) ou IPMT devolve o pagamento de juros para um determinado perodo
de investimento, de acordo com pagamentos peridicos e constantes e com uma taxa de juros constante.
TAXA(nper; pgto; va; vf; tipo;estimativa) ou RATE devolve a taxa de juro por perodo de uma anuidade.
NPER(taxa; pgto; va; vf; tipo) ou NPER devolve o nmero de perodos para investimento de acordo com
pagamentos constantes e peridicos e uma taxa de juros constante.
52
Exemplo:
VAL(taxa; valor1; valor2; ...) ou NPV devolve o valor lquido actual de um investimento, baseado numa srie de
fluxos monetrios peridicos e numa taxa de desconto, onde:
Valor1; valor2;... so entre 1 e 29 argumentos que representam os pagamentos e a receitas do investimento. Valor1;
valor2;...tm de ter o mesmo intervalo de tempo entre eles e ocorrer no final de cada perodo;
A taxa pode representar a taxa de inflao ou a taxa de juros de um investimento concorrente, deve representar o que
queremos ganhar com o investimento..
TIR(valores; estimativa) ou IRR devolve a taxa de retorno interna de uma srie de fluxos monetrios representada
pelos nmeros em valores, onde:
Valores uma matriz ou uma referncia a clulas que contm nmeros cuja taxa de retorno interna se deseja
calcular, deve conter, pelo menos, um valor positivo e um valor negativo para calcular a taxa de retorno interna;
Estimativa um nmero que se estima estar prximo do resultado de TIR
53
Exemplo:
Exemplo:
Uma empresa adquiriu um veculo por 3000 contos com uma vida til de 4 anos e pratica amortizaes pelo mtodo
das quotas constantes.
Calcular o valor da amortizao anual:
=AMORT(3000000;0;4) d 750,000.00 Esc
54
55
Exemplos:
Pretendendo efectuar um depsito a prazo por seis meses (vencendo juros semestralmente) o Sr. Manifesto
consultou dois bancos, tendo-lhe sido fornecidas as seguintes taxas de juro anuais:
Banco X 16.5% efectiva
Banco Y 16.0% nominal
Em que banco dever fazer o depsito?
Funes para converter valores entre vrios sistemas de numerao, tais como decimal, hexadecimal,
octal e sistemas binrios;
CONVERTER (nm; de_unidade; para_unidade) converte um nmero de um sistema de medida para outro,
onde:
Nm o valor em de_unidade a converter.
De_unidade a unidade do nmero.
Para_unidade a unidade do resultado.
A funo aceita os seguintes valores de texto para de_unidade e para_unidade:
Peso e massa
Grama
Libra massa
Massa em libras (peso)
U (unid. de massa atmica)
Massa em onas (peso)
De_unidade
ou
para_unidade
"g"
"sg"
"lbm"
"u"
"ozm"
Distncia
Metro
Milha inglesa
Milha martima
Polegada
P
Jarda
ngstrom
Pica (1/72 pol.)
De_unidade
ou
para_unidade
"m"
"mi"
"Nmi"
"in"
"ft"
"yd"
"ang"
"Pica"
TEMPO
ANO
DIA
HORA
MINUTO
SEGUNDO
Presso
Pascal
Atmosfera
mm de Mercrio
Fora
Newton
Dyna
Libra-fora
De_unidade
ou
para_unidade
"yr"
"day"
"hr"
"mn"
"sec"
De_unidade
ou
para_unidade
"Pa"
"atm"
"mmHg"
De_unidade
ou
para_unidade
"N"
"dyn"
"lbf"
Energia
Joule
Erg
Caloria termodinmica
Caloria IT
Eletro-volt
Cavalo-potncia-hora
Watt-hora
P-libra
BTU
De_unidade
ou
para_unidade
"J"
"e"
"c"
"cal"
"eV"
"HPh"
"Wh"
"flb"
"BTU"
POTNCIA
Cavalo-potncia
Watt
Magnetismo
Tesla
Gauss
Temperatura
Graus Celsius
Graus Fahrenheit
Graus Kelvin
Medida lquida
Colher de ch
Colher de sopa
Ona fluida
Chvena
Pinto U.S.
Pinto U.K.
Quarto
Galo
Litro
56
De_unidade
ou
para_unidade
"HP"
"W"
De_unidade
ou
para_unidade
"T"
"ga"
De_unidade
ou
para_unidade
"C"
"F"
"K"
De_unidade
ou
para_unidade
"tsp"
"tbs"
"oz"
"cup"
"pt"
"uk_pt"
"qt"
"gal"
"l"
Os seguintes prefixos de unidades abreviados podem ser anexados a qualquer valor mtrico de_unidade ou
para_unidade.
Prefixo
hexa
peta
tera
giga
mega
quilo
hecto
deca
deci
centi
mili
micro
nano
pico
fento
ato
Multiplicador
1E+18
1E+15
1E+12
1E+09
1E+06
1E+03
1E+02
1E+01
1E-01
1E-02
1E-03
1E-06
1E-09
1E-12
1E-15
1E-18
Abreviatura
"E"
"P"
"T"
"G"
"M"
"k"
"h"
"e"
"d"
"c"
"m"
"u"
"n"
"p"
"f"
"a"
Exemplos:
CONVERTER(68; "F"; "C") 20
Uma das provas mais carismticas do atletismo a milha. Calcule quantas voltas pista que os atletas tm que dar.
57
Objectivos:
Funes: Frequncia
Atingir Objectivo
Solver
Resumo
7.1. ARRAYS
7.1.1. Frmulas matriz (array)
Uma frmula de matriz pode efectuar clculos mltiplos e, em seguida, devolver um resultado nico ou mltiplos
resultados. As frmulas de matriz actuam de acordo com dois ou mais conjuntos de valores conhecidos como
argumentos de matriz. Cada argumento de matriz tem de ter o mesmo nmero de linhas e de colunas. As frmulas
de matriz so criadas do mesmo modo que se criam frmulas base, de valor nico. Seleccione a clula ou as clulas
que contm a frmula, crie a frmula e, em seguida, prima CTRL+SHIFT+ENTER para introduzir a frmula.
Ao introduzir uma frmula de matriz, o Excel insere automaticamente a frmula entre { }. Se a frmula de matriz
devolver apenas um resultado, faa clique sobre a clula na qual deseja introduzir a frmula, se devolver mltiplos
resultados, seleccione o intervalo de clulas no qual deseja introduzir a frmula. Depois introduzimos a frmula e
para terminar CTRL+SHIFT+ENTER.
Para apagar uma frmula matriz temos que seleccionar o grupo de clulas onde est a frmula e carregar na tecla
Delete.
58
Em vez de inserir a frmula =D20*2 na clula E20 e depois copiar para as duas clulas imediatamente abaixo,
podemos seleccionar as clulas onde queremos a frmula (E20:E22) e depois inserir a frmula matriz =D20:D22*2
e terminar com CTRL+SHIFT+ENTER.
Funo FREQUNCIA
FREQUNCIA(matriz_dados; matriz_bin) ou FREQUENCY devolve uma distribuio da frequncia como uma
matriz vertical. Para um dado conjunto de valores e um dado conjunto de binrios (ou intervalos), uma distribuio
de frequncia conta quantos desses valores ocorrem em cada intervalo, onde:
Matriz_dados uma matriz ou uma referncia a um conjunto de valores cujas frequncias deseja contar. Se
matriz_dados no contiver valores, a funo produz uma matriz de zeros.
Matriz_bin uma matriz ou referncia a intervalos nos quais deseja agrupar os valores contidos em matriz_dados.
Se matriz_bin no contiver valores, FREQUNCIA fornecer o nmero de elementos em matriz_dados.
A funo tem que ser introduzida como uma frmula de matriz depois de seleccionado um intervalo de clulas
adjacentes (nmero de elementos em matriz_bin mais um) em que se deseja que a distribuio fornecida aparea. A
funo ignora clulas em branco e texto.
Exemplos:
59
60
Exemplos:
61
62
Exemplo:
Resolver a equao: 2y2 + 2y + 5 = 20
Pretende-se saber, em regime de juro composto, ao fim de quantos anos que um dado capital, aplicado a uma dada
taxa anual, com capitalizaes anuais, duplica.
7.5. SOLVER
O comando Solver utilizado para maximizar ou minimizar o valor de uma clula que est dependente da variao
dos valores em vrias outras clulas, dentro de restries previamente definidas. Quando utilizar o Solver, as clulas
com que estiver a trabalhar tero que estar relacionadas atravs de frmulas na folha de clculo.
Exemplo:
Imagine que pretende comprar 100 animais com 100 escudos. Os preos unitrios dos diferentes animais so aqueles
que se apresentam, de seguida:
Preo Unit.
Ovelhas
10$00
Patos
2$00
Galinhas
0$50
63
64
Vamos formular o problema da forma que se apresenta no quadro seguinte, atribuindo quantidades a cada animal,
relacionando as quantidades com o preo unitrio e calculando os respectivos totais (em quantidade e dinheiro).
C
3
Preo Unit.
Quantidade
Total
Ovelhas
Patos
2$00
2$00
Galinhas
0$50
0$50
Total
3 12$50
10$00
1 10$00
Os valores da coluna F resultam todos de frmulas bem como os Totais. Daqui resulta que em F4 se encontra a
frmula =D4*E4 e que em E7 se encontra a frmula =Soma(E4:C6).
Se o solver no se encontrar disponvel em Ferramentas Solver ento deve fazer Ferramentas Suplementos e
seleccionar Suplemento Solver.
Utilizando o Solver vamos definir:
Uma ltima restrio que no se encontra visvel refere-se a F7 que tambm tem que ser igual a 100.
Quando pedimos para solucionar, o Solver apresenta-nos a seguinte soluo:
C
3
Preo Unit.
Ovelhas
5
6
7
Quantidade
Total
10$00
10$00
Patos
2$00
27
54$00
Galinhas
0$50
72
36$00
Total
100 100$00
65
Ana
Lus
Joo
Ponder.
1 Prova
14
15
14
1 Prova
25%
2 Prova
12
10
12
2 Prova
25%
3 Prova
10
14
17
3 Prova
25%
Av. Cont.
12
14
15
Av. Cont.
25%
Final
Total
100%
A constituio de cenrios passa pela utilizao das opes: Ferramentas Cenrios que nos conduz seguinte
janela de dilogo:
Nesta janela, para comearmos a adicionar cenrios, devemos pressionar o boto Adicionar que nos conduz a:
66
Se pretendermos adicionar mais cenrios, aps a introduo de todos os valores para as clulas variveis do cenrio
actual devemos pressionar Adicionar que nos conduz definio de um novo cenrio e assim por diante. Por ltimo
terminamos a definio de cenrios com Ok que nos conduz a:
Agora podemos seleccionar qualquer um dos 5 cenrios constitudos para vermos o seu resultado, alterar os valores
das variveis independentes (ponderaes) ou eliminar esse cenrio.
67
68
Resumo:
As tabelas dinmicas so um instrumento que serve para resumir dados de uma Tabela ou Base de Dados
dando-lhes a orientao mais adequada em funo dos objectivos pretendidos. Trata-se, em rigor, duma
forma verdadeiramente objectiva de transformar dados em informao.
Optando por criar uma Tabela Dinmica partindo dos dados constantes na nossa Tabela em Excel
faramos Seguinte.
69
Por ltimo, o Excel pergunta-nos se pretendemos embutir a Tabela Dinmica na Folha actual ou se
queremos criar uma nova folha. O dilogo o seguinte:
Se optarmos por embutir na mesma folha, apenas temos que definir o endereo do canto superior
esquerdo da Tabela Dinmica.
70
Nesta fase, podemos optar por concluir e, nesse caso, somos confrontados com o seguinte quadro e barra
de construo de Tabela Dinmica:
Ou podemos optar por definir o esquema da Tabela Dinmica antes de terminar e, neste caso,
pressionando o boto Esquema surge-nos o seguinte dilogo:
71
Atravs deste quadro podemos definir a nossa Tabela Dinmica em funo das necessidades de
informao subjacentes mesma.
Para procedermos alterao de uma Tabela Dinmica basta-nos aceder Tabela Dinmica
seleccionando-a e de seguida, actuar sobre as opes da barra de ferramentas correspondente.
Caso esta barra no se encontre imediatamente visvel sempre possvel evoc-la atravs das
opes Ver Barras de Ferramentas Tabelas Dinmicas.
72
8. VBA
9.1.
parmetros - valores enviados entre parntesis e que constituem o input ( a matriaprima) da funo, i.e.,
sobre eles que sero executados os respectivos clculos. Existem funes que no necessitam de
parmetros Rand(), Today(), Pi()),
Recorde-se como exemplo a funo SUM , esta recebe por parmetro um conjunto de valores
que se pretendem somar, sabe-se que o resultado da aplicao dessa funo ao conjunto de
valores ser o respectivo somatrio.
Escreva (em linguagem normal) os passos que essa funo deve executar para, com base nos parmetros
produzir o valor final. Nesta etapa est a definir o algoritmo.
3.
Traduza o seu algoritmo em VBA. Para escrever uma funo em VBA deve obedecer seguinte sintaxe:
73
End Function
A definio comea com a palavra-chave Function e termina com as palavras End
Function. Para definir o valor produzido pela uma funo basta no seu interior,
atribuir ao nome da funo um determinado valor ou expresso.
Aplicaes Prticas
Problema: Fazer uma funo que calcule o valor com IVA.
1. Parmetros / Input: Valor Ilquido e Taxa de IVA
2.
Passos a executar:
Problema: Fazer uma funo que gere valores aleatrios num intervalo real definido por dois
limites
1. Parmetros / Input: Limite Inferior e Limite Superior
2.
Passos a executar:
Somar o Limite Inferior com o resultado da alnea anterior multiplicado pela diferena entre o
Limite Superior e o Limite Inferior
74
3.
Em VBA:
Project Explorer
Se a janela no estiver visvel active-a atravs do View / Project Explorer ou utilizando o boto ou
combinaes de letras associadas a esta tarefa.
Nesta janela poder visualizar a hierarquia dos projectos de Visual Basic for Applications activos
nesse momento.
75
Entre eles dever encontrar um cujo nome corresponde ao nome do WorkBook do Excel com
que est a trabalhar e.g. VBAProject (Book1). dentro deste projecto que dever trabalhar para
que todas as funcionalidades que implemente estejam nele activas sempre que necessrio.
Assim se fizer o desdobramento do seu VBAProject, encontrar um folder cuja designao
Microsoft Excel Objects, e um outro designado Modules (se este no aparecer significa que o seu
projecto ainda no possui qualquer funo implementada. Para criar este folder dever fazer:
Insert / Module).
Certifique-se, antes de comear a criar a funo, que o est a fazer dentro dos modules, caso
contrrio elas no funcionaro como pretende.
9.5.
Aplicao Prtica
Problema: Criar uma funo que calcule o IVA
1. Parmetros / Input: Valor Ilquido e Taxa de IVA
2.
Passos a executar:
76
Nesta caixa de dilogo dever indicar o tipo de rotina a criar Function e o nome que
pretende dar funo. Automaticamente o Visual Basic for Applications criar a
estrutura da rotina, que neste caso ficaria:
Function IVA( )
End Function
Depois bastar escrever a expresso que produzir o valor final, entre estas duas linhas de
cdigo, como mostra a figura seguinte
1.
2.
Insert / Function
3.
Seleccione a categoria User Defined repare que aparece listada a funo que acabou de criar IVA
4.
Clique em OK e de imediato uma janela de ajuda vir auxiliar a utilizao da sua funo
77
5.
Em suma:
Qualquer funo poder ser utilizada numa WorkSheet do Excel, sendo a sua utilizao
semelhante a qualquer outra funo: numa clula
= <nome da funo> (<Param_1> , <Param_2>)
O tipo de varivel est associado ao gnero de informao que esta tem hiptese de armazenar:
Boolean 2 bytes Permite armazenar valores Boolenaos 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
78
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 objecto 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
As variveis que utilizar dentro de uma funo devero por norma ser declaradas i.e. definidas,
sempre que uma varivel for utilizada sem ser definida o VBA considera-a do tipo Variant. A
definio feita da seguinte forma:
Dim Numero As Integer
Onde:
Dim Palavra chave que indica uma declarao de variveis (abreviatura de dimenso)
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
79
VBA Control
Objectivo
If -Then - Else
For Next
vezes.
Executa uma determinada tarefa enquanto que uma determinada
While-Wend
Do Loop
Select - Case
9.8.1. If-Then-Else
Se a condio for verdadeira, ento (then) realiza as operaes colocadas no segundo parmetro;
3.
80
Aplicao Prtica
Problema: Determinar se um nmero par
1. Elementos de anlise
1. Nome: _Par
2.
2.
3.
Passos a executar:
1. Se for igual a zero, ento o nmero par e a funo assume o valor True
2.
3.
Em VBA:
81
Interpretao
Dim resto As Double
Declarao da varivel resto, onde guardado o resto da diviso do nmero por dois
Mod uma funo que calcula o resto da diviso do Numero por 2 (neste caso). O
valor calculado atribudo varivel resto.
If
Resto = 0
Then
Else
_Par = False
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.
Aplicao Prtica
Problema: Crie a funo Mod para usar nas clulas do Excel.
1. Elementos de anlise
1. Nome: Resto_Diviso
2.
2.
3.
Passos a executar:
82
3.
Em VBA:
Aplicao Prtica
Problema: Pretende-se criar uma funo que classifique etariamente um indivduo em
funo da sua idade. A classificao pretendida a seguinte:
3.
Idade
Classe Etria
Menos de 3 anos
Beb
Dos 3 aos 12
Criana
Dos 13 aos 19
Adolescente
Dos 20 aos 25
Jovem
Dos 26 aos 65
Adulto
Mais de 65
Idoso
Elementos de anlise
1. Nome: Classe_Etria
4.
2.
Parmetros: Idade
3.
Passos a executar:
1. Avaliar a idade
83
3.
4.
5.
6.
Seno "Idoso"
7.
Em VBA:
Este tipo de codificao pode tornar-se confuso e difcil de controlar, como tal o VBA
proporciona uma estrutura mais simples para este tipo de situaes: Select Case.
9.8.2. Select Case
84
Aplicao Prtica
Problema: Alterar a estrutura da funo Classe_Etria mediante a aplicao do Select Case.
Construo da Estrutura
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.
Case Is<3 ou
Case Is<13 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
Case Is<20 ou
Case Is<26 ou
altura termina o controlo Select Case dando continuidade ao programa nas instrues que se
seguirem ao End Select.
Case Is<66
Case Else
Ser a instruo Case residual, seleccionada 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
85
Aplicao Prtica
Problema: Pretende-se criar uma funo que recebendo a base e a potncia calcule o valor
respectivo.
1. Elementos de anlise
1. Nome: Calc_Potncia
2.
2.
3.
Passos a executar:
86
Funo
Conta o nmero de vezes que a base j foi multiplicada, uma varivel que ser automaticamente
incrementada em cada looping do ciclo.
acumulado Varivel que armazena o resultado sucessivo por cada vez que se multiplica. Inicializado a 1 (elemento
neutro da multiplicao) antes do ciclo.
Construo do Ciclo:
For
i = 1 To Potncia
Step 1
acumulado = acumulado Instruo a realizar de cada vez que o ciclo for executado. Neste caso a instruo nica,
* Base
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.
Traduo Integral:
For i = 1 To Potncia Step 1
acumulado =acumulado * 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.
87
Funcionamento do Ciclo:
A primeira execuo do ciclo distingue-se das restantes por a ela estar associada a 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.
Definir erroneamente o Step, por forma a que nunca seja obtido o valor que determina o fim da execuo
Aplicao Prtica
Problema: Pretende-se criar uma funo para calcular um factorial.
1. Elementos de anlise
1. Nome: Factorial
2.
2.
Parmetros: Nmero
3.
Passos a executar:
Se for, multiplicar sucessivas vezes um nmero pelo resultado acumulado das sucessivas
multiplicaes dos nmeros inteiros que o antecedem
3.
88
4.
Em VBA:
Aplicaes Prticas
Problema: Modificar a estrutura da funo Factorial, criada com o ciclo For-Next
(Neste caso o ciclo sabe apriori o nmero de vezes que ir ser realizado)
1. Elementos de anlise
1. Nome: Factor
2.
2.
Parmetros: Nmero
3.
Passos a executar:
89
Se for, multiplicar sucessivas vezes um nmero pelo resultado acumulado das sucessivas
multiplicaes dos nmeros inteiros que o antecedem
3.
4.
Em VBA:
2.
2.
Parmetros: Nmero
3.
Passos a executar:
3.
90
4.
Em VBA:
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.
Funo
Nmero de lanamentos realizados at obter o resultado da aposta. Este valor tem de ser incrementado
cada vez que realizado um sorteio.
Construo do Ciclo
While
Nmero<>Lanamento
91
Wend
Traduo Integral
While Nmero <> Lanamento
Lanamento = Int(1 + Rnd() * (10 - 1 + 1))
i=i+1
Wend
Enquanto o nmero do lanamento no for igual ao nmero da aposta, o sorteio continua, o que
implica sortear um nmero e contabilizar o nmero de sorteios realizados.
92
Funcionamento do Ciclo
Existe uma fase de inicializao das variveis envolvidas na condio teste para garantir o
correcto 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.
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.
A no verificao destas condies implicar que o ciclo no tenha fim Ciclos Infinitos
9.8.5. 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 ser verdadeira (facilidade
conseguida atravs do operador Not)
93
Poder ser:
Do [{While Until} <condio>]
<Instrues a realizar por iterao>
Loop
Ou ento:
Do
<Instrues a realizar por iterao>
Loop[{While Until} <condio>]
Aplicaes Prticas
Problema: Apostar um nmero num intervalo definido e saber ao fim de quantos lanamentos
(geraes aleatrias dentro do intervalo considerado) que foi seleccionado.
1. Elementos de anlise
1. Nome: Aposta
2.
3.
Output: Nmero de lanamentos necessrio realizar para que o nmero apostado fosse
seleccionado no intervalo de nmeros definido pelo Limite Inferior e Superior
2.
Passos a executar:
Se estiver, gerar continuamente nmeros aleatrios nesse intervalo e comparar com o Nmero da
aposta, quando for igual pra e indica o nmero de lanamentos
3.
94
3.
Em VBA:
Aplicaes Prticas
1.
95
3.
4.
96