¾Informática
para Engenharia das Ciências Agrárias
Visual Basic: exercícios
Ano
Lectivo de 1998/99
Os exercícios que se seguem devem
ser realizados utilizando o editor do Visual Basic integrado no Excel.
Para tal, inicie o Excel e adicione a barra de ferramentas do Visual Basic
(menu <Ver> seguido das opções <Barras de ferramentas>
e <Visual Basic>). Para aceder ao editor do Visual Basic prima o botão
respectivo da nova barra.
1. Construa uma espécie de
máquina de calcular que permita executar cálculos numéricos
envolvendo as quatro operações básicas de cálculo.
O acesso à máquina deve ser conseguido através do
uso de um botão de comando. No final da sua utilização,
o resultado obtido no visor da máquina deve ser copiado para a célula
activa. As alíneas que se seguem orientam o desenvolvimento da máquina
pretendida.
1.1. Crie um novo formulário
no editor do Visual Basic (menu <Inserir> seguido da opção
<UserForm>) para representar a máquina de calcular.
1.2. Adicione os controlos que se
indicam e estruture-os de modo a que o aspecto do formulário se
assemelhe ao da figura abaixo.
-
O visor da máquina deve ser representado
por uma caixa de texto de nome (propriedade Name)
Visor.
-
Os 10 algarismos devem ser representados por
botões de comando com o respectivo algarismo (propriedade Caption)
e de nomes CommandButton0 até CommandButton9.
-
Os sinais das operações envolvidas
devem ser representados por botões de comando com o respectivo sinal
e de nomes CommandButtonSomar, CommandButtonSubtrair, CommandButtonMultiplicar,
CommandButtonDividir
e CommandButtonIgual.
-
A acção de limpar o visor deve
ser representado por um botão de comando com a letra C e
de nome CommandButtonClear.
-
A confirmação ou cancelamento
das operações realizadas devem ser representadas por botões
de comando com os textos OK e Cancelar e os nomes CommandButtonOK
e
CommandButtonCancelar respectivamente.
1.3. Mude para a janela do Excel
e insira um botão de comando na primeira folha (utilize a caixa
de ferramentas dos controlos da barra do Visual Basic) com o texto Calculadora
e de nome CommandButtonCalculadora. Em seguida, mude para o editor
do Visual Basic, seleccione o módulo da Folha1 e insira o
seguinte código:
Private Sub CommandButtonCalculadora_Click()
End Sub
No final desta operação, se
premir o botão
Calculadora da Folha1 deverá
ser apresentado o formulário da máquina de calcular.
1.4. No editor do Visual Basic,
seleccione o módulo da
Calculadora e insira o seguinte código:
Option Explicit
Dim memoria As Currency
Dim sinal As String
* 1
Dim inicio As Boolean
O código acima declara três variáveis
para representar o conteúdo em memória (memoria), o último
sinal que foi premido (sinal), e se já foi ou não inserido
algum número (inicio).
1.5. Para inicializar as variáveis
atrás declaradas, utilize o evento Initialize do formulário.
Este evento ocorre sempre que o formulário é inicializado.
Private Sub UserForm_Initialize()
memoria = 0
sinal = ""
inicio = True
Visor = 0
End Sub
1.6. Defina os eventos Click
dos botões
Clear,
OK e Cancelar como se segue:
Private Sub CommandButtonClear_Click()
memoria = 0
sinal = ""
inicio = True
Visor = 0
End Sub
Private Sub CommandButtonOK_Click()
ActiveCell = Visor
Unload Me
End Sub
Private Sub CommandButtonCancelar_Click()
End Sub
Execute a Calculadora, prima os botões
em causa, verifique o sucedido e tente compreender o código respectivo.
1.7. Defina o evento Click
dos botões numéricos como uma chamada ao procedimento Numero_Click
com o algarismo do próprio botão como argumento. O exemplo
que se segue apresenta o código para os botões 0 e 1. De
modo análogo escreva o código para os restantes botões.
Para que a acção de premir um
botão numérico funcione, é ainda necessário
definir o procedimento
Numero_Click acima referido. Este procedimento
deve actualizar o visor da máquina de calcular à medida que
os algarismos vão sendo premidos.
Private Sub Numero_Click(num
As Integer)
' Substitua as reticências
pelo código que
' executará a
actualização do visor da máquina
...
End Sub
1.8. Defina o evento Click
dos botões de operação como uma chamada ao procedimento
Sinal_Click
com o sinal do próprio botão como argumento. Segue-se um
exemplo para o botão ?+?.
Private Sub CommandButtonSomar_Click()
End Sub
Por fim, defina o procedimento Sinal_Click.
Este procedimento deve guardar o sinal premido e efectuar as operações
pendentes (pense no que acontece numa vulgar máquina de calcular!).
Private Sub Sinal_Click(s
As String)
...
End Sub
2. Construa um formulário que
calcule sobre o conjunto de células seleccionadas as funções
Soma,
Média,
Máximo,
Mínimo
e Contar.Val do Excel e que guarde o resultado obtido numa outra
célula. O acesso ao formulário deve ser conseguido através
do uso de um botão de comando. As alíneas que se seguem orientam
o desenvolvimento do formulário pretendido. À medida que
realiza as várias alíneas, experimente o seu resultado no
formulário.
2.1. Crie um novo formulário
no editor do Visual Basic e adicione os controlos que se indicam para estruturar
o aspecto do formulário segundo a figura abaixo.
-
Três rótulos com os textos Função:,
Resultado:
e Guardar em:.
-
Uma caixa de combinação de nome
ComboBox1.
-
Uma caixa de texto de nome TextBox1
associada ao rótulo
Resultado.
-
Uma caixa de texto de nome TextBox2
associada ao rótulo
Guardar em.
-
Um botão de comando de nome CommandButton1.
2.2. À semelhança
do exercício anterior, crie um botão de comando que apresente
o novo formulário.
2.3. Para inicializar a caixa de
combinação e limpar as caixas de texto do formulário,
defina o evento Initialize como se segue:
Option Explicit
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Soma"
ComboBox1.AddItem "Média"
ComboBox1.AddItem "Máximo"
ComboBox1.AddItem "Mínimo"
ComboBox1.AddItem "Células
Não Vazias"
TextBox1 = ""
TextBox2 = ""
End Sub
2.4. Defina o evento Click
do botão de comando como se segue:
Private Sub CommandButton1_Click()
Range(TextBox2).Value
= TextBox1
Unload Me
End Sub
2.5. Defina o evento Change
da caixa de combinação como se segue. O evento Change
ocorre sempre que o conteúdo da caixa de combinação
muda.
Private Sub ComboBox1_Change()
Select Case ComboBox1.ListIndex
Case 0
TextBox1 = CélulasSoma(Selection)
Case 1
TextBox1 = CélulasMédia(Selection)
Case 2
TextBox1 = CélulasMáximo(Selection)
Case 3
TextBox1 = CélulasMínimo(Selection)
Case 4
TextBox1 = CélulasNãoVazias(Selection)
End Select
End Sub
2.6. Para concluir a funcionalidade
do formulário é necessário definir os vários
procedimentos referidos na alínea anterior. Segue-se o exemplo para
o procedimento CélulasSoma.
Function CélulasSoma(rng
As Range)
Dim celula As Range
Dim soma As Integer
soma = 0
For Each celula In rng
soma = soma + celula.Value
Next
CélulasSoma =
soma
End Function