Programação com Excel para Economia & Gestão Vol. II
-
Upload
grupo-lidel -
Category
Documents
-
view
214 -
download
1
description
Transcript of Programação com Excel para Economia & Gestão Vol. II
11 Introdução
© FCA - Editora de Informática 1
Este livro de programação avançada completa a trilogia de Excel para Economia
& Gestão, que tem em vista a promoção das folhas de cálculo como instrumentos
poderosos a actuarem na formulação, experimentação e automatização de soluções
para questões de Economia e de Gestão.
O primeiro livro, Exercícios Resolvidos com Excel para Economia & Gestão,
fomenta a utilização das folhas de cálculo, ilustrando as facilidades do Microsoft
Office 2007, através da resolução de exercícios de aplicação variada nas áreas da
Economia e da Gestão e disciplinas auxiliares. A prática subjacente à resolução
destes exercícios conduz, naturalmente, o utilizador à procura de meios de automa-
tização de tarefas morosas e à definição de funções que satisfaçam cálculos
específicos.
O segundo livro, Programação com Excel para Economia & Gestão Volume I,
potencia a utilização do Excel através da programação em Visual Basic for
Applications. O VBA, linguagem de programação embutida naquela aplicação da
Microsoft, aliada à metodologia Top-down e à algoritmia, possibilita a automa-
tização e a extensão das funcionalidades do Excel. O paradigma da programação
estruturada, que assenta naquelas metodologias, apresenta-se ao utilizador como um
desafio ao desenvolvimento de programas que especializem as funcionalidades
genéricas do Excel com vista à resolução eficiente e eficaz de problemas concretos.
O terceiro livro, Programação com Excel para Economia & Gestão Volume II,
combina os três paradigmas de programação: programação estruturada, programação
orientada por objectos e programação guiada por eventos – que o VBA suporta
para progredir na automatização e extensão das funcionalidades do Excel. O VBA
não é uma linguagem de programação inteiramente orientada por objectos, nem
inteiramente guiada por eventos. Porém, o VBA permite a manipulação do modelo
de objectos embutido no Excel, a definição de novas classes de objectos e o
desenvolvimento de interacções entre estes dois modelos, constituindo uma
poderosa ferramenta de desenvolvimento de soluções de informática. Os eventos
são também objectos, o que alarga o espectro de actuação desta ferramenta. Por
outro lado, a tecnologia de Automation que o VBA serve, permite que o Excel use
as funcionalidades de outras aplicações como se fossem genuinamente suas.
O Programação com o Excel para Economia & Gestão Volume II visa, assim,
explicar o desenvolvimento de interacções entre o modelo de objectos do Excel
com as classes de objectos definidas pelo utilizador e com os modelos de objectos
Programação com Excel para Economia & Gestão Volume II
© FCA – Editora de Informática 2
de outras aplicações da Microsoft. Caminhamos, por conseguinte, para a persona-
lização do Excel no sentido de especializarmos esta poderosa aplicação genérica
no desenvolvimento de problemas concretos de Economia e de Gestão.
O estudo do Programação com Excel para Economia & Gestão Volume II consiste
em dez capítulos organizados como mostra Fig. 1.1.
Paradigmas de
Programação
2. Programação Estruturada
Programação para o
Excel
3. Programação Orientada por Objectos
4. Programação Guiada por Eventos
5. Programação para Objectos e Eventos
6. Interfaces Gráficas7. Programação de Componentes
Projectos
9. Integração do Excel
com Outras Aplicações
1. Introdução
10. Reflexões sobre a Programação com o Excel
Programação para
Economia & Gestão
Conclusões e lições para
o futuro
8. Programação de
Interfaces Gráficas
Fig. 1.1: Estrutura do Programação com Excel para Economia & Gestão Volume II
O estudo remanescente do Programação Volume II desenvolve-se nos seguintes
capítulos que sumariamos sucintamente:
Os capítulos 2, 3 e 4 caracterizam os paradigmas de programação que fornecem os
métodos e as ferramentas para a automatização e a extensão das funcionalidades do
Microsoft Excel 2007. O Capítulo 2 revê as figuras fundamentais da programação
estruturada e a sua implementação em VBA para o Excel. Explica concisamente os
diversos tipos de dados, as operações de que podem ser operandos, as estruturas
de controlo de execução, a programação modular e as estruturas lineares de dados.
Cria, por conseguinte, a infra-estrutura de conceitos que sustenta a subsequente
exploração dos paradigmas de programação orientada por objectos e de progra-
mação guiada por eventos.
O Capítulo 3 explica os conceitos de classe e de objecto, e os princípios
fundamentais da Programação Orientada por Objectos. Explica a abstracção, a
encapsulação, a herança e o polimorfismo, e discute e ilustra a sua implementação
em VBA para o Excel.
Introdução
© FCA - Editora de Informática 3
O Capítulo 4 explica os conceitos de eventos e de resposta a eventos, e as figuras
de publicação, notificação e subscrição de eventos. Ilustra a sua implementação
em VBA para o Excel, elaborando respostas de execução automática para várias
categorias de eventos, nomeadamente eventos predefinidos para o modelo de
objectos do Excel, eventos temporais, erros e eventos definidos pelo utilizador.
Com esta infra-estrutura de conhecimento, os capítulos 5 e seguintes, até ao 9,
demonstram a manipulação programática do modelo de objectos do Excel e dos
objectos instanciados de classes definidas pelo utilizador. Objectos, eventos,
componentes dos projectos de VBA e a sua integração com modelos de objectos
de outras aplicações da Microsoft são programados com vista à automatização
crescente e expansão das funcionalidades do Excel.
O Capítulo 5 combina a programação orientada por objectos com a programação
guiada por eventos para explicar a funcionalidade de vários objectos do modelo de
classes e subclasses do Excel, nomeadamente livros, folhas de cálculo e ranges.
Cria novas classes que interagem entre elas e com o modelo de objectos do Excel,
promovendo a encapsulação e a reutilização de código de VBA.
O Capítulo 6 apresenta as interfaces gráficas e os controlos gráficos que nelas
podem ser colocados para leitura e afixação de dados. Insiste na manipulação das
propriedades e dos métodos que as interfaces e os controlos gráficos expõem, e
estende as suas funcionalidades através da elaboração de procedimentos de
resposta aos eventos predefinidos.
O Capítulo 7 apresenta uma visão parcial e simplificada da biblioteca de objectos
VBIDE que nos permite manipular, em tempo de execução, as componentes dos
programas de VBA, nomeadamente os projectos e os módulos standard, módulos
de classe e os módulos de código associados aos livros e folhas de cálculo. Propõe
procedimentos que listam as propriedades das componentes internas e externas
que determinado projecto referencia, procedimentos que adicionam e removem
essas referências, e procedimentos que geram e alteram linhas de código de VBA.
O Capítulo 8 instancia e manipula UserForms e controlos gráficos em tempo de
execução, recorrendo à programação das componentes dos projectos de VBA e à
programação de objectos e eventos. Apresenta vários exemplos para demonstrar a
efectuação das operações principais com UserForms e controlos em tempo de
execução.
O Capítulo 9 expande as capacidades do Excel, a jusante e a montante da
efectuação de cálculos, integrando, por referenciação e aplicação do paradigma da
programação orientada por objectos, outros pacotes da Microsoft que se baseiam
na tecnologia Automation. Ilustra esta integração com vários exemplos de
Programação com Excel para Economia & Gestão Volume II
© FCA – Editora de Informática 4
processamento em que o Excel usa o Word, o PowerPoint e o Visio do Microsoft
Office para escrever textos, apresentar slides e desenhar diagramas.
Finalmente, o Capítulo 10 sumaria a aprendizagem da programação com o Excel e
reflecte sobre a integração orientada por objectos de várias aplicações. O Excel
surge como componente de soluções de software para problemas específicos,
relegando para planos inferiores as suas características gerais de pacote que serve
todos os problemas.
66 Interfaces Gráficas Definidas
pelo Utilizador
© FCA - Editora de Informática 117
[…]
Botão de interruptor
Um botão de interruptor – Toggle Button – tem dois estados possíveis, verdadeiro
e falso, que alternam entre escolhas sucessivas.
A Fig. 6.7 mostra os estados possíveis de um botão de interruptor:
• botão, inicialmente no estado de desligado ou falso, passa ao estado de
ligado ou verdadeiro se for premido;
• estado alterna quando o botão é premido sucessivamente.
Neste exemplo, a mudança de estado do botão de interruptor altera a designação
inscrita no botão e a cor do fundo do UserForm.
Private Sub ToggleButton1_Click()
Rem Instruções de resposta ao
clique do botão
End Sub
Fig. 6.7: UserForm com um botão de interruptor que responde ao clique do botão.
Botão giratório
O botão giratório – SpinButton – é composto por duas setas, em direcções opostas,
que permitem incrementar ou decrementar um valor.
A Fig. 6.8 mostra a incrementação sucessiva de um valor por acção de um botão
giratório.
�
Private Sub SpinButton2_Change()
Programação com Excel para Economia & Gestão Volume II
© FCA – Editora de Informática 118
Rem Instruções de resposta à alteração do valor
End Sub
Fig. 6.8: UserForm com um botão giratório que responde à incrementação e decrementação de um valor
Programas de aplicação
1. Inquérito sobre grupos etários
Desenhe a seguinte interface gráfica:
���� Criação de um UserForm com as seguintes propriedades:
UserForm Name Caption Width Height
UFidades Inquérito 170 160
���� Colocação, neste UserForm, de um caixilho com seis botões de opção e um botão
de interruptor com as seguintes propriedades:
Control Name Caption Group Name
Tab Index
Width Height
Frame1 FRidade Idade 144 84
OptionButton OP1 <20 Idade 1 38 18
OptionButton OP2 20-35 Idade 2 38 18
OptionButton OP3 36-45 Idade 3 38 18
OptionButton OP4 46-59 Idade 4 38 18
OptionButton OP5 60-70 Idade 5 38 18
Interfaces Gráficas Definidas pelo Utilizador
© FCA - Editora de Informática 119
OptionButton OP6 >70 Idade 6 38 18
ToggleButton TB1 Menos 33 52
���� Colocação, neste UserForm, de três botões de comando com as seguintes
propriedades:
Control Name Caption Group Name
Tab Index
Width Height
CommandButton CBgrav Gravar 30 24
CommandButton CBprox Próximo 36 24
CommandButton CBfim Fim 24 24
2. Funcionalidade do botão de interruptor
Relativamente à interface gráfica desenhada no exercício anterior, atribua
ao botão de interruptor a seguinte funcionalidade:
• Premir o botão com a inscrição Menos diminui o número de escalões
etários, estreitando o UserForm e o caixilho de opções. O botão
passa a oferecer a opção de aumento;
• Premir o botão com a inscrição Mais aumenta o número de escalões
etários, alargando o UserForm e o caixilho de opções. O botão passa
a oferecer a opção de diminuição.
���� O procedimento TB1_Click, residente no módulo de código de UFidades,
diminui e aumenta, alternadamente, a largura do userform e do caixilho de
opções.
Private Sub TB1_Click()
If TB1.Caption = "Mais" Then
TB1.Caption = "Menos"
Me.Width = 170
FRidade.Width = 144
Else
TB1.Caption = "Mais"
Me.Width = 110
FRidade.Width = 95
End If
End Sub
77 Programação de Componentes
de Projectos de VBA
© FCA - Editora de Informática 169
[…]
7.3.4. MANIPULAÇÃO PROGRAMÁTICA DE CÓDIGO DE VBA
O modelo de objectos da VBIDE contém classes que permitem criar, substituir e
apagar linhas de código de VBA em tempo de execução.
Demonstramos estas operações através de pequenos programas que referenciam
módulos standard, módulos de classe e módulos de código, associados a folhas de
cálculo e a interfaces gráficas.
Geração de código de VBA
VarModulo.AddFromString Arg1
Arg1 – variável alfanumérica
adiciona as instruções de VBA guardadas numa variável alfanumérica ao final do
módulo.
O procedimento GerarCodigo cria, no módulo standard NovoCodigo, o procedi-
mento Mensagem.
Sub GerarCodigo()
Dim CM As CodeModule, Prog As String
Set CM=Application.VBE.ActiveVBProject.
VBComponents("NovoCodigo").CodeModule
Prog = "Public Sub Mensagem" + chr(13)
Prog = Prog + "Msgbox ""Ola, boa tarde""" + Chr(13)
Prog = Prog + "End Sub"
CM.AddFromString Prog
End Sub
Este procedimento gera, em tempo de execução, o seguinte procedimento no
módulo NovoCodigo do projecto activo:
Public Sub Mensagem()
MsgBox "Olá, boa tarde!"
End Sub
99 Integração do Excel com outras
Aplicações da Microsoft
© FCA - Editora de Informática 241
O Excel pode expandir as suas capacidades, integrando as funcionalidades das outras aplicações do Microsoft Office. Pode, por exemplo, entrelaçar as suas capacidades de cálculo com as capacidades do Word, do PowerPoint ou do Visio para ler dados registados em textos, slides ou desenhos gráficos, e também para apresentar o resultado dos seus processamentos. Assim, o Excel pode ler dados de um documento do Word, processá-los e afixar os resultados do processamento em slides do PowerPoint, em diagramas do Visio ou mesmo devolvê-los ao Word.
O Excel pode, pois, adquirir capacidades a montante e a jusante, e manipulá-las como se fossem suas, beneficiando das faculdades específicas de outras aplicações. Esta integração de funcionalidades é possível entre aplicações que suportem a tecnologia Automation da Microsoft, e obedece aos princípios da Programação Orientada por Objectos.
9.1. MANIPULAÇÃO DE OBJECTOS DE OUTRAS APLICAÇÕES
O Excel pode expandir as suas capacidades, integrando e manipulando como se fossem suas as funcionalidades das outras aplicações da Microsoft, nomeadamente as aplicações do Microsoft Office. O Excel pode, por conseguinte, alargar as suas capacidades a jusante para afixar os resultados dos seus cálculos em textos, slides, diagramas, etc. Pode também expandir as suas capacidades a montante, integrando as capacidades específicas de outras aplicações para ler dados registados em textos, bases de dados, slides, diagramas, etc.
A Fig. 9.1 ilustra a expansão do Excel, a montante e a jusante, por integração com o Visio. Neste exemplo, o Excel acede aos coeficientes de uma equação de 2º. grau que estão gravados num diagrama do Visio, calcula as raízes da equação e devolve os resultados ao mesmo diagrama do Visio. Este processo de leitura de dados gravados no Visio, o seu processamento no Excel e a afixação de resultados, novamente no Visio, processa-se automaticamente sem que o utilizador seja chamado a intervir, sem duplicação de código ou de dados e sem ficheiros intermédios. À vista do utilizador tudo se processa como se o Visio fizesse parte integrante do Excel.
Programação com Excel para Economia & Gestão Volume II
© FCA – Editora de Informática 242
Fig. 9.1: O Excel instancia o diagrama do Visio, lê os coeficientes da equação de 2º. grau, calcula as raízes e imprime-as no mesmo diagrama.
Esta integração de funcionalidades é possível entre aplicações que suportem a tecnologia Automation da Microsoft, e obedece aos princípios da Programação Orientada por Objectos:
• Cada aplicação expõe-se, perante as outras aplicações, como um objecto com propriedades e métodos que pode ser instanciado, referenciado e manipulado;
• A aplicação constituiu-se como o objecto raiz que dá acesso a todo o seu modelo hierárquico de objectos;
• O modelo hierárquico de objectos da aplicação pode ser instanciado e manipulado por outras aplicações através das propriedades e métodos que expõe.
Assim, programas escritos em linguagens, tais como o VBA, permitem ao Excel instanciar outras aplicações e operar os seus modelos de objectos como se fossem genuinamente seus. O Excel pode, por exemplo, instanciar o Visio, formatar uma das suas figuras geométricas invocando os respectivos métodos e atribuir à propriedade Text dessa figura o valor de um dos seus ranges. O procedimento CalculoMedia, escrito em VBA, permite ao Excel inscrever num rectângulo do Visio, o valor da média aritmética do range A1:A4. O Excel instancia o Visio, desenha um rectângulo no documento activo do Visio e atribui à sua propriedade Text o valor da média.
Sub CalculoMedia()
Dim R As Range, Media As Double
Set R = Sheets(1).Range("a1:a4")
Media = WorksheetFunction.Average(R)
Call ImpressaoNoVisio(Media): End Sub