Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo:
Nesta aula vamos desenvolver um aplicativo computacional usando Visual Basic for
application (VBA) do Excel 2007 para resolver o algoritmo do Método da Posição Falsa.
1) Inicie o aplicativo Microsoft Excel 2007. Você verá a tela à seguir. Se você ainda
não está visualizando a guia “Desenvolvedor”, terá que habilitá-la para poder
acessar o VBA;
8) Feche o aplicativo Excel 2007 para que sua configuração seja aceita e em seguida
abra novamente o Excel. Em seguida, clique na guia “Desenvolvedor”.
9) Para abrir o VBA, pressione o ícone . Você veráa janela do VBA mostrada na
figura a seguir.
10) Na janela do Microsoft Visual Basic, no menu Inserir, escolha UserForm, conforme
indica a figura;
11) A próxima tela encontrada é a mostrada na seguinte figura com indicação dos
objetos rótulo, caixa de texto e botão de comando;
Label ou
Rótulo
Command Button ou
Botão de Comando
TextBox ou
Caixa de Texto
12) Vamos inserir 6rótulos (Label), 6 caixas de texto (TextBox) e dois botões de
comando (CommandButton).As caixas são para os dados de entrada: função a, b,
TOL eN0 e para o dado de saída p. Estas caixas e os botões, serão inseridos na
janela UserForm1. Para fazer a inserção de um rótulo, posicione o cursor do mouse
sobre o rótulo, indicado na figura acima, clique no botão esquerdo do mouse e
arraste para a janela do Form e então solte o botão do mouse. O procedimento é
igual para a inserção de caixas de texto e botões de comando. Quando inserimos o
primeiro rótulo, podemos observar que dentro do mesmo vem escrito “Label1”.
Para trocar o que vem escrito, usamos a janela Propriedades (Properties). Na linha
onde temos a propriedade “Caption”, escrevemos na linha ao lado direito o que
desejarmos. Quando você desejar fazer alteração de propriedades de algum
objeto (Rótulo, Caixa de Texto, Botões, etc.) em primeiro lugar clique com o
mouse sobre este objeto para marcá-lo. Nos seis rótulos, escreveremos
“Função”,“a”, “b”, “TOL”, “N0” e “p”, respectivamente. As caixas de texto, por
enquanto, deverão ser deixadas em branco.Para os botões o processo é semelhante.
Tente deixar o UserForm1 como mostra a figura.
13) Para mudar o nome“UserForm1” para “Método da Posição Falsa”, clique na parte
azul do UserForm1, em seguida clique na propriedade “Caption” na janela
“Properties” eentão faça a alteração. Seu UserForm deverá estar semelhante ao
mostrado na figura a seguir. A interface com o usuário é este UserForm que
acabamos de construir. Os passos seguintes, irãodescrever como construir o módulo
para o funcionamento do nosso aplicativo.
14) Antes de continuarmos, vamos salvar a pasta do Excel. Para retornar à janela das
planilhas, clique no ícone do Excel que está no canto esquerdo superior da tela
como mostra a figura a seguir.
15) Crie na pasta “Meus documentos” uma pasta onde você irá salvar seu aplicativo.
Clique então no ícone . Você verá a caixa de mensagem a seguir. Para que você
possa salvar seu arquivo com o projeto VBA, você terá que escolher a opção
“Não”.
16) Na caixa de diálogo “Salvar como”, clique na seta de opções de “Salvar como
tipo”. Escolha a opção “Pasta de Trabalho Habilitada para Macro do Excel”. Veja
as indicações na figura a seguir. Em seguida escolha um nome para sua pasta e
salve-a no local escolhido por você.
19) A rotina que desejamos que seja executada ao pressionarmos esse botão, deverá
estar escrita entre essas duas linhas. A primeira linha indica o início da rotina e o
nome desta, que no nosso caso é “CommandButton2”. O comando “Click” indica
que esta rotina será executada quando pressionarmos esse botão. Entre estas duas
linhas escreva:“End” que é o comando que encerra o aplicativo. Ficará como
mostra a figura.Para voltar a visualizar o UserForm, clique no ícone indicado pelo
balão na figura.
Para visualizar o
UserForm
20) Vamos agora verificar se o botão “Sair”já está funcionando. Para tanto, pressione
na barra de ferramentas o botão “start”. O projeto é então executado.
Pressione o botão sair. A execução é então encerrada.
21) Para facilitar os testes durante a execução, vamos digitar nas caixas de texto,dados
para a execução do aplicativo. Digite-os como mostra a figura. Para digitar, basta
clicar sobre a caixa, esperar uns instantes e clicar novamente. O cursor se
posicionará dentro da caixa, esperando a digitação.
22) Vamos agora escrever o código para o botão “Executar”: (as explicações sobre o
que cada parte do programa irá fazer aparecerão como comentários no próprio
código).
Obs.: a primeira e última linhas (em cor verde) do código já aparecem quando
clicamos duplo no botão Executar. Não incluí-las novamente.
'Limpar a plan1
Worksheets("Plan1").Range("B2:G500000").Clear
'Cálculo de f(a)
FunçãoA = Função
FunçãoA = Replace(FunçãoA, "exp", "y")
FunçãoA = Replace(FunçãoA, "x", a)
FunçãoA = Replace(FunçãoA, "y", "exp")
FunçãoA = Replace(FunçãoA, ",", ".")
Cells(2, 3).Formula = FunçãoA
FA = Cells(2, 3)
'Cálculo de f(b)
FunçãoB = Função
FunçãoB = Replace(FunçãoB, "exp", "y")
FunçãoB = Replace(FunçãoB, "x", b)
FunçãoB = Replace(FunçãoB, "y", "exp")
FunçãoB = Replace(FunçãoB, ",", ".")
Cells(2, 5).Formula = FunçãoB
FB = Cells(2, 5)
'Vamos testar se f(a).f(b) < 0 e colocar uma mensagem caso não seja verdadeiro
If FA * FB > 0 Then
MsgBox "f(a).f(b)>0 - Fornecer outros valores para a e b"
End
End If
'Passo 3:
p = (a * FB - b * FA) / (FB - FA)
Cells(i + 1, 6) = p
FunçãoP = Função
FunçãoP = Replace(FunçãoP, "exp", "y")
FunçãoP = Replace(FunçãoP, "x", p)
FunçãoP = Replace(FunçãoP, "y", "exp")
FunçãoP = Replace(FunçãoP, ",", ".")
Cells(i + 1, 7).Formula = FunçãoP
FP = Cells(i + 1, 7)
'Passo 4:
If FP = 0 Or Abs(FP) < TOL Then
TextBox6.Text = p
MsgBox "Procedimento efetuado com sucesso" 'Caixa de mensagem
Exit Do
Else
'Passo 5:
i=i+1
'Passo 6:
If FA * FP > 0 Then
a=p
FA = FP
Cells(i + 1, 2) = a
Cells(i + 1, 3) = FA
Cells(i + 1, 4) = Cells(i, 4)
Cells(i + 1, 5) = Cells(i, 5)
Else
b=p
FB = FP
Cells(i + 1, 3) = b
Cells(i, 3) = b
Cells(i + 1, 2) = Cells(i, 2)
Cells(i + 1, 2) = Cells(i, 3)
EndIf
EndIf
Loop
'Passo 7
If i > N Then
MsgBox "Solução não encontrada" 'Caixa de mensagem
EndIf
End Sub
23) Os resultados para o primeiro exemplo devem ser como os mostrados na figura a
seguir.