Você está na página 1de 10

Pginas seleccionadas

[] Aps o estudo aprofundado das facilidades da folha de clculo Excel, impe-se que nos debrucemos sobre a linguagem de programao Visual Basic for Applications, embutida naquela aplicao da Microsoft e que permite automatizar tarefas e extender as suas funcionalidades. O Excel 2007 e o VBA constituem, assim, uma ferramenta de desenvolvimento de aplicaes que, assentando nas funcionalidades das folhas de clculo, permite automatiz-las, personaliz-las e estend-las atravs da programao, para criar poderosos sistemas de tratamento automtico de dados. A Fig. 1.1 mostra a utilizao de um programa de VBA que automatiza a efectuao de determinados clculos. O programa assenta nas funcionalidades do Excel, nomeadamente nos seus objectos folhas, clulas e botes combina-as e automatiza-as, estendendo, assim, a funcionalidade do Excel.
A 1 2 3 4 5 6
P100 P110 P120 P130 P140 ........

B
560 789 89 765 432 ........

C
100 89 65 78 87 .........

D
....... ....... ........ Efectuar ........ Clculos ........ .........

E
Programa VBA

Fig. 1.1: Programa em VBA que automatiza determinados clculos e permite a sua efectuao atravs de um boto colocado na folha do Excel.

[] 4.2.4. EXPRESSES DE COMPUTAO


As expresses de computao so expresses aritmticas, expresses alfanumricas ou expresses lgicas que o computador entende e pode calcular.

FCA - Editora de Informtica

Programao com Excel para Economia e Gesto


Expresses aritmticas
O VBA implementa vrias operaes aritmticas e funes matemticas que, correctamente ligadas, formam expresses aritmticas.

Operaes aritmticas
Operao Adio Subtraco Operador + Prioridade 6 6 Exemplo 4+6 70-8 Resultado 10 62

Resto MOD 5 5 MOD 2 1 Diviso inteira \ 4 81\8 10 Multiplicao * 3 3*9 27 Diviso / 3 25/2 12,5 Potenciao ^ 2 4^3 64 As operaes entre parnteses tm prioridade 1. Podemos, portanto, alterar a ordem de execuo das operaes, colocando-as entre parnteses Exemplo de resoluo, passo a passo, de uma expresso

5* ( 3 + 6 ^ 2 ) / 3 36 39 195 65
Resoluo de expresses de computao em VBA
1. Clculo de expresses de computao em VBA 1.1 Executar o editor de VBA 1.2 Inserir o mdulo 1.3 Digitar o procedimento
Public Sub Expressao() Msgbox 4+3*(2^3-7) End Sub
2 FCA Editora de Informtica

Pginas seleccionadas
1.4 Seleccionar Run - Run Sub

[...]

[]
B) Estruturas repetitivas condicionais

A frase de controlo de ciclo das estruturas repetitivas condicionais inclui uma condio que determina o fim da repetio (Fig. 4.31). H dois tipos de estruturas repetitivas condicionais:

Repetir enquanto condio verdadeira; Repetir at condio verdadeira.

Fig. 4.31: Tipos de estruturas repetitivas condicionais.

FCA - Editora de Informtica

Programao com Excel para Economia e Gesto


A estrutura repetir enquanto
Nesta estrutura repetitiva condicional, o corpo do ciclo repetido enquanto determinada condio for verdadeira. A estrutura repetir enquanto pode subdividir-se em duas outras estruturas, uma com a frase de controlo no incio do ciclo, e outra com a frase de controlo no fim do ciclo:
I Controlo no incio do ciclo
Repetir enquanto condio Corpo do ciclo Fimenq

II Controlo no fim do ciclo


Repetir Corpo do ciclo enquanto condio

Estrutura repetir enquanto com frase de controlo no incio do ciclo


Nesta estrutura repetitiva condicional:

A condio avaliada no incio do ciclo; O corpo do ciclo repete-se enquanto a condio for verdadeira; A repetio do corpo do ciclo termina quando a condio se torna falsa; O corpo do ciclo no executado nenhuma vez se a condio for inicialmente falsa.

A Fig. 4.32 mostra em fluxograma a repetio das instrues do corpo do ciclo enquanto a condio de incio do ciclo for verdadeira. Quando a condio se tornar falsa, retomada a sequncia de execuo.

FCA Editora de Informtica

Pginas seleccionadas
Fig. 4.32: Fluxograma da estrutura repetir enquanto com frase de controlo no incio do ciclo.

[...]

VBA da estrutura repetir enquanto condio


Instrues diversas Do While condio Corpo do ciclo - conjunto de instrues que se repete enquanto a condio for verdadeira Loop Restantes instrues

[...]
Exemplo de pesquisa linear de um vector

Procura do nmero 40 no seguinte vector:


A= 20 15 40 60 70
1. Insero cauda do elemento A(6)=40

A=

20

15

40

60

70

40

2. Procura do nmero 40, comparando

I 1 2 3

A(I) 20 15 40

A(I)=40 F F V

Observao

40 o elemento 3 do vectorA

A procura do mesmo nmero 40 no vector B,


B= 20 15 35 60 70

terminava no elemento ndice 6 que efectivamente no existe no vector.


B= I 1 2 B(I) 20 15 20 15 35 60 70 40

B(I)=40 F F

Observao

FCA - Editora de Informtica

Programao com Excel para Economia e Gesto


I 3 4 5 6 B(I) 35 60 70 40 B(I)=40 F F F V Observao

A procura terminou e 40 no existe no vector B

Top-down
1. Pesquisa linear de um nmero num vector com N elementos 1.1 Formao do vector por atribuio de valores aleatrios aos N elementos 1.2 Leitura do nmero a procurar 1.3 Insero de um elemento fictcio igual ao valor que procuramos 1.4 Procura do nmero enquanto no o encontrarmos e for possvel encontr-lo 1.4.1 Comparao dos nmeros de vendedores com o nmero a procurar 1.5 Impresso do ndice do elemento que for igual ao valor procurado, no caso de no termos encontrado, impresso de uma mensagem apropriada

Variveis
Varivel A() I N X Tipo Inteira + Inteira + Inteira + Inteira + Significado Vector de nmeros inteiros ndice linha de cada elemento do vector Nmero total de elementos do vector Nmero do vendedor a procurar

AlgoritmoPesquisaLinear Procura linear de um nmero num vector.


INCIO 10 [ Formao do vector de N inteiros aleatrios compreendidos entre 100 e 200 ] Ler(N) Repetir para I=1 at N A(I)= Int((200 - 100 + 1) * Rnd + 100) Fimpara 20 [ Leitura do nmero a procurar ] Ler(X) 30 [ Inicializao da pesquisa linear: forar a existncia do nmero que procuramos e iniciar a procura no primeiro elemento ] A(N+1):=X I:=1 6 FCA Editora de Informtica

Pginas seleccionadas
40 [ Procurar o nmero enquanto no o encontrarmos e for possvel procurar ] Repetir enquanto A(I,1)<>X I:=I+1 Fimenq 50 [ Afixar o nome e volume de vendas ou mensagem apropriada ] Se I<>N+1 Ento Escrever(X, o elemento ndice,I,do vector) Seno Escrever (O nmero,X, no existe no vector!!) Fimse FIM

Procedimentos em VBA
1. Execute o editor de VBA e insira um mdulo 2. Digite
Option Base 1 Public Sub PESQUISALINEAR() Dim A() As Integer, Nomecaixa As String Dim I As Integer, N As Integer, X As Integer N = InputBox("Quantos elementos tem o vector?") ReDim A(N + 1) For I = 1 To N A(I) = Int((200 - 100 + 1) * Rnd + 100) Next I X = InputBox("Digite o nmero a procurar", Nomecaixa) A(N + 1) = X I = 1 Do While A(I) <> X I = I + 1 Loop If I <> (N + 1) Then MsgBox Str(X) + " o elemento ndice" + Str(I) + " do vector A", , Nomecaixa Else MsgBox "O nmero" + Str(X) + "no existe no vector!!", , Nomecaixa End If End Sub

[...]
Exemplo da invocao de procedimentos

A Fig. 6.2 mostra o encadeamento da execuo de trs procedimentos. O procedimento ProgramaPrincipal, a certa altura da sua execuo, invoca o procedimento P, passando-lhe trs argumentos; P ento executado, fazendo corresponder aos seus trs parmetros os trs argumentos que recebeu. Aps a concluso de P1, o controlo e execuo passa para ProgramaPrincipal. A seguir, depois de excutar mais instrues suas, o ProgramaPrincipal invoca Q, passando-lhe quatro
FCA - Editora de Informtica 7

Programao com Excel para Economia e Gesto


argumentos; Q executado, fazendo corresponder aos seus quatro parmetros os quatro argumentos que recebeu. Aps a concluso da execuo de Q, o controlo de execuo devolvido a ProgramaPrincipal que continua a executar as suas instrues.

Fig. 6.2: Encadeamento da execuo de trs procedimentos de acordo com as respectivas ordens de execuo.

[] FUNES DEFINIDAS PELO UTILIZADOR As funes definidas pelo utilizador destinam-se a suprir a falta de funes embutidas apropriadas; obedecem sintaxe destas e executam-se analogamente, digitando-se numa clula:
=NomedaFuno(lista de argumentos)

ou, se forem Pblicas, recorrendo-se ao assistente de funes que as classifica na categoria User Defined. As funes definidas pelo utilizador so escritas em VBA, aplicando-se, portanto, as noes fundamentais que descrevemos anteriormente.

Programas de aplicao
1. Taxas efectivas peridicas
8 FCA Editora de Informtica

Pginas seleccionadas
Defina uma funo que calcule as taxas de juro peridicas equivalentes a uma dada taxa efectiva anual. Top-down
1. Clculo de uma taxa efectiva peridica dada a taxa efectiva anual 1.1 Clculo da taxa equivalente peridica por aplicao da regra fundamental da equivalncia: Taxas de juro equivalentes, aplicadas ao mesmo capital inicial, durante o mesmo prazo, devem gerar o mesmo capital acumulado, independentemente do perodo de referncia das taxas ou do perodo de capitalizao (Cadilhe, 1994). C0 ( 1 + txanual ) = C0 (1 + i ) ^ nper i = ( 1 + txanual ) ^ ( 1 / nper ) - 1 C0 - Capital inicial i - Taxa efectiva peridica nper - Nmero de perodos de capitalizao por ano txanual - Taxa de juro anual efectiva

Resultado, parmetros e varivel


Resultado Txefect Parmetro Txanual Nper Tipo Real + Inteiro + Varivel Tx Tipo Real + Significado Taxa efectiva peridica

Significado Taxa anual efectiva Nmero de perodos de capitalizao por ano Tipo Real + Significado Taxa efectiva peridica

Funo Txefect (Txanual, Nper) Clculo da taxa efectiva peridica.


INCIO 10 [ Clculo da taxa equivalente peridica ] Txefect:= (1+Txanual)^(1/Nper)-1 REGRESSO

Procedimentos em VBA
1. Execute o editor de VBA e insira um mdulo
FCA - Editora de Informtica 9

Programao com Excel para Economia e Gesto


2. Digite
Public Function Txefect(Txanual As Single, Nper As Integer) _ As String Dim Tx As Single Tx = (1 + Txanual) ^ (1 / Nper) - 1 Txefect = Format(Tx, "#.##0%") End Function

Execuo da funo
1. Digite

A 3 4 5 4 Taxa anual efectiva 6% 6%

B Perodo Trimestre Quadrimestre Semestre

C Nmero de perodos por ano 4 3 2

D Taxa efectiva peridica

2. Digite =Txefect($A$4;C4) em D4 3. Copie D4 para D5:D6

D 3 4 5 6 Taxa efectiva peridica 1,467% 1,961% 2,956%

10

FCA Editora de Informtica

Você também pode gostar