Buscar

visual basic

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 154 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 154 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 154 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Microsoft Visual Basic 4.0 1
 
 
 
Módulo 1 
 
Criando Aplicações 
Visual Basic 
 
 
 
 1.1 Programação Procedural Versus Programação 
 Orientada a Eventos 
 
 
 Na programação procedural, ou seja, baseada nas chamadas de 
procedimentos/rotinas, a aplicação em si inicia na primeira linha do código e 
segue um fluxo determinado pelo próprio programa, durante a sua execução. 
 Devido a essa característica, o usuário se vê amarrado à forma de 
trabalho da aplicação. 
 Na programação orientada a eventos, as ações do usuário (comumente 
denominadas eventos) determinam o fluxo de execução do programa, ou seja, 
qual procedimentos/rotina será chamada. 
 
 Isso significa que um programa desenvolvido com base nessa técnica, 
as chamadas das rotinas dependem dos eventos que ocorrem, em outras 
palavras, dependem do que o usuário fará ou não. 
 
 Portanto, com base nisso, podemos definir um evento como sendo uma 
ação reconhecida por um controle, que nada mais é que um objeto adicionado 
ao formulário. Os diversos controles do Visual Basic (campos de entrada, lista 
de opções, caixas de seleção, etc.) reconhecem e respondem a um conjunto 
predefinido de eventos. 
 
 
 Para que um controle responda a um evento de 
uma forma particular, você deverá escrever um 
procedimento na linguagem Visual Basic e atribuir 
esse código ao evento desejado. 
 
 
 
 Por exemplo, você pode escrever uma rotina para avançar para o 
próximo registro de uma tabela de dados assim que o botão identificado pela 
Microsoft Visual Basic 4.0 2
legenda Avança de um formulário for pressionado. Você então atribui o nome 
dessa rotina ao evento Click do botão. Assim, toda vez que o botão for 
pressionado através de um clique do mouse, a rotina será chamada. Após o 
término de sua execução, haverá o retorno automático ao formulário. 
 
 Podemos perceber então que o primeiro passo no desenvolvimento de 
uma aplicação no Visual Basic consiste na criação dos formulários, aplicando-
lhes os controles (botões de ação, menus, caixas de listagem, caixas de 
combinação, etc.). 
 Após isso passamos ao desenvolvimento das rotinas que serão 
vinculadas aos controles do formulário. 
 
 Note que essa técnica difere do processo antigo, em que primeiro o 
programador definia o que seria feito pelo programa (desenvolvia as rotinas), 
para depois pensar na interface com o usuário. Agora o mesmo programador 
sentir-se-á mais livre da árdua tarefa de elaboração dessa interface, já que o 
Visual Basic executa a maior parte do processo, tendo assim mais tempo para 
se concentrar nas rotinas principais do programa. Isso torna a tarefa de 
desenvolvimento de aplicações mais produtiva. 
 
 Do lado do usuário, um programa orientado a eventos é mais fácil de 
assimilar e utilizar, pois ele reflete a maneira como uma pessoa trabalharia no 
mundo real. Não há necessidade de se adaptar ao aplicativo. 
 
 
 1.2 Criando um programa Visual Basic 
 
 Prática : 
 
 Adicionar no formulário : 
 
 1 command : Propriedade Caption = &OK 
 1 Label : Propriedade Caption = Nome 
 1 Textbox : Limpar Propriedade Text 
 1 Label : Propriedade Caption = Endereço 
 1 Textbox : Limpar Propriedade Text 
 
 
 Nomeá-los :Na janela de propriedades colocar no campo Name o nome 
com o prefixo indicativo do tipo de objeto. 
 
 
 
 
 
 
Microsoft Visual Basic 4.0 3
Exemplos: 
 
Objetos Prefixo Exemplo 
form frm frm_cliente 
check box chk chkapenasleitura 
combo box cbo cboidioma 
image img imgicon 
label lbl lblnome 
menu mnu mnufileopen 
text box txt txtnome 
 
 
 
Dica: Para chamar o Help clique no ícone e tecle F1 
 
 
 
 1.3 Algumas Propriedades 
 
 Podemos defini-las em tempo de projeto ou em tempo de execução: 
 
• Tempo de Projeto : No objeto lblnome - clique sobre o objeto uma vez. 
 Propriedade caption : vai para janela de propriedades. 
 Resultado : &NOME ⇒ NOME 
 
( Tecla de Atalho ALT+N ) 
 
• Tempo de Execução : No objeto txtnome - dê um double clique no objeto. 
No evento txtnome_click( ) - colocar : 
 txtnome.text = “BOCA” ou lblnome.caption = 
txtnome.text 
 
 
 Sempre: <nome objeto.propriedade> = <valor>. 
 
 
 
 Executar ⇒ Clicar sobre o Label Nome. 
 
 
 No objeto Form colocar : 
Caption exemplo 
Name frmexemplo 
Backcolor ( escolher ) 
Fillstyle ( escolher ) 
Microsoft Visual Basic 4.0 4
 
 
Uma proprieddade de um objeto1, pode ser alterada 
em tempo de execução por outro objeto2 
 
 
 
 1.4 Métodos 
 
 
 Os métodos determinam a realização de uma ação para um determinado 
objeto. Essa ação quem define é o programador. 
 
Exemplos : 
 
 txtnome.setfocus { posiciona o ‘foco’ para a caixa de texto do 
 objeto txtnome}. 
 
 lblcodigo.move 0,0 { posiciona o objeto lblcodigo para as 
 coordenadas 0,0}. 
 
 txtfrase.textwidth { retorna o tamanho da string do objeto 
txtfrase}. 
 
 frmcliente.hide { esconde, mais permanece na memória 
 principal, o objeto frmcliente}. 
 
 
 
 
 
 
 1.5 Eventos 
 
 É uma ação reconhecida por um formulário ou por um controle, o agente 
da ação pode ser : o usuário ou o código. 
 
Exemplos : 
 
 click 
 dblclick 
 keypress 
 load 
 gotfocus 
 lostfocus 
 
Microsoft Visual Basic 4.0 5
 1.6 Formulários e Controles Básicos 
 
 Formulários 
 
 O usuário interage com os controles no formulário para obter resultados 
 
 
 Algumas Propriedades para Formulários 
 
 backcolor ⇒ cor do fundo 
 borderstyle ⇒ estilo da moeda 
 caption ⇒ cabeçalho 
 name ⇒ nome do objeto 
 
 
 Alguns Métodos para Formulários 
 
 hide ⇒ esconde 
 nome ⇒ movimenta o formulário 
 print ⇒ imprime 
 setfocus ⇒ ativa o formulário 
 show ⇒ mostra na tela o formulário ( semelhante 
 chamada de rotina ). 
 
 
 Alguns Eventos para Formulários 
 
 click ⇒ 1 click 
 dblclick ⇒ 2 clicks 
 gotfocus ⇒ quando ele ganha o foco 
 load ⇒ carrega 
 mousedown ⇒ 1 click para baixo 
 mouseup ⇒ 1 click para cima ( larga o botão ) 
 unload ⇒ descarrega 
 
 
 
 
Obs. : Para obter mais informações, clique no formulário e tecle <F1>. 
 
 
 
Microsoft Visual Basic 4.0 6
 Controle Label 
 
 
 Mostra uma informação estática ( um rótulo). 
 
 Exemplo : Fornecer instruções ao usuário. 
 
 Nome 
 
 ↑ ↑ 
 label textbox 
 
 
 Algumas Propriedades 
 
 caption ⇒ rótulo 
 font ⇒ tipo de letra 
 autosize ⇒ tamanho automático 
 appearance ⇒ aparência (2D,3D) 
 
 Alguns Eventos (mais usados) 
 
 click 
 dblclick 
 
 
 
 Controle Textbox 
 
 Usado para obter informação do usuário. 
 
 
 
Obs. : Você pode utilizar o textbox em conjunto com o controle 
 data, para exibir informações de um Banco de Dados 
 
 
 
 Algumas Propriedades 
 
 multiline ⇒ mais de uma linha 
 passwordchar ⇒ senha ( **** ) 
 Alguns Métodos 
Microsoft Visual Basic 4.0 7
 
 move ⇒ move o objeto 
 setfocus ⇒ deixa o objeto ativo 
 
 
 Alguns Eventos 
 
 change ⇒ qualquer alteração no campo 
 click ⇒ evento clique 
 gotfocus ⇒ evento ganho de foco 
 
 
 
 Controle Commandbutton 
 
 É utilizado para invocar uma ação. A maioria dos formulários possuem 
os controles OK e CANCEL 
 
 
 Algumas Propriedades 
 
 visible ⇒ visível ou não 
 default ⇒ irá indicar que o botão é o que irá ficar ativo 
 inicialmente quando o formulário for lido. ( note 
 que deverá existir apenas um controle de 
 comando default por formulário. 
 
 
 Controle Combobox 
 
 Permite que você selecione uma opção existente em uma lista pre-
determinada, digitando-os em uma caixa de texto associada a esta lista 
 
 
 Data 
 
 Permite acessar dados armazenados em um arquivo de Banco de 
Dados. 
 
 
 
 Algumas Propriedades 
Microsoft Visual Basic 4.0 8
 
 editmode 
 readonly 
 top 
 database 
 
 
 Menu 
 
 Permite a criação de menus personalizados para a sua aplicação, 
deixando-a com uma aparência mais profissional. 
 
 
 Algumas Propriedades 
 
 appearance 
 name 
 caption 
 index 
 
 
 Evento (único ) 
 
 click 
 
 
 Ole Container 
 
 Insere no formulário outros aplicativos ( som, .doc, planilha excel, etc). 
 
 
 Picture Box 
 
 O controle picture box é utilizado para exibir imagens de arquivos 
bitmap, icon e metafile. 
 
 
 Timer 
 
 Permite a você executar certas partes de seu código a intervalos de 
tempo. ( Background ) 
 
 Exemplo : A cada ‘ t ‘ segundos você pode verificar se foi realizada a 
inclusão de um nome ou você pode inserir a hora atual. 
Microsoft Visual Basic 4.0 9
 
 
File List Box 
 
 Apresenta uma caixa de listagem de itens. Seu ícone no toolbox 
corresponde à figura de uma folha com a ponta direita superior dobrada. Adiante 
faremos um exercício para melhor entendermos esse controle. 
 
 
 
 
 Prática 1 
 
 
 O Objetivo desta prática é fazer com que o aluno se familiarize com o 
ambiente e obtenha conceito básicos dos objetos do Visual Basic. 
 
 Vamos simular um pequeno editor de texto para que você entenda como 
o controle Timer vai realizando tarefas em segundo plano (background). 
 
 Dentro do seu aplicativo. Inclua no formulário : 
 
1 textbox propriedades ⇒ multiline = true 
 name = txtedit 
 scrollbar = 2-vertical 
 text = <apaga> 
 
1 timer propriedades⇒ interval = 1000(ms), 
 name = timer 
 
1 label propriedades ⇒ caption = <apagar> 
 name = lbltime 
 
 
 
 Na seção General (geral) inclua o seguinte código: 
 
 Public tempo as date 
 
 No procedimento sub form_load() inclua: 
 
 tempo = now 
 
 No procedimento timer_timer inclua: 
 
Microsoft Visual Basic 4.0 10
 lbltime.caption = format(now-tempo, “long time”) 
 
 Execute sua aplicação. 
 
 
 
 Prática 2 
 
 
 
 Para vermos como o controle FileListBox funciona, vamos fazer o 
seguinte: 
 
 Crie um objeto FileListBox em um novo formulário e dê a ele o Nome = 
File1 (Já é o nome default dele!). 
 Depois insira o seguinte código no evento click do formulário: 
 
 
 
Private Sub Form_Click () 
 
Dim nome As String, I As Integer, Msg As String ' Declarando variaveis. 
 
 File1.Pattern = "Arquivo.*" ' Setando a forma geral do nome do arquivo 
 
 For I = 1 To 8 ' oito vezes. 
 nome = "Arquivo." & I 
 Open nome For Output As FreeFile ' cria um arquivo vazio. 
 File1.Refresh ' abre e atualiza o file list box. 
 Close ' fecha ao arquivo. 
 Next I 
 
 Msg = "Tecle OK para remover os arquivos criados." 
 MsgBox Msg ' mostra mensagem. 
 Kill "Arquivo.*" ' Remove os arquivos de teste. 
 File1.Refresh ' atualiza o filelistbox. 
 
 
End Sub 
 
 Agora execute a aplicação. 
 
 Prática 3 
 
 
• Crie um formulário (form) {nomeie, escolha um caption} 
Microsoft Visual Basic 4.0 11
 
• Insira um textbox e um label {nomear, limpar textos} 
 
• No evento form_mousemove inclua o seguinte código: 
 
 Fillcolor = qbcolor (int (rnd * 15)) ‘ sortea-se uma cor para o fundo da 
 ‘circunferência 
 Fillstyle = int(rnd * 8) ‘ sortea-se um grid para a circunf. 
 Circle (x,y), 250 ‘ desenha um círculo 
 
 
 No evento Textbox_change() inclua: 
 
 Label_caption = textbox.text ‘o que for escrito no textbox sairá no 
caption ‘ do label 
 
 
 
 Prática 4 
 
 
 
• Crie um form {nome:login} 
 
• Desenhe o seguinte layout 
 
 
 Forneça seu nome e sua senha para logar: 
 
 Nome OK Command ⇒ cmd Ok 
 cmd 
Cancela 
 Senha Cancelar 
 
 
 
 
 Label Textbox ⇒ txtnome 
 txtsenha 
 
 
 
Obs .: Nomear todos os objetos 
 Limpar textos dos texbox’s 
 
Microsoft Visual Basic 4.0 12
 
 Inserir Código : 
 
 
cmdcancela_click() 
 msgbox “Esse botão cancela a aplicação” 
 end 
 
 
cmdok_click() 
 
 msgbox “Nome do usuário = “ & txtnome.text & “, senha = “& txtsenha.text 
 
txtsenha_change() 
 If txtnome.text<> “ ” and txtsenha.text<> “ “ 
 then cmdok.enable = true 
 endif 
 
txtnome_change() 
 If txtnome.text <> “ “ and txtsenha.text <> “ “ 
 then cmdok.enable= true 
 endif 
 
 
 
 
 Prática 5 
 
 
 
 
 Vamos fazer um programa em Visual Basic que calcule o número de 
dias (aproximado) vividos pelo usuário após ele ter fornecido a idade. 
 
 Adicione a um formulário (abra um novo projeto) 4 label’s, 2 textbox’s e 2 
command’s, conforme a figura abaixo : 
 
 
 
 
 
 Form1 
 
 
 Label1 Text1 
 
Microsoft Visual Basic 4.0 13
 Label2 Text2 
 
 
 Comand1 Comand2 
 
 Label3 
 
 Label4 
 
 
 
 A seguir ajuste as propriedades conforme a tabela a seguir : 
 
 
Objeto Propriedade Valor 
Label1 Autosize 
Caption 
Name 
TRUE 
Entre com seu nome : 
lblNome 
Label2 Autosize 
Caption 
Name 
TRUE 
Entre com sua idade : 
lblidade 
Label3 Autosize 
Caption 
Name 
TRUE 
(nenhum) 
lblNomeResposta 
Label4 Autosize 
Caption 
Name 
TRUE 
(nenhum) 
lblidadeResposta 
text1 Name 
Text 
txtNome 
(nenhum) 
text2 Name 
Text 
txtIdade 
(nenhum 
Command1 Caption 
Name 
Default 
&OK 
btnOK 
TRUE 
Command2 
 
 
Caption 
Name 
 
&Cancela 
btnCancela 
 
Form1 Caption 
Name 
Dias vividos 
Idade 
 
 
 
Obs : A propriedade “default” do objeto command1 está setada em “TRUE” 
para que inicialmente, quando o usuário teclar ENTER, acione o botão OK. 
 
 
Microsoft Visual Basic 4.0 14
 
 A seguir inserir o código 
 
 btnOK_click() 
 
 DIM idade as integer, dias as long 
 idade = val(txtidade.text) 
 dias = idade * 365 
 lblNomeResposta.caption = txtnome.text 
 lblidadeResposta.caption = “Você viveu até hoje aproximadamente “ 
 &dias& “dias.” 
 
 
 btnCancela_click() 
 end 
 
 
 
 Para executar : 
 
1. 4 
2. Criando um .EXE 
• Selecione opção Make EXE File do menu File. 
 
• Escolha Options. 
 
• No quadro Version Number podemos entrar com o número da versão 
do programa. 
 
• No quadro application podemos informar o nome do programa ou um 
ícone. 
 
• No quadro version information podemos comentar o programa. 
 
Clique OK duas vezes depois execute o programa através da pasta onde foi 
gerado o executável. 
 
 
 
 1.7 Criando Rotinas para Validação de Dados 
 
 
 
Como fazer para inibir a entrada de dados numéricos em um textbox alfabético 
e/ou a entrada de dados alfabéticos em um textbox numérico ? 
 
Microsoft Visual Basic 4.0 15
 
 
 Faça o seguinte, crie um novo formulário com apenas um objeto (um 
textbox) e no procedimento Keypress (para achá-lo clique sobre a seta da caixa 
de combinação denominada Proc) do objeto textbox e insira o código: 
 
 If keyascii >= asc(“0”) and keyascii <= asc(“9”) then keyascii = 0 
 
 Isso irá inibir a entrada de dados numéricos. 
 
 Asc(X) - retorna a ordem de X na tabela ascii, então, se o caractere 
teclado estiver entre 0 e 9 o campo é realimentado. 
 
 Para inibir entrada alfabética, insira o código a seguir em 
txtidade_keypress() : 
 
 If keyascii < asc(“0”) or keyascii > asc(“9”) then keyascii = 0 
 
 Para convertermos caracteres alfabéticos, por exemplonomes de 
pessoas, para maiúsculos fazemos: 
 
 Private Sub Text1_KeyPress(KeyAscii As Integer) 
 
 If KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Then 
 
 KeyAscii = 0 
 
 ElseIf KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then 
 
 KeyAscii = KeyAscii - 32 
 
 End If 
 
 
 
 
Módulo 2 
 
Trabalhando com 
Formulários 
 
 
 
Microsoft Visual Basic 4.0 16
 Cada formulário na sua aplicação é gravado com a extensão .FRM e 
contém: 
 
• As instâncias das propriedades do formulário e do controle. 
 
• Declaração das variáveis ao nível de formulário. 
 
Procedimentos e módulo “General”. {O código situado neste módulo pode ser 
“visto” por todos os procedimentos do formulário} 
 
 
 
 2.1 Configurando o Ambiente de Trabalho 
 Menu Tools/Options 
 
 
 Ambiente (Environment) 
 
 
 Grid do formulário(Form design grid) : determina o espaçamento do grid 
do formulário. 
 
 Janelas superiores(Windows on top) : Determina quais janelas sempre 
serão mostradas durante o projeto. 
 
 Exige declarações de variáveis(Require variable declaration) : Determina 
a obrigatoriedade de declaração de variáveis (cuidado !!!) 
 
 Checagem automática de sintaxe (Auto sintaxe check) : quando 
permitida fornece correção ao código durante implementação. 
 
 
 
 Project 
 
 Startup form : Indica qual formulário deverá ser executado incialmente. 
 
 
 
 
É comum o programador ter mais de um formulário 
em umaplicativo e com isso se esquecer de setar o início da 
execução para o formulário inicial. Vamos prestar atenção. 
 
 
Microsoft Visual Basic 4.0 17
 
 
 
 
 
 Editor 
 
 
 Fonte(Font) : Determina a fonte usada nos códigos. 
 Tamanho(Size) : Determina o tamanho da fonte usada nos códigos. 
 
 Cor do código(code color) : determina a cor do código. 
 
 
 2.2 Interagindo com o Usuário 
 
 
 2.2.1 Função MSGBOX 
 
 
 Mostra informações ou questionamento ao usuário. 
 
 Sintaxe : 
 
 MSGBOX (Mensagem, [botão],[Título do Botão]) 
 
 Mensagem - Informação enviada ao usuário. 
 
 Botão - Tipo de caixa de diálogo + tipo de ícone. 
 
 
Valor Tipo de Ícone 
16 ⊗ 
32 ? 
48 ! 
64 i 
 
 
 
Valor Tipo de Caixa 
0 OK 
1 OK, Cancela 
2 Aborta, Retorna, Ignora
Microsoft Visual Basic 4.0 18
3 Sim, Não Cancela 
4 Sim e Não 
5 Retorna e cancela 
 
 
 
 
 
Valor Botão Default Ativo 
0 1° Botão 
256 2° Botão 
512 3° Botão 
 
 
 
 A função MSGBOX irá retornar um valor baseado no tipo de caixa 
escolhida. 
 
 
Botão Valor(constantes) 
OK vbok(1) 
Cancela vbcancel(2) 
Aborta vbabort(3) 
Retorna vbretry(4) 
Ignore vbignore(5) 
Yes vbyes(6) 
No vbno(7) 
 
 
Exemplo : 
 
 Inserir o seguinte código em um objeto cmdaqui com caption = clique 
aqui. 
 
 
 Clique Aqui 
 
 
 No evento click do objeto cmdaqui insira o código 
 
 
Private Sub cmdaqui_Click() 
 
Dim Resposta As Integer 
 
Microsoft Visual Basic 4.0 19
 Resposta = MsgBox("quer continuar?", 4 + 48 + 256, "mensagem") 
 
 If Resposta = vbYes Then MsgBox "Escolheu SIM", 0 + 48 + 0, "Resultado" 
 Else MsgBox "Escolheu NÃO", 0 + 48 + 0, "Resultado" 
 End Sub 
 2.2.2 Caixa de Entrada (INPUTBOX Function) 
 
 
 Esta função fornece um meio fácil de obter informações do usuário. É 
semelhante ao controle textbox, difere na emissão de uma caixa de diálogo. 
 
 
 Sintaxe : INPUTBOX (Mensagem, Título da caixa, Mensagem Default) 
 
 Exemplos: 
 
• Crie um objeto command (cmd) 
 
• No evento Dbclick insira o código 
 
 Private Sub Form_DblClick() 
 
 Dim arquivo As String 
 
 
 arquivo = InputBox("Entre com o nome do arquivo", "Abrir Arquivo", "C:\") 
 MsgBox "Arquivo " & arquivo & " aberto ! " 
 
 End Sub 
 
 
 
 
Dica : Para mais informações, veja “INPUTBOX” no Help 
 
 
 
 
 2.3 Gerenciando Formulários 
 
 
 Na maioria dos aplicativos a interface com o usuáro é composta por 
mais de um formulário. 
 O formulário “STARTUP” é mostrado automáticamente quando a 
aplicação VB é inicializada. 
Microsoft Visual Basic 4.0 20
 
 
 
 
 
Ação Método ou Função 
Lê um formuláro na memória mas não 
mostra na tela 
LOAD 
Lê e mostra um formulário SHOW 
Mostra um formulário já lido SHOW 
Esconde um formulário mostrado na tela HIDE 
Esconde e tira da memória um 
formulário 
UNLOAD 
 
 
 Exemplo : 
 
 
Frmform1.show Frmform1.hide 
Load Frmform1 Unload Frmform1 
 
 
 
 Formulário Modal ou Não-Modal 
 
 
 Um formulário Modal não permite que o usuário interaja com outros 
formulários da aplicação ao mesmo tempo (como o “Save File as”) 
 
 Um formulário Não-Modal permite que o usuário escolha entre os 
formulários. 
 O método Show seta um formulário como modal ou não modal. 
 
 Exemplo: 
 
 Frmform1.show vbmodeless ‘ não modal 
 Frmform1.show vbmodal ‘ modal 
 
 
 
 
Terminando uma aplicação 
 
 END faz um Unload em todos os formulários e termina a aplicação. 
 
Microsoft Visual Basic 4.0 21
 
 
 
 
 Prática 6 
 
 
 
 Faça um aplicativo que calcule raízes de um polinômio de grau dois. O 
polinômio é da forma : 
 
 AX2 + BX + C = 0 
 
 Relembrando : 
 
 A,B coeficientes da equação 
 C termo independente 
 
 Resolver uma equação do 2° grau é encontrar o valor ou os valores 
que se colocados no lugar da variável X, tornam a sentença verdadeira. 
 A fórmula para encontra as raízes (X1,X2) é a seguinte: 
 
 X = - B ± SQR( delta) , Delta = B^2 - 4AC 
 2A 
 
 Os resultados deverão ser fornecidos por outro formulário. 
 
 
 
 
 Você deverá fazer esta prática sozinho! 
 
 Mesmo sem conseguir você estará assimilando 
com maior ênfase as características da programação 
orientada a evento e os “macetes” do ambiente Visual Basic. 
 Deixe para olhar a resolução depois que você “eventualmente” se 
perdeu! 
 
 
 
 
 
 Resolução: 
 
 Passos : 
Microsoft Visual Basic 4.0 22
 
 Crie um formulário com as seguintes propriedades : 
 
 Name - Frmmain 
 Caption - Equação do 2° grau 
 
 
 
Objetos : 
 
Label 
 da Equação 
ientes A= 
 3 - Name lblB 
 Caption B= 
 - Name lblC 
o independente C= 
ular 
 
r 
 
 
 
 1 - Name lblDados
 Caption Dados
 2 - Name lblA 
 Caption Coefic 
 
 
 4 
 Caption Term
 
Command 
 
 1 - Name cmdcalc
 Caption &Calcular
 Default TRUE 
 2 - Name cmdsai
 Caption &Sair
 
 
Textbox 
 
 1 - Name TXTA 
 Text <vazio> 
Microsoft Visual Basic 4.0 23
 Maxlength 5 
 2 - Name TXTB 
 Text <vazio> 
 Maxlength 5 
 
 
double , delta as double, A as double, B 
 
 
 
 Raiz2 = (-(-b) - SQR(delta))/(2*A) 
 FrmResultado.txtx1.text = Raiz1 
Resultado.txtx2.text = Raiz2 
 FrmMain.Hide 
do.Show 
 Elseif Delta = 0 then 
 Raiz1 = (-(b) + SQR(delta))/(2*A) 
 FrmResultado.txtx1.text = Raiz1 
 FrmResultado.txtx2.text = Raiz2 
 FrmResultado.Show 
 Else 
 Msgbox ‘Não existem raízes reais !!!” 
 Endif 
 EndSub 
 
 CmdSair_click() 
 End 
 EndSub 
 
 
 A seguir crie outro formulário com as seguintes caracteristicas: 
Name FrmResultado 
Caption Resultado 
 
 3 - Name TXTC 
 Text <vazio>
 Maxlength 5 
 
Código 
 
 CmdCalcular_click() 
 
 DIM Raiz1 as double, Raiz2 as 
 as double, C as double 
 A = VAL (txta.text) 
 B = VAL (txtb.text)C = VAL (txtc.text) 
 Delta = (B*B) - 4*A*C 
 If Delta>0 then 
 Raiz1 = (-(-b) + SQR(delta))/(2*A) 
 
 
 Frm
 
 FrmResulta
 
 
 
 
 FrmMain.Hide 
 
 
 
 
 
 
 
 
Microsoft Visual Basic 4.0 24
 
 
 
 
 
me lblX1 
 = 
 
ult TRUE 
2 
 text <vazio> 
 
 
 Depois insira o código seguinte no evento click do objeto cmdvoltar 
 
 FrmMain.txta.text = “ “ 
 FrmMain.txtb.text = “ “ 
 FrmMain.txtc.text = “ “ 
 Frmresultado.Hide 
 FrmMain.Show 
 
 Execute a aplicação !!! 
Label 
 
 1 - Na
 Caption X1
 
 2 - Name lblX2 
 Caption X2 = 
 
Command 
 1 - Name Cmdvoltar 
 Caption &Voltar 
 Defa
 
Textbox 
 
 1 - Name txtx1 
 text <vazio> 
 
 2 - Name txtx
Microsoft Visual Basic 4.0 25
Módulo 3 
 
Aspectos de Programação 
Visual Basic 
 
 
 
 
 3.1 Atribuindo Valores 
 
 
 [LET] nome_da_palavra = <valor> 
 
 
 3.3 Variáveis 
 
 
 O que são variáveis ? 
 
 Toda linguagem de programação precisa de algum lugar para armazenar 
o resultado de seus cálculos ou simplesmente para controlar o fluxo do 
programa. 
 Assim como acontece na álgebra cotidiana, as linguagens de 
programação se valem de variáveis para armazenar dados na memória do 
computador. 
 Uma variável de memória nada mais é do que uma posição da memória 
do computador reservada exclusivamente para que sejam guardadas 
informações e dados. A essa posição de memória damos um nome para 
referência dentro do nosso programa, como por exemplo, NomeCliente. 
 Quem controla qual posição de memória do computador será reservada 
é a própria linguagem e o sistema operacional, ou seja, devemos apenas nos 
preocupar em nomear e declarar as variáveis. 
 
 E já que estamos falando de variáveis, quando formos nomeá-las, 
deveremos seguir algumas regras básicas: 
 
⇒ O nome precisa iniciar com uma letra. 
 
⇒ Somente são permitidas letras, números e o caractere de sublinhado. 
 Qualquer sinal de pontuação e espaço em branco será inválido. 
 
Microsoft Visual Basic 4.0 26
⇒ No Visual Basic 4.0, os nomes podem ter até 255 caracteres de comprimento. 
Isso significa que podemos ter nomes de variáveis bem descritivos, como por 
exemplo, PrimeiroNomedoCliente. 
⇒ Não podem coincidir com uma palavra reservada do Visual Basic, como 
nomes de funções ou procedimentos. 
 
⇒ Precisam ser únicos dentro do escopo atual, ou seja, não podemos ter duas 
variáveis com o mesmo nome dentro de uma rotina, porém, entre rotinas 
diferentes, isso é perfeitamente possível. 
 
 
 Escolha nomes sugestivos para as variáveis, de tal forma que 
descrevam sua função ou conteúdo que será armazenado nelas. 
 Por exemplo para uma variável onde seria armazenado o resultado do 
cálculo do salário de um funcionário, poderíamos escrever nSalarioFunc, em vez 
de X, Y ou Z. 
 
 
 3.4 Declaração de Variáveis 
 
 
 Dim Nomedavariavel [ as tipo de dados] 
 
 
 3.5 Tipos de Dados 
 
 
 Como toda linguagem de programação, o Visual Basic também possui 
vários tipos de dados aplicáveis às varáveis, que definem quais os valores que 
essas poderão armazenar. 
 O Visual Basic 4.0 define 11 tipos de dados básicos, cada qual com suas 
características peculiares, como largura da faixa de dados, tamanho em bytes, 
etc. 
 
 A tabela a seguir relaciona todos esses tipos: 
 
 
Tipo de 
Dado 
Tamanho em Bytes Faixa de Valores 
Integer 2 Bytes - 32.768 a 32.767 
Long 4 Bytes - 2.147.483.648 a 2.147.483.647 
Single 4 Bytes - 3,402823E38 a - 1,401298E-45 (Val. 
Negativos) 
 1,401298E-45 a 3,402823E38 (Val. 
Positivos) 
Double 8 Bytes -1,79769313486232E308 a -
Microsoft Visual Basic 4.0 27
4,9406564584124E-324 
(Val. Negativos) 
4,9406564584124E-324 a 
1,79769313486232E308 
(Val. Positivos) 
Currency 8 Bytes - 922.337.203.685.477,5808 a 
 922.337.203.685.477,5807 
String 1 Byte por caractere De zero a 65.500 caracteres 
Em sistemas de 32 bits,máximo de 2E32 
caracteres. 
Byte 1 Byte 0 a 255 
Boolean 2 Bytes True (verdadeiro) ou False (falso) 
Date 4 Bytes Qualquer referência a objeto 
Variant 16 bytes + 1 byte para 
cada caractere 
Qualquer valor numérico, caractere, objeto ou 
valor nulo. 
 
 
 Os tipos de dados determinam o que você pode armazenar numa 
variável. 
 
 Por exemplo, você não pode entrar com uma expressão caractere numa 
variável do tipo numérico, nem tampouco digitar um número numa variável 
lógica. 
 
 Vejamos os detalhes dos tipos de dados mais comumente utilizados. 
 
 
 
 
 Tipos lnteger e Long 
 
 
 Esses dois tipos de dados permitem o armazenamento de valores 
numéricos inteiros, com os quais podemos efetuar cálculos e operações 
matemáticas. 
 A faixa de valores permitida para o tipo lnteger vai de -32.768 a 32.767, 
sendo portanto limitada para alguns tipos de operações. Variáveis desse tipo 
são muito úteis como contadores de loops For... Next, por serem de 
manipulação muito rápida pelo processador, pois necessitam de poucas 
instruções de máquina. 
 O tipo Long, por outro lado, abrange uma faixa muito maior de valores, da 
ordem de 2 milhões, conforme pode ser constatado pela tabela anterior. 
 
 
 
 
Microsoft Visual Basic 4.0 28
 Tipos Single e Double 
 
 
 Single e Double também são tipos de dados numéricos, porém permitem 
a manipulação de valores decimais, como pesos, unidades de medidas, etc. 
Como os tipos anteriores, podemos efetuar qualquer operação matemática com 
eles. 
 O que diferencia o tipo Single do tipo Double é a precisão nas casas 
decimais e a faixa de valores abrangida por cada um. Veja a tabela anterior 
para comparação. Variáveis do tipo Single são ditas de precisão simples, 
comumente chamadas apenas de variáveis de ponto-flutuante. Variáveis do tipo 
Double são denominadas variáveis de dupla precisão. 
 
 
 
 Tipo Currency 
 
 
 O Visual Basic possui um tipo de dado especial para tratamento de 
valores monetários, evitando-se assim erros de arredondamento durante 
cálculos matemáticos. Esse tipo de dado é chamado de Currency. Devemos 
utilizá-lo apenas para armazenamento de valores monetários. 
 Se num determinado cálculo, o valor resultante tiver mais de quatro casas 
decimais, as casas decimais extras (a partir da quinta casa) serão truncadas. 
Assim, o número 5402,105782 será armazenado como 5402,1057 numa variável 
do tipo Currency. 
 
 
 
 Tipo String 
 
 
 O tipo de dado string é certamente o mais utilizado. Ele possibilita que 
uma sequência de caracteres seja armazenada numa variável. 
 Essa sequência de caracteres pode conter desde letras do alfabeto até 
símbolos gráficos e números, muito embora não possamos efetuar cálculos com 
os números armazenados numa sequência. Devemos envolver a cadeia de 
caracteres com aspas ("). 
 Com variáveis do tipo caractere, é possível efetuarmos algumas 
operações de comparação, concatenação (junção) de duas ou mais seqüências 
de caracteres ou extração de uma parte da seqüência. 
 
 Não é possível, porém, efetuar cálculos matemáticos e aritméticos, já que 
qualquer número armazenado numa variável desse tipo será considerado como 
uma sequência de texto e não um valor numérico. 
 
Microsoft Visual Basic 4.0 29
 Podemos determinar um tamanho máximo para urna variável do tipo 
String, simplesmente adicionando um asterisco (*) seguido por um número que 
define o tamanho máximo em caracteres. 
 
 
 
 
 
 Por exemplo, para declarar uma variável strNomeCliente com um 
tamanho máximo de 50 caracteres, você escreveria: 
 
 
 
 Dim strNomeCliente As String * 50 
 
 
 Se for armazenada uma cadeia de caracteres menor que o tamanho 
máximo especificado, a variável será preenchida com espaços em branco à 
direita para completá-la. Se por outro lado, você tentar armazenar mais 
caracteres do que o permitido, os excedentes serãodescartados. 
 
 
 
 Tipo Byte 
 
 
 Variáveis do tipo Byte são também numéricas, mas somente podem 
armazenar números na faixa de O a 255. Esse tipo de variável também , é útil 
em contador de loops For... Next pequenos, cujo ciclo de repetição não 
ultrapasse 255. 
 
 
 
 Tipo Boolean 
 
 
 Uma variável do tipo Boolean pode conter apenas dois tipos de valores: 
True (verdadeiro) ou False (falso). São muito utilizadas como sinalizadores, ou 
seja, variáveis que indicam se uma determinada condição lógica retornou ou 
resultou num desses dois valores. Veja o pequeno exemplo a seguir : 
 
 Dim blnrepete As Boolean 
 blnrepete = True 
 While blnrepete 
Microsoft Visual Basic 4.0 30
 . 
 . 
 Wend 
 
 
 
 
 Tipo Date 
 
 
 Variáveis do tipo data permitem o armazenamento de valores que 
representam uma data do calendário ou um horário. Para armazenar uma data 
numa variável, especifique-a entre "#", como no seguinte exemplo: 
 
 
 dtDataVencimento = #05/06/95# 
 dthora = #05:25# 
 
 
 Com valores do tipo data é possível executarmos adição ou subtração, 
para assim calcularmos uma nova data. Por exemplo: 
 
 dtDataHoje = Now 
 dtDataAmanha = dtDataHoje + 1 
 dtDataOntem = dtDataHoje - 1 
 
 Tipo Object 
 
 
 Variáveis do tipo Object podem fazer referência a objetos definidos pelo 
Visual Basic ou mesmo campos de uma base de dados, como dados OLE ou 
binários. Elas são armazenadas em endereços de 32 bits. Para esse tipo de 
variável, precisamos utilizar o comando de atribuição Set para assinalar valores 
a ela, em não apenas o sinal de igualdade. 
 
 
 Tipo Variant 
Microsoft Visual Basic 4.0 31
 
 O dado Variant é um tipo especial, já que ele permite que qualquer valor 
seja armazenado. Se você declara uma variável mas não especifica seu tipo de 
dado, o Visual Basic automaticamente atribui a ela o tipo Variant. Assim, o dado 
que você armazenar na variável é que definirá o seu tipo naquele momento. 
 
 Podemos atribuir também um valor nulo à variáveis variant, especificando 
a palavra-chave Null à direita do sinal de igual. Diversas funções podem ser 
utilizadas para determinar qual o tipo de dado armazenado numa variável 
Variant. 
 
 
 
 3.6 Constantes 
 
 
 Agora que já falamos de variáveis, vejamos as constantes, que são o 
oposto das primeiras. 
 As constantes, diferentemente das variáveis, não podem ter seus valores 
alterados durante a execução da aplicação. Elas são utilizadas principalmente 
para fornecer maior legibilidade ao código-fonte, substituindo expressões 
numéricas ou caractere mais complexos e de difícil entendimento. 
 
 Um dos tipos de constantes mais famoso é o famigerado valor de PI 
(3,14159265358979... ). 
 Como convenção, adotamos letras maiúsculas para os nomes de 
constantes, mas isso não é regra geral. 
 Essa é uma prática comum para os programadores em C/C++, Pascal ou 
mesmo Assembly. 
 
 
 3.7 Matrizes 
 
 
 Dim NomeMatriz (n,m) As <tipo de dados> 
 
 Exemplo: 
 Dim idade(30) As integer 
 Dim nota( 60,4) As double 
 
 
 
 
 3.8 Tipos definidos pelo usuário 
 
Microsoft Visual Basic 4.0 32
 Semelhantemente às variáveis estruturadas da linguagem C/C + + ou às 
variáveis registro do Pascal, o Visual Basic oferece a capacidade de definirmos 
nossos próprios tipos de dados. 
 
 Definir um novo tipo de dado pode ser muito útil quando precisamos 
agrupar vários tipos de dados diferentes mas correlacionados numa única 
variável, facilitando assim seu tratamento. Você poderia pensar que as matrizes 
resolveriam esse problema, mas nesse caso não são tão convenientes. 
 
 Para criar uma variável com um novo tipo de dado você utiliza o comando 
Type, colocado na seção Declarations do módulo. Vejamos um exemplo 
prático, onde criaremos uma variável tipada chamada tpcliente, contendo outras 
variáveis para armazenamento do código do cliente, do endereço do cliente, 
nome da firma, cidade onde reside, salário e departamento onde trabalha. 
 
 Type tpcliente 
 
 intCodigoCliente As Integer 
 strendereco As String * 50 
 strcidade As String * 25 
 strempresa As String * 40 
 strdepto As String * 20 
 sglsalario As Single 
 
 End Type 
 
 Aqui podemos dizer que a variável tpcliente comporta-se como um 
registro completo de um banco de dados e as diversas variáveis que a 
compõem, são os campos do registro. 
 
 
 tpCliente 
 
 intCodigoCiiente 
 
 strendereco 
 
 strcidade 
 
 strempresa 
 
 strdepto 
 
 sglsalario 
 
 
Microsoft Visual Basic 4.0 33
 Após ter sido criado o tipo de dado definido pelo usuário, você deverá 
ainda declarar a(s) variável(eis) desse tipo específico, como ocorre com as 
demais variáveis: 
 
 Dim DadosCliente As tpcliente 
 
 Cada campo da variável estruturada é acessado através de uma sintaxe 
própria. Precisamos especificar a variável estruturada seguida pela variável 
campo desejada, separadas por um ponto. Por exemplo, para acessar o campo 
strEndereco, deveríamos especificar a seguinte expressão: 
 
 DadosCliente.strEndereco = "Av. Paulista, no 1815, 6o andar" 
 
 Se você tiver duas variáveis do mesmo tipo de dado definido pelo usuário, 
poderá assinalar o valor de uma à outra apenas com o sinal de atribuição (=), 
similarmente às variáveis simples. Por exemplo, suponhamos que você tenha 
criado um tipo de dado chamado ContaCorrente, e que a partir dele tenha 
declarado as variáveis ContaBanco1 e ContaBanco2. Assim você poderia 
atribuir todos os valores dos campos da variável ContaBanco1 a ContaBanco2 
através da expressão: 
 
 ContaBanco2 = Contabancol 
 
 Você pode também ter campos numa variável tipada que é uma matriz de 
dados. Por exemplo: 
 
 Type ConsumoMensal 
 strmes(12) AS String * 15 
 intconsumo(12) As Integer 
 End Type 
 
 Aqui nós temos um novo tipo de dado que nos permite entrar com os 
consumos mensais de energia elétrica, e quem sabe desenvolver um sistema 
aplicativo que nos auxiliará a economizar energia. 
 
 Um outro recurso interessante é que você pode ter uma estrutura de 
dados dentro de outra estrutura. Veja o seguinte exemplo: 
 
 Type DadosPessoais 
 strNome AS String * 20 
 strSobreNome As String * 40 
 btIdade As Byte btEstadoCivil As Byte 
 End Type 
 
 Type DadosEndereco 
 strrua As String * 50 
 strBairro As String * 30 
Microsoft Visual Basic 4.0 34
 strCidade As String * 30 
 strEstado AS String * 2 
 End Type 
 
 
 Type Funcionário 
 DadosFuncionario As DadosPessoais 
 DadosResidencia As DadosEndereco 
 btCodigoEmpresa As Byte 
 btCodigoCargo As Byte 
 End Type 
 
 
 Type Empresa 
 strNomeEmpresa As String * 50 
 EnderecoComercial As DadosEndereco 
 End Type 
 
 
 Aqui definimos duas estruturas básicas, denominadas DadosPessoais e 
DadosEnderecos. A partir delas,pudemos montar as outras duas estruturas de 
forma mais organizada e legível. 
 
 
 Obviamente, para saber o nome do funcionário, teríamos de escrever a 
expressão: 
 
 Funcionario.DadosFuncionario.strNome = "William Pereira Alves" 
 
 
 
 
Microsoft Visual Basic 4.0 35
 
3.9 Operadores 
 
 
 
Aritméticos 
 
 
Operador Descrição 
+ Efetua a soma entre dois ou mais números 
- Efetua a subtração entre dois ou mais números 
* Efetua a multiplicação entre dois ou mais números 
/ Efetua a divisão entre dois números e resulta num número de 
ponto-flutuante 
\ Efetua a divisão entre dois números e resulta num número 
inteiro 
^ Efetua a exponênciação 
Mod Retorna o resto de uma divisão não exata entre dois números 
 
 
 
 
Lógicos 
 
 
Operador Descrição 
And Efetua a operação lógica E. Se ambas as expressões forem 
verdadeiras, então o resultado será verdadeiro 
Or Efetua a operação lógica OU. Se uma das expressões (ou 
ambas) for verdadeira, então o resultado será verdadeiro 
Not Efetua a operação lógica NÃO. Inverte o estado lógico de uma 
expressão, se ela for verdadeira, torna-a falsa e vice-versa 
Xor Efetua a operação OU EXCLUSIVO. Se uma das expressões for 
verdadeira, o resultado será verdadeiro, porém se ambas forem 
verdadeiras,o resultado será falso 
Eqv Efetua a operação de equivalência de expressões. O resultado 
será verdadeiro somente se ambas as expressões forem 
equivalentes. 
Imp Efetua a operação de implicação lógica. Retorna verdadeira se 
uma expressão implica em outra 
 
 
Tabela do operador lógico Imp 
Microsoft Visual Basic 4.0 36
A primeira expressão é A segunda expressão é O resultado será 
Verdadeiro Verdadeiro Verdadeiro 
Verdadeiro Falso Falso 
Verdadeiro Nulo Nulo 
Falso Verdadeiro Verdadeiro 
Falso Falso Verdadeiro 
Falso Nulo Verdadeiro 
Nulo Verdadeiro Verdadeiro 
Nulo Falso Nulo 
Nulo Nulo Nulo 
 
 
 
Operadores Relacionais 
 
 
Operador Descrição 
< Menor que 
> Maior que 
<= Menor que ou igual a 
>= Maior que ou igual a 
= Igual a 
<> Diferente de 
 
 
 
 String 
 
 
 “&” ou “+” ⇒ concatenam duas strings 
 msgbox “exemplo” & “concatenação” ⇒ Exemploconcatenção 
 
 
 
 
Prática 7 
 
 
 Vamos fazer uma aplicação que some dois vetores com 8 elementos do 
tipo inteiro cada um. Lembre-se que os vetores na linguagem Visual Basic inicia-
se com índice zero (0). 
 
 Crie um formulário com os seguintes objetos: 
Microsoft Visual Basic 4.0 37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Calcular 
Entrada do vetor A 
Entrada do Vetor B 
 Ok 
 Ok 
Resultado 
cmdok 
cmdok2 
txtentrada txtentrada2 
lblentrada 
cmdcalcular 
 
 
 Tente fazer sozinho! Apenas em caso de emergência consulte a 
resolução. 
 
 
 
 
 Resolução: 
 
 Nomeie os objetos e depois insira o seguinte código: 
 
 
 Na seção General (declarations) insira: 
 
Option Explicit ‘ na parte General (declarations) 
 
 Dim vetorA(8), vetorB(8), vetorC(8) As Integer 
Microsoft Visual Basic 4.0 38
 Dim i As Integer 
 
 
 
 
 Na rotina click do botão calcular: 
 
Private Sub cmdcalcular_Click() 
 
 lblsaida.Caption = "Resultado = " 
 For i = 0 To 7 
 vetorC(i) = vetorA(i) + vetorB(i) 
 
 lblsaida.Caption = lblsaida.Caption & " " & vetorC(i) 
 Next i 
 
End Sub 
 
 
 
No evento click do primeiro botão Ok do formulário: 
 
Private Sub cmdok_Click() 
 
 If i <= 8 Then 
 
 
 vetorA(i) = Val(txtentrada.Text) 
 i = 1 + i 
 txtentrada.Text = "" 
 txtentrada.SetFocus 
 If i = 8 Then 
 
 txtentrada.Enabled = False 
 txtentrada.Text = "" 
 cmdok.Enabled = False 
 cmdok2.Enabled = True 
 txtentrada2.SetFocus 
 i = 0 
 End If 
 
 End If 
 
 No evento click do segundo botão Ok: 
 
Private Sub cmdok2_Click() 
 
Microsoft Visual Basic 4.0 39
 If i <= 8 Then 
 
 vetorB(i) = Val(txtentrada2.Text) 
 
 i = i + 1 
 txtentrada2.Text = "" 
 txtentrada2.SetFocus 
 
 If i = 8 Then 
 
 txtentrada2.Enabled = False 
 txtentrada2.Text = "" 
 cmdok2.Enabled = False 
 End If 
 
 End If 
 
End Sub 
 
 
 No evento load do formulário: 
 
Private Sub Form_Load() 
 
 
 lblentrada.Caption = "Entrada do vetor A" 
 lblentrada2.Caption = "Entrada do vetor B" 
 
End Sub 
 
 
Microsoft Visual Basic 4.0 40
 
 
Prática 8 
 
 
Fazer uma aplicação que simule uma calculadora, as operações possíveis 
serão: 
 
 + soma 
 - subtração 
 / divisão com resto 
 Mod resto 
 \ divisão com inteiro 
 ^ exponenciação 
 * multiplicação 
 
 
 
 
 Ajuste as propiedades dos objetos da seguinte forma: 
 
 frm (formulário) 
 caption = calculadora 
 icon = <escolhe um ícone> 
 name = frm calculadora 
 
 cmd (botões de comando) 
 1. name = cmdsair 
 caption = &sair 
 2. name = cmdlimpar 
 caption = &limpar 
 3. name = cmdcalcular 
 caption = &calcular 
 default = true 
 txt (caixas de texto) 
 1. name = txtresultado 
 enable = false 
 text = <vazio> 
 2. name = txtop2 
 tabindex = 2 
 text = <vazio> 
 3. name = txtop 
 tabindex = 1 
 text = <vazio> 
 3. name = textop1 
 tabindex = 0 
Microsoft Visual Basic 4.0 41
 text = <vazio> 
 
 lbl 
 1. name = lblresultado 
 captiom = resultado 
 2. name = lblanuncio 
 caption = operações : + - / mod ^ \ * 
 3. name = lbloperação 
 caption = operação 
 4. name = lbloperador2 
 caption = operador2 
 5. name = lbloperador1 
 caption = operador1 
 6. name = lbligual 
 caption = = 
 
 A seguir insira o seguinte código: 
 
cmdcalcular_click( ) 
 dim op1 as double, op2 as double, opção as string 
 op1 = val (txtop1.text) 
 op2 = val (txtop2.text) 
 opção = txtop.text 
 
 select case opção ‘nós ainda não vimos esta estrutura mas ela já nos é 
 ‘ familiar 
 
 case “+” : txtresultado.text = op1 + op2 
 case “-” : txtresultado.text = op1 - op2 
 case “/” : txtresultado.text = op1 / op2 
 case “\” : txtresultado.text = op1 \ op2 
 case “Mod” : txtresultado.text = op1 Mod op2 
 case “^” : txtresultado.text = op1 ^ op2 
 case “*” : txtresultado.text = op1 * op2 
 end select 
 cmdlimpar.setfocus 
end sub 
 
 
 No evento click do objeto cmdlimpar insira: 
 
 cmdlimpar_click( ) 
 
 txtop1.text = “ “ 
 txtop2.text = “ “ 
 txtop.text = “ “ 
 txtop1.setfocus 
Microsoft Visual Basic 4.0 42
 
No evento click do botão sair escreva: 
 
cmdsair_click( ) 
 end 
end sub 
 
 
Microsoft Visual Basic 4.0 43
Módulo 4 
 
Estruturas de 
Controle 
 
 
 
 
 Neste módulo, aprenderemos a criar estruturas de controle, que são 
importantes componentes de qualquer linguagem de programação. 
 Estas estruturas permitem que você verifique a ocorrência de 
determinadas condições lógicas bem como reutilize blocos de código, tomando 
seu trabalho de programação mais produtivo. 
 
 
 
 Como já adiantamos a você, as estruturas de controle são uma 
importante ferramenta de programação, permitindo não só a realização de 
desvios lógicos no processamento de seu programa, mas também a reutilização 
de blocos de código existentes até que determinado resultado seja obtido. 
 
 O Visual Basic coloca à sua disposição uma série de comandos com esta 
finalidade, permitindo-lhe uma grande flexibilidade no desenvolvimento de suas 
aplicações. 
 Como você já deve estar imaginando, a melhor maneira de aprender 
como estas estruturas operam é na prática, através de um novo aplicativo que 
iremos desenvolver. 
 
 
 
 4.1 Criando o Aplicativo Estruturas de Controle 
 
 Vamos iniciar a criação de nosso aplicativo selecionando a opção New 
Project no menu File. 
 
 
 
 
 Prática 9 
 
 
 Crie um formulário com o seguinte layout: 
 
 
Microsoft Visual Basic 4.0 44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FOR NEXT (LABEL1) 
Início 
(label2) 
Limite 
(label 3) 
Passo 
(label 4) 
Valor Atual de Início: (label 6) 
Iniciar (command) 
ESTRUTURAS DE CONTROLE 
(label 5, sem texto) 
(Text 5) 
Text 1 Text 2 Text3 
Text 4 
Imagem 
 
 
 
 Determine as seguintes propriedades aos objetos: 
 
 
 
 
 
Vamos iniciar pelo Formulário. 
 
Propriedade Valor 
Caption Estrutura de Controle 
Name frmEstruturas 
Microsoft Visual Basic 4.0 45
 
 
 
 
 
 
 
 
 
 
Selecione agora o controle Label1: 
 
Propriedade Valor 
Alignment 2 - Center 
Caption FOR NEXT 
Font MS Sans Serif - Negrito - 14* 
Name LblTítulo 
 
 
 
 
 
* Ao selecionar o botão “...”, é aberta a janela “Fonte” onde você pode 
definir as características do texto a ser exibido. 
 
 
 
 
 
Passe agora para o controle Label2: 
 
Propriedade Valor 
Alignment 1 - Right Justify 
Caption Início: 
Name LblÍnicio 
 
 
 
 
Vamos ajustar agora o controle Text1. 
 
Propriedade Valor 
Name TxtÍnicio 
Text <apagar o valor atual> 
 
Microsoft Visual Basic 4.0 46
 
 
Selecione o controle Label3: 
 
Propriedade Valor 
Alignment 1 - Right Justify 
Caption Limite: 
Name LblLimite 
 
 
 
Passe agora parao controle Text2: 
 
Propriedade Valor 
Name TxtLimite 
Text <apagar o valor atual> 
 
 
 
 
Ajuste agora Label4: 
 
Propriedade Valor 
Alignment 1 - Right Justify 
Caption Passo: 
Name LblPasso 
 
 
 
Faça o mesmo com Text3: 
 
Propriedade Valor 
Name TxtPasso 
Text <apagar o valor atual> 
 
 
 
 
Selecionar agora Label5 e ajuste as suas propriedades conforme a tabela 
abaixo : 
 
Propriedade Valor 
Alignment 2 - Center 
Caption <apagar o valor atual> 
Name LblMsg 
Microsoft Visual Basic 4.0 47
 
 
 
 
Aproveite para alterar as propriedades do Label6 para : 
 
Propriedade Valor 
Alignment 1 - Right justify 
Caption <apagar o valor atual> 
Name Lblação 
 
 
 
Calma, agora falta pouco. Pode parecer cansativo, mas seja sincero: 
Quanto tempo você gastou para criar este aplicativo ? Uns poucos minutos não 
foi ? Pode ter certeza de que os minutos que você empenhou na criação deste 
aplicativo renderão bons conhecimentos sobre as estruturas de controle que 
estamos estudando agora. 
 
Respire fundo e passe para o próximo controle, que é o Text4. 
 
 
 
 
Faça as seguintes alterações : 
 
Propriedade Valor 
Name TxtValorAtual 
TabStop False 
Text <apagar o valor atual> 
 
 
 
 
O próximo passo será alterar o controle Text5: 
 
Propriedade Valor 
Name TxtAção 
TabStop False 
Text <apagar o valor atual> 
 
 
 
 
Complementando nosso aplicativo, altere as propriedades do controle Image1 
para o seguinte: 
Microsoft Visual Basic 4.0 48
 
 
Propriedade Valor 
BorderStyle 1 - FixedSingle 
Enabled False 
 
 
Repita o mesmo para o controle Image2 : 
 
Propriedade Valor 
BorderStyle 1 - FixedSingle 
Enabled False 
 
 
 
 
Finalmente, ajuste as propriedades do controle Command1: 
 
Propriedade Valor 
Caption &Iniciar 
Default True 
Name BtnIniciar 
 
 
 
 A única coisa que falta agora é definirmos o código que será associado ao 
botão "Iniciar" de nosso formulário, mas isto dependerá dos próximos 
assuntos que iremos aprender em seguida. 
 
 
 
 4.2 Adicionando Comentários em seu Código 
 
 
 Agora que você já está ficando com mais prática na utilização do Visual 
Basic e pouco a pouco está desenvolvendo aplicativos cada vez mais 
sofisticados, está na hora de começar a documentar as suas rotinas. 
 
 Talvez você até ache desnecessário fazer isto devido à simplicidade dos 
códigos que estamos criando, mas não custa nada documentar desde o início, 
pois é uma boa prática ir se acostumando a documentar as rotinas criadas por 
voce. 
 Lembre-se de que uma rotina que é óbvia hoje pode não ser tão óbvia 
quando você voltar a estudá-la daqui há seis meses ou um ano. 
 
Microsoft Visual Basic 4.0 49
 Imagine também que talvez outra pessoa irá analisar sua rotina no futuro, 
e que poderá ter grandes dificuldades para entender o que você fez. 
 
 
 
 
 
Documentar suas rotinas é muito importante para 
tornar seu código mais legível não só para você, mas também 
para as outras pessoas que irão analisá-lo mais tarde. 
Adotar este hábito saudável irá poupar seu tempo 
no futuro, quando será necessário relembrar por que 
 você adotou determinadas soluções técnicas 
e , não outras aparentemente mais simples. 
 
 
 
 
 
 
A Instrução REM 
 
 
 A instrução REM nada mais é do que uma abreviação da palavra Remark, 
que significa Comentário. 
 
 Você pode incluir comentários em seus códigos de duas formas: através 
da instrução REM seguida do comentário desejado, ou do apóstrofo ( ‘ ) antes 
do comentário a ser incluído. 
 
 Tudo o que estiver à direita da palavra Rem ou do sinal de apóstrofo será 
simplesmente ignorado pelo Visual Basic. 
 Quando você utilizar a instrução REM, deixe um espaço em branco entre 
esta instrução e o comentário propriamente dito, como em: 
 
 
 REM Este é um exemplo de comentário 
 
 
 Já para o apóstrofo, não é necessário deixar o espaço em branco entre o 
sinal e o comentário: 
 
 'Exemplo de comentário usando o apóstrofo 
 
 Estes comentários também podem ser utilizados em linhas de código que 
contêm outras instruções, como em: 
Microsoft Visual Basic 4.0 50
 
 Dim Teste As lnteger 'Declara a variável Teste como Inteiro 
 
 O único cuidado que deve ser tomado quando incluímos comentários em 
uma linha que contém instruções para o Visual Basic, é quando utilizamos a 
instrução REM. 
 
 Neste caso, será necessário acrescentarmos o sinal de dois pontos ( : ) 
logo após a última instrução válida, para em seguida incluirmos a instrução 
REM. Você entenderá melhor vendo o exemplo abaixo: 
 
 
 Dim Teste As lnteger: REM Não esqueça de incluir : antes de REM 
! 
 
 
 
 Note que este caso somente se aplica à utilização de REM em uma linha 
que já contém comandos. 
 
 
 
 
 
 
 
 
 
 
Este recurso é bastante útil durante a fase de 
desenvolvimento de aplicativos, pois podemos evitar 
 a execução de determinadas linhas de nosso código pelo 
 Visual Basic, sem que haja necessidade de apagarmos tais informações 
de nossas rotinas. Após os testes, basta eliminar os 
 sinais de comentário para que o Visual Basic volte a 
 interpretar as linhas de código 
 existentes. 
 
 
 
 
 Agora que já sabemos utilizar os comentários para documentar nossas rotinas, 
vamos iniciar nosso estudo pela estrutura de controle lf Then Else. 
 
 
 
Microsoft Visual Basic 4.0 51
4.3 Estrutura lf Then Else 
 
 
 Uma das estruturas de controle mais utilizadas na programação em Visual Basic é 
sem dúvida alguma a instrução lf Then, que é utilizada para avaliar uma determinada 
expressão e definir se um determinado bloco de código deve ou não ser executado. 
 
 A sintaxe para utilização deste comando é a seguinte: 
 
 
 If Condição Then 
 [Bloco de Código] 
 
 [Elseif Condição-n Then 
 [Bloco de Códígoll 
 
 [Else 
 [Bloco de Código]] 
 
 End lf 
 
 
 
 
 
 
 
 Detalhes: 
 
• Condição - É a condição a ser avaliada pelo VB. Esta condição utiliza os 
operadores de comparação que aprendemos anteriormente, sendo que a 
mesma tanto pode ser do tipo numérico como do tipo String. 
 
• Condlção-n - É uma outra condição lógica que pode ser avaliada pelo VB. 
O índice n indica que você pode inserir quantas condições lógicas quiser, 
bastando para isso repetir a instrução Elself. 
 
• Else - O bloco de código associado a esta instrução só será executado caso 
nenhuma das condições lógicas anteriores tenha sido verdadeira, ou seja, se 
todas as condições lógicas associadas ao lf e Elself resultaram em False, o VB 
executará o bloco de código associado ao Else. 
 
 
• End lf - Indica o final da estrutura de controle lf Then. Ao longo deste 
módulo você notará que a maioria das estruturas de controle são 
iniciadas pelo comando que as identifica e terminadas pela instrução 
Microsoft Visual Basic 4.0 52
End. Por questões de documentação, o VB aceita que você identifique 
que estrutura está sendo finalizada através do acréscimo do comando 
inicial da estrutura à palavra End, como em End lf por exemplo. 
 
 
 
 Descrição 
 
 A instrução lf ... Then (Se ... Então) sempre está associada a uma 
comparação lógica qualquer, como A > 10, por exemplo . 
 Se a condição for verdadeira (True), o VB executa o bloco de código 
imediatamente abaixo desta linha até encontrar uma outra instrução Elself, Else 
ou Endif, quando então a execução do programa passa para a linha 
imediatamente abaixo da instrução Endif. 
 Caso o primeiro teste lógico resulte em False, o VB irá procurar pela 
próxima instrução de comparação da estrutura lf Then. Caso exista alguma 
instrução Elself, o VB procederá da mesma forma como fez com a instrução lf, 
executando o bloco de código logo abaixo desta linha se a comparação for 
verdadeira, ou continuando a busca pela próxima instrução se a comparação for 
falsa. 
 
 Caso todas as comparações lógicas anteriores tenham resultado em 
False e exista uma instrução Else no bloco de código, esta será executada sem 
a realização de qualquer tipo de comparação lógica. 
 
 Caso não exista a condição Else em sua estrutura lf Then, aexecução 
será encerrada quando o VB encontrar a instrução Endlf, que sinaliza o fim da 
estrutura de controle. 
 
 Como já construímos um novo aplicativo para o estudo das estruturas de 
controle, vamos utilizá-lo para entender melhor como funciona o comando lf... 
Then. 
 
 
 
 
 
Prática 10 Alterando o Aplicativo Estruturas de Controle 
 
 
 
 Selecione o botão "Iniciar" e dê dois cliques sobre o mesmo para ter 
acesso à janela de código. 
 
 Entre com as seguintes instruções neste arquivo: 
 
Microsoft Visual Basic 4.0 53
 Rem Estudo de lfThenElse 
 
 Dim Inicio As Integer, Limite As Integer 
 
 lnicio = Txtinicio.TEXT ' inicializa variável com o valor do controle 
 
 Limite = TxtLimite.TEXT ' Idem 
 
 lf Inicio > Limite Then ' Se Inicio > Limite executa esta opção 
 
 TxtAção.TEXT = "A opção IF foi a escolhida! " 
 
 Elseif Inicio = Limíte Then ' Se Inicio = Limite executa esta: 
 
 TxtAção.TEXT = "A opção ELSEIF foi a escolhida!" 
 
 Else 'Se nenhuma das anteriores executa esta: 
 
 TxtAção. TEXT = "A opção ELSE foi a úníca escolhida! " 
 
 Endif 
 
 
 
 Faça um último ajuste em sua janela de código, selecionando a opção 
Form na caixa de listagem Object e a opção Load na caixa de listagem Proc. 
 
 Digite a seguinte expressão nesta janela: 
 
 
 LbiTitulo. Caption = "IF THEN " ' Altera o titulo da janela 
 
 TxtPasso.Enabled = False 'Desabilita a TextBox Passo 
 Execute o seu aplicativo e entre com os valores 100 e 10 nas caixas de 
texto Início e Limite. Não se preocupe com os demais controles, pois os 
mesmos serão utilizados pelos exercícios futuros no momento adequado. 
 
 Por enquanto utilizaremos apenas as caixas de texto citadas. 
 Clique sobre o botão "Iniciar" e veja o resultado obtido em nosso primeiro 
exemplo. 
 
 
 Note que agora a condição associada à instrução IF não é mais 
verdadeira (início não é maior do que Limite) e desta forma o VB procurou a 
próxima instrução de comparação. Como existe uma condição lógica que 
analisa se o valor de Início e Limite são iguais, o VB executou esta opção, 
apresentando a mensagem correspondente a esta situação. 
Microsoft Visual Basic 4.0 54
 
 Um último teste: entre com 1 e 10. 
 
 
 Se você reparar com atenção, perceberá que nós estabelecemos três 
condições lógicas possíveis em nossa estrutura lf then se o valor Inicial fosse 
maior do que o valor Limite, se ambos os valores fossem iguais e se nenhuma 
das condições anteriores ocorresse. 
 Aliás, foi o que ocorreu em nosso exemplo, pois os valores que entramos 
não satisfazem as condições do lf ou do ElselF. 
 
Diante disso a opção Else foi executada sem maiores perguntas. 
 
 Vamos fazer uma leve modificação em nosso aplicativo. 
Pare a sua execução e dê dois cliques sobre o botão "iniciar" ou selecione 
F7 para abrir a janela de código. 
 Acrescente a seguinte expressão dentro da estrutura lffhen, logo a seguir 
da opção Elself existente: 
 
 
 Elself Inicio = 12 Then ' Somente se Inicio = 12 executa esta opção 
 TxtAção. TEXT = "A 2a. opção ELSEIF foi escolhida! " 
 
 
 Execute o seu aplicativo mais uma vez e entre com os valor 12 e 10 para 
ver o que ocorre: 
 
 Pode parecer estranho, mas apesar de termos declarado o valor Início 
como sendo igual a 12 o VB não executou o segundo Elself como haviamos 
determinado. 
 
 A explicação para este fato serve de alerta para quando você for criar 
seus próprios aplicativos utilizando as estruturas de controle lfThen. 
 
 Observe seu código com cuidado e note que o segundo Elself que 
inserimos na estrutura somente será executado quando o valor Início for igual a 
12 e o valor Limite for maior que 12, caso contrário a instrução IF será 
executada em primeiro lugar, pois sempre que 12 for maior do que o valor 
Limite, a primeira condição lógica será satisfeita e o VB não analisará nenhuma 
outra condição do lf. O mesmo acontecerá se você utilizar os valores 12 e 12, 
pois também neste caso o VB executará o primeiro Elseif da estrutura onde a 
condição estabelecida é valor Início = Limite, ignorando todas as demais 
condições. 
 
 
 Instrução Será executada se... 
Microsoft Visual Basic 4.0 55
 
 lf Início > Limite 
 Elself Início = Limite 
 2o Elself Início = 12 e Limite > 12 
 Else Início < Limite 
 
 
 
 Execute o aplicativo novamente com os valores 12 e 20 e veja que desta 
vez sua rotina foi executada sem maiores problemas. 
 
 
 
 
 É importante perceber que o VB analisa as 
condições lógicas em seqüência, de forma que se 
você quiser que uma determinada ação seja 
tomada quando ocorrer uma situação bastante 
específica, coloque esta condição em primeiro 
lugar na estrutura lf then. 
 
 
 
 
 
 Utilizando apenas uma Linha 
 
 Você também pode definir condições lógicas lfthen utilizando apenas uma 
linha de código, tornando seu código bem compacto, porém menos legível. 
 
 Geralmente, esta opção é mais utilizada durante a fase de testes de 
aplicativos devido sua praticidade, pois basta acrescentar a palavra REM na 
frente da expressão para que o seu aplicativo simplesmente ignore-a. Já, 
utilizando uma estrutura como a que estudamos no item anterior, teríamos bem 
mais trabalho para torná-la "transparente" para o Visual Basic. 
 
 A sintaxe para esta estrutura não difere muito do que vimos 
anteriormente: 
 
 
 
 lf Condição Then Expressão [Else Expressão] 
 
 
 Um exemplo de utilização desta sintaxe poderia ser a seguinte condição: 
Microsoft Visual Basic 4.0 56
 
 íf Teste = 'Sim' Then A = 1 Else A = O 
 
 Note que o VB operaria da mesma forma que na estrutura completa, 
avaliando primeiramente se a condição proposta é verdadeira. Em caso 
afirmativo, seria atribuído à variável A o valor 1, caso contrário a mesma 
receberia o valor zero. 
 
 Você também pode executar mais de um comando associado ao IF ou ao 
Else quando utiliza esta estrutura em uma única linha basta separá-los pelo 
sinal de dois pontos entre um e outro, como no exemplo a seguir: 
 
 
 lf Teste = "Sim' Then A = l : Nome = "João” Else A = O: Nome = "Nulo" 
 
 
 
 O único cuidado a ser tomado é que todos os componentes da expressão 
devem estar numa mesma linha e separados pelo sinal de dois pontos ( : ) um 
do outro. 
 
 
 
 
4.4 Estrutura Select Case 
 
 
 Você também pode selecionar um determinado grupo de comandos 
simplesmente avaliando o valor de uma expressão através da estrutura Select 
Case. 
 
 Este comando possui a seguinte sintaxe: 
 
 Select Case Expressão 
 
 [Case condição-n 
 [Bloco de Código1]... 
 
 [Case Else 
 [Bloco de Códígon] 
 
 End Seíect 
 
 
 
 Detalhes: 
Microsoft Visual Basic 4.0 57
 
• Expressão - É qualquer expressão numérica ou de string avaliada pelo 
Visual Basic. 
 
 
• Condição-n - É a condição lógica a ser avaliada pelo VB. O índice n 
indica que você pode inserir quantas condições lógicas quiser, 
bastando para isso repetir a instrução Case. 
 
• Case Else - O bloco de código associado a esta instrução só será 
executado caso nenhuma das condições lógicas anteriores tenha sido 
verdadeira. 
 
• End Seiect - Indica o final da estrutura de controle Select Case. 
 
 
Descrição: 
 
 Inicialmente, é necessário definir a expressão que será avaliada pela 
estrutura Case, atribuindo a mesma à instrução Select Case. 
 
A partir daí o Visual Basic compara o valor desta expressão com a 
primeira instrução Case existente na estrutura de controle. Se os valores de 
ambas forem iguais, o Visual Basic executará o bloco de código associado à 
condição Case avaliada, e ao final desta passará o controle do programa para a 
primeira linha de código logo abaixo da instrução End Seiect. 
 
 Caso o valor da instrução Case seja diferente da expressão associada ao 
Select Case, o Visual Basic passará para a próxima instrução Case da estrutura, 
repetindo o processo até encontrar uma instrução que satisfaça a condição 
lógica definida. 
 
 
 
Se não existir nenhuma instrução na estrutura de 
 controle que satisfaçaesta condição proposta, o VB 
 poderá adotar dois caminhos: executar a instrução 
Case Else caso a mesma exista, ou simplesmente 
encerrar a execução da estrutura. 
 
 
 
 
 A instrução Case Else será executada sempre que todas as demais 
condições existentes resultarem em False na comparação com a expressão 
definida em Select Case. 
Microsoft Visual Basic 4.0 58
 Você entenderá melhor o que queremos dizer, observando na prática o 
funcionamento desta estrutura. 
 
 
 
 
 Prática 11 
 
 
 
 Faça a seguinte alteração no código associado ao botão "iniciar" do nosso 
aplicativo: 
 
 
Rem Estudo de Select Case 
 
Dim Inicio As lnteger 
 
Inicio = Txtlnlcio. TEXT 'lnicializa variável com o valor do controle 
 
Select Case Inicio 'Avalia a expressão 
 
Case 1 'Verifica se Início = 1 
 TxtAção.TEXT = "Você escolheu o número 1 " 
 
Case 2 'Verifica se Inicio = 2 
 TxtAção.TEXT = "Você escolheu o número 2” 
 
Case 5 'Verifica se Início = 5 
 TxtAção. TEXT = "0 número 5 foí a sua escolha!" 
 
Case Else 'Se as condições anteriores forem Falsas 
 TxtAção. TEXT = "Você não escolheu 1, 2 ou 5. " 
 
End Select I 
 
 
 Necessitamos ainda de um outro pequeno ajuste em nosso 
formulário. 
 Altere a rotina Form_load conforme abaixo: 
 
 
LblTítulo.Caption = "CASE SELECT" ' Altera o título da janela 
 
TxtPasso.Enabled = False 'Desabilita a TextBox Passo 
 
Microsoft Visual Basic 4.0 59
TxtLimite.Enabled = False 'Desabilita a TextBox Limite 
 Como você pode reparar, apenas quando o valor de entrada for igual a 1, 
2 ou 5 é que o VB emitirá uma mensagem específica. 
 Para todos os demais valores informados o Visual Basic exibirá a 
mensagem associada à instrução Case Else. 
 
 Execute agora o seu aplicativo e entre com o valor 1 na caixa de texto 
Início. 
 
 
 
Definindo Faixas de Valores 
 
 
 No exemplo que criamos, todas as instruções Case estão vinculadas à 
ocorrência de um número ou string predeterminado, porém você pode definir 
que ações serão tomadas para determinadas faixas de valores. 
 
 Você pode fazer isto simplesmente definindo a condição Case da 
seguinte forma: 
 
 
 
 Case i To j 
 
 Onde i é o valor inicial e j o valor final da faixa avaliada. 
 
 
 
 
 Prática 12 
 
 
 
 Encerre a execução de seu aplicativo e faça uma rápida alteração na 
estrutura Select Case: 
 
Select Case Inicio 'Avalia a expressão 
 
Case 1 To 4 'Verifica se Inicio está entre 1 e 4 
TxtAção.TEXT = "Você escolheu um número entre 1 e 
4" 
 
Case 5 'Verifica se Início = 5 
 TxtAção.TEXT = "0 número 5 foi a sua escolha! " 
 
Microsoft Visual Basic 4.0 60
Case 6 To 8 'Verifica se Inicio está entre 6 e 8 
 TxtAção.TEXT = "Você escolheu um número entre 6 
e 8 " 
 
Case Else 'Se as condições anteriores forem 
Falsas 
 TxtAção.TEXT = "0 número escolhido é maior que 
8! " 
 
End Select 
 Execute seu aplicativo novamente e entre com alguns valores entre 1 e 
10 e veja como o VB interpreta seus dados. 
 
 Você perceberá que esta característica é muito útil quando os valores 
avaliados podem ter determinadas tolerâncias, pois permite que você torne seu 
código bem mais compacto do que definir uma condição Case para cada valor a 
ser avaliado. 
 
 
 Utilizando Operadores de Comparação 
 
 Você também pode utilizar operadores de comparação com a instrução 
Case, basta acrescentar o operador ls na expressão lógica definida por você, 
como por exemplo em: 
 
 Case ls >= 20 
 
 Altere o código de seu aplicativo acrescentando mais uma instrução Case 
na estrutura de controle, logo abaixo da última instrução Case definida por você 
e antes da instrução Case Else: 
 
Case ls > 20 
 TxtAção.TEXT = "Você escolheu um número maior que 20 " 
 
 Execute o seu aplicativo e entre com qualquer valor acima de 20 para ver 
o que acontece. 
 
 
 
 Avaliando Expressões do Tipo String 
 
 
 Até agora em nossos exemplos, sempre utilizamos valores numéricos para 
estudar o comportamento da estrutura Case, porém o Visual Basic também 
permite que você utilize valores do tipo String em suas expressões. 
 
Microsoft Visual Basic 4.0 61
 Vamos alterar um pouco o código de nosso aplicativo, alterando os 
valores analisados nas instruções Case para dados do tipo string, como 
mostramos a seguir: 
 
 
Rem Estudo de Select Case 
 
Dim Inicio As String 
 
Início = Txtinlcio.TEXT 'lnicializa variável com o valor do controle 
 
Select Case Inicio 'Avalia a expressão 
 
Case "José " 'Verifica se Inicio é igual a José 
TxtAção.TEXT = "José foi escolhido " 
 
Case "João " 'Verifíca se Início = João 
 TxtAção.TEXT = "0 nome é João!" 
 
Case "Maria " 'Verifica se Inicio = Maria 
 TxtAção.TEXT = "Você dígitou Maria" 
 
Case Else TxtAção.TEXT = "Nenhum nome foí selecionado! 'Se as 
condições anteriores são False 
 
End Select 
 
 
 Coloque seu aplicativo em execução e entre com os nomes José, jose, 
João e joao e repare como o VB trata cada um destes nomes. Note que nesta 
comparação de strings, o Visual Basic diferencia palavras acentuadas ou não e 
palavras grafadas em maiúsculas e minúsculas, por isso tome muito cuidado ao 
realizar comparações de strings, pois seu programa pode apresentar um 
comportamento bastante estranho apesar de você ter a certeza de que tudo está 
em perfeito estado. 
 
 
 Vamos estudar agora a estrutura For Next, que é uma outra instrução 
muito utilizada na programação em Visual Basic. 
 
 
 
 
 4.5 Estrutura For Next 
 
 
Microsoft Visual Basic 4.0 62
 Este comando repete um mesmo bloco de código um determinado 
número de vezes independentemente de qualquer condição lógica. 
 
A sintaxe deste comando é a seguinte: 
 
For Contador = Valorinicial To ValorFinal [Step Passo] [Bloco de Código] [Exit 
For] 
[Bloco de Código] 
Next [Contador] 
 
 
 
 Detalhes: 
 
• Contador - É uma variável de memória numérica que será utilizada para 
controlar o número de execuções do bloco de código. 
 
• Valorlniclal - Valor de inicialização do contador. Você pode iniciá-lo 
com o valor zero, um ou mesmo qualquer outro que julgue necessário. 
 
• ValorFinal - É o valor final que a variável Contador assumirá antes de 
encerrar a execução do loop. 
 
• Passo - Você pode determinar se a variável contador será incrementada 
de um em um ou de dois em dois por exemplo. 
 Caso você não informe este parâmetro, o Visual Basic considera que o 
incremento será positivo de uma em uma unidade. Você também pode 
definir números negativos para esta opção. 
 
• Exit For - Você pode interromper a execução do loop através desta 
instrução. Ao encontrá-la no meio de seu bloco de código, o loop é 
interrompido. Esta instrução normalmente está associada à ocorrência de 
uma determinada condição lógica. 
 
 
 
 Descrição 
 
 Para utilizar esta estrutura de controle você necessitará de uma variável 
de memória para ser o contador do número de repetições que a estrutura fará. 
 
 Esta variável é inicializada com o valor especificado por você em 
Valorlnicial e é feita uma comparação de seu valor com o valor definido por você 
em ValorFinal. 
Se o valor do Contador é menor do que o valor de ValorFinal, o bloco de 
código localizado entre as declarações For e Next é executado uma vez. 
Microsoft Visual Basic 4.0 63
 
 Ao final da execução do bloco de código, o Visual Basic incrementa a 
variável de controle o número de unidades especificado em Passo. 
É feita uma nova comparação, e se o contador ainda for menor que a 
variável ValorFinal, o ciclo se repete. 
 Quando o contador atinge um valor maior que a variável limite, a 
execução do loop é encerrada e o Visual Basic passa para a linha 
imediatamente seguinte à declaração Next. 
 Vamos aprender na prática como se comporta um loop do tipo For Next 
através do aplicativo que criamos no início deste módulo. 
 
 
 
 
 Prática 13 
 
 
 
 Alterando o Aplicativo Estruturas de Controle. 
 
 Selecione o botão"Iniciar" e dê dois cliques sobre o mesmo para ter 
acesso à janela de código. 
 
 Entre com as seguintes instruções neste arquivo: 
 
 
 
 
Vamos considerar que o sinal @ indica que o comando 
 continua na mesma linha, que por questões de editoração da 
apostila, o mesmo foi dividido em duas ou mais linhas. 
 
 
 
 
 Rem Estudo de For Next 
 
 Dim Contador As integer, Inicio As integer, Limite As integer, @ 
Passo As integer, Vezes As integer 
 
 Início = Txtinlcio.TEXT 'lnicializa vanável com o valor do controle 
 Limite = TxtLimite.TEXT 'Idem 
 Passo = TxtPasso.TEXT 'Idem 
 Vezes =0 'lnicializa a vanável Vezes com zero 
 
Microsoft Visual Basic 4.0 64
 LblMsg.Captfon = " Enquanto Contador for menor ou igual a " & 
Limite @ 
& " o bloco de código será executado! " 
 
 
 
LblMsg.Refresh 'Atualiza o controle LblMsg 
For Contador = inicio To Limite Step Passo 
 
Vezes = Vezes +1 
TxtValorAtual. TEXT = Contador 
TxtValorAtual.Refresh 'Atualiza o controle 
TxtAção.TEXT = "Executando o bloco de código pela " & Vezes & @ 
“ a. vez” 
TxtAção.Refresh 'Atualiza o controle 
 
Next 
 
Rem Depois de executar o loop o controle do programa passa para esta 
linha: 
 
 
 
 TxtAção.Text = "0 bloco de código foí executado " & Vezes & " vezes!" 
 
 
 
 
 Faça um ajuste na procedure Form-load, deixando apenas as seguintes 
linhas de código: 
 
 
 
LblTítulo.Caption = "FOR NEXT” ‘ Altera o titulo da janela 
LblAção.Caption = "Valor Atual do Contador" 
 
 
 Execute o aplicativo e entre com os valores 1 para Inicio, 10 para Limite e 
1 para Passo. 
 
 
 Clique sobre o botão "iniciar" e veja o que ocorre. 
 
 Dependendo da velocidade de seu microcomputador, você só conseguirá ver a 
última mensagem exibida na tela após o término do loop. 
Microsoft Visual Basic 4.0 65
 
 Na prática, o que o sistema faz é exibir na tela os valores das variáveis 
definidas por nós conforme a instrução For Next vai alterando as mesmas. 
 
 Para facilitar a sua vida vamos fazer uma pequena alteração em nosso 
aplicativo, incluindo mais algumas linhas de código a fim de "desacelerarmos" nosso 
computador. 
 Acrescente as seguintes instruções logo abaixo da linha TxtAção.Refresh, de 
modo a deixar sua rotina com a seguinte aparência: 
 
 
 For n = 1 To 100000 
 REM Este loop não faz nada! 
 Next 
 
 
 Na verdade, o que fizemos foi nada mais do que acrescentar um outro loop 
dentro do já existente, para fazer com que o Visual Basic gaste um determinado tempo 
entre uma atualização de tela e outra, e assim podermos ver o conteúdo das variáveis 
envolvidas no loop. 
 
 
 
 Saiba que o valor de 100000 foi obtido experimentalmente, e dependendo 
da velocidade de seu computador, você terá que aumentar ou reduzir este valor 
até obter o intervalo desejado entre uma exibição e outra em seu monitor. 
 
 
 
 
 
 
Saindo de um Loop For Next 
 
 Como já vimos no item anterior, sempre que você inicia a execução de 
um loop For Next, ele somente encerra sua operação quando o contador atingir 
um valor maior do que o valor final do loop. 
 Na verdade, você pode interromper a execução do mesmo, utilizando 
para isso o comando Exit For. 
 Geralmente, este comando é utilizado em conjunto com uma instrução lf, 
como a que vimos no início deste capitulo. 
 
 Vamos supor que você deseja executar um bloco de código um 
determinado número de vezes ou até que um dado valor seja atingido. Este 
valor tanto pode ser proveniente do cálculo de uma fórmula qualquer como de 
uma variável de memória existente. 
Microsoft Visual Basic 4.0 66
 
 
 Você poderia, por exemplo, definir esta condição da seguinte maneira: 
 
 lf Vezes = Limite / 2 Then 
 Exit For 
 End lf 
 
 
 Como a variável Vezes é incrementada em uma unidade a cada execução 
do loop, você pode definir que assim que o valor da mesma for igual ao valor da 
variável Limite dividido por dois, o loop será encerrado. 
 É claro que neste caso, seria mais fácil definirmos logo de início o valor 
adequado para a variável Limite ao invés de acrescentarmos uma cláusula Exit 
For, mas como estamos apenas querendo mostrar a você o mecanismo desta 
instrução Exit, vamos aproveitar as variáveis de memória que já existem em 
nosso código, evitando assim termos que fazer mais alterações na rotina 
existente. 
 
 
 
 Utilizando Instruções For Next Aninhadas 
 
 No exemplo anterior, utilizamos duas instruções For Next aninhadas, isto 
é, uma dentro da outra. Veja a seguir, um fragmento do código que utilizamos 
em nosso exemplo: 
 
 For Contador = Inicio To Limite Step Passo 
 
 Vezes = Vezes + 1 
 TxtValorAtual.TEXT = Contador 
 
 For n = 1 To 100000 
 Rem Este loop não faz nada! 
 Next 
 
 Next 
 
 Até que olhando desta forma não há muitas dúvidas sobre que instrução 
Next está relacionada à primeira instrução For, mas e quando suas rotinas forem 
ficando cada vez maiores complexas? 
 
Ao analisar seu código, você pode ser levado a concluir erroneamente 
que um determinado Next está associado a uma instrução For, quando na 
verdade ambas não têm nada a ver uma com a outra, o que fatalmente o levará 
a cometer um erro de avaliação de sua rotina. 
Microsoft Visual Basic 4.0 67
 
Outro ponto importante é que se por um erro seu, uma instrução Next for 
encontrada antes da instrução For correspondente, o VB apresentará um erro 
em tempo de execução, paralisando a execução de seu aplicativo. 
 
Este tipo de erro bastante comum pode ser evitado, bastando para isso 
declarar junto à instrução Next o nome da variável de memória que é utilizada 
como contador pelo Visual Basic, como no exemplo a seguir: 
 
 
For Contador = Inicio To Limite Step Passo 
 
 Vezes = Vezes + 1 
 TxtValorAtual.TEXT = Contador 
 For n = 1 To 100000 
 Rem Este loop não faz nada! 
 Next n ‘Incrementa a variável n 
 Next Contador ‘Incrementa a variável Contador 
 
 
 
Para evitar erros de execução ao utilizar 
 instruções For aninhadas, você sempre deve declarar a 
instrução acompanhada do nome da respectiva 
 variável utilizada como contador do loop. 
 
 
 
 
 Um último comentário sobre a estrutura For Next: 
 
 Como você pode observar nos exemplos que criamos, o valor do contador 
sempre é armazenado em uma variável de memória, e por isso mesmo sempre 
é possível modificarmos o seu valor, alterando o comportamento do loop. Isto 
tanto pode ser um importante recurso de programação como uma fonte de 
dores-de-cabeça, dependendo da forma como você utilize esta possibilidade e 
da complexidade de seu código. 
 
 A utilidade deste recurso é que você pode repetir a execução do loop 
indefinidamente até que uma determinada condição desejada seja obtida. 
 Na verdade, existem outras formas mais adequadas de se fazer isto, 
porém não podemos deixar de considerar a possibilidade de realizarmos esta 
tarefa com a estrutura For Next. 
 
Microsoft Visual Basic 4.0 68
 O ponto negativo é que alterando o valor do contador do loop durante a 
execução, você pode levar o seu programa a entrar num loop infinito caso a 
meta definida por você não possa ser atingida, além de tornar o seu aplicativo 
mais difícil de entender e depurar. 
 
 Só para ter uma idéia do que queremos dizer, imagine que seu aplicativo 
faça uso do seguinte bloco de código: 
 
 Private Sub BtniniciaLClíckO 
 
 Rem Estudo de For Next com alteração do Contador durante a 
execução 
 Dim Contador As integer, Resultado As Single, Vezes As integer 
 
 Resultado = 100 ‘ lnicializa a variável com o valor 100 
 
 For Contador = 1 To 10 
 
 Resultado = Resultado + (1.005 ^ 2) 'Fórmula a ser calculada 
 Vezes = Vezes + 1 'Número de execuções 
 
 TxtValorAtual. TEXT = Resultado 'Exibe o resultado na 
Textbox 
 TxtValorAtual.Refresh 'Atualiza o controle 
 
 For n = 1 To 100000 'Loop para desacelerar o programa 
 Rem Este loop não faz nada! 
 Next n 
 
 lf Resultado < 120 And Contador = 10 Then Contador

Outros materiais