Escolar Documentos
Profissional Documentos
Cultura Documentos
[] 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.
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:
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.
Pginas seleccionadas
Fig. 4.32: Fluxograma da estrutura repetir enquanto com frase de controlo no incio do ciclo.
[...]
[...]
Exemplo de pesquisa linear de um vector
A=
20
15
40
60
70
40
I 1 2 3
A(I) 20 15 40
A(I)=40 F F V
Observao
40 o elemento 3 do vectorA
B(I)=40 F F
Observao
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
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
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
Significado Taxa anual efectiva Nmero de perodos de capitalizao por ano Tipo Real + Significado Taxa efectiva peridica
Procedimentos em VBA
1. Execute o editor de VBA e insira um mdulo
FCA - Editora de Informtica 9
Execuo da funo
1. Digite
10