Upload
lucio-mathias
View
304
Download
2
Embed Size (px)
Citation preview
V i s u a l B a s i c f o r A p p l i c a t i o n s - V B A
Parte IV - Formulários (UserForm)
Sumário:
Introdução
Projeto
Editor do Visual Basic – VBE
Formulário
Título do formulário
Caixa de texto
Rótulo ou label
Demais caixas de texto e rótulos
Alinhamento
Botões de comando
Tabulação
Códigos dos botões de comando
Teste do projeto
Botão X do formulário
Macro início
Botão de execução
Exercícios
Introdução
Um formulário de usuário é uma caixa de diálogo personalizada que pode ser usada quando as caixas
das funções MsgBox e InputBox não são suficientes. Os objetos em um formulário de usuário do Excel,
como botões e caixas de texto, caixas de combinação e outros são chamados de controles. O
formulário é usado principalmente como uma plataforma na qual são adicionados os controles
necessários para sua funcionalidade.
Projeto
Para o aprendizado básico será criado um projeto exemplo bastante simples que tem como objetivo
apenas efetuar o registro de entrada de peças para suprimentos de uma Loja de materiais elétricos
numa planilha.
Abra o aplicativo Excel e na planilha Plan1 digite o cabeçalho da aplicação como mostrado na figura 1 e
salve a planilha na pasta de sua preferência com o nome Materiais:
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
1 de 14 20/3/2013 14:13
Figura 1
Editor do Visual Basic – VBE
O VBE é a interface de desenvolvimento do VBA e pode ser acessado a partir da planilha Excel,
pressionando as teclas Alt+F11. O VBE abre a janela Código para escrever e editar códigos do Visual
Basic e, por padrão, abre, também, a janela do Projeto (VBAProject) que contém os elementos do
projeto como módulos, formulários, classes e outros e podendo abrir, ainda, a Janela 'Propriedades'
utilizada para alterar as propriedades ou características dos objetos. Essas janelas possuem a
particularidade de serem encaixáveis à janela do Editor do Visual Basic.
É conveniente dizer que a planilha ou o arquivo do Excel é tratado como pasta uma vez que o VBA
considera cada planilha aberta um projeto, podendo encerrar formulários, módulos, gráficos, códigos e
macros. Assim, para salvar um projeto, basta gravar a planilha inicialmente aberta no Excel.
Formulário
No Excel pressione as teclas Alt+F11 para abrir o Editor do Visual Basic – VBE. Para criar a caixa de
diálogo personalizada, no Editor do Visual Basic, clique no menu Inserir e, em seguida, na opção
UserForm. Surge na tela um formulário vazio e uma Caixa de ferramentas contendo os controles a
serem utilizados para a elaboração do formulário, figura 2. Caso a Caixa de ferramentas não apareça
automaticamente na tela ao inserir o UserForm, clique em Caixa de ferramentas no menu Inserir.
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
2 de 14 20/3/2013 14:13
Figura 2
Título do formulário
Clique no botão Janela 'Propriedades' na Barra de ferramentas
Padrão ou pressione F4 para abrir a janela, Figura 3, a qual
possibilita nomear e inicializar propriedades dos controles do objeto
formulário.
Para mudar o título do formulário, dê um clique na barra de nome
do formulário UserForm1 para selecioná-lo, em seguida, um duplo
clique na propriedade Caption e troque o valor desta propriedade
para Entrada de peças e dê Enter.
A barra de título do formulário mostrará a nova legenda.
Caixa de Texto
Inicialmente, clique no formulário para exibir a Caixa de
ferramentas, caso ela não esteja visível. Na Caixa de ferramentas,
selecione o botão Caixa de texto e clique no formulário na posição
superior do lado direito para criar a primeira caixa de texto de
tamanho padrão deste projeto como mostrado na figura 4. Figura 3
Com a caixa de texto selecionada dê um duplo clique na propriedade (Name) da Janela 'Propriedades'
e mude o valor para txtPeca e dê Enter.
Clique em uma parte vazia do formulário para selecioná-lo e exibir a Caixa de ferramentas.
Rótulo ou Label
Para descrever ou nomear a caixa de texto, clique no botão Rótulo na Caixa de ferramentas e depois
clique no formulário à esquerda da caixa de texto, e em seguida, clique duas vezes na propriedade
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
3 de 14 20/3/2013 14:13
Caption e modifique o valor para Número da peça e tecle Enter.
Se necessário, redimensione o rótulo, arrastando a alça de seleção para perfazer um tamanho
apropriado.
Clique em uma parte vazia do formulário para selecioná-lo e exibir a Caixa de ferramentas.
Demais caixas de Texto e rótulos
Proceda de maneira semelhante para as outras duas caixas
de texto e para os rótulos correspondentes.
Para a propriedade (Name) da caixa texto Descrição digite
txtDescr e para a caixa de texto Quantidade, txtQuant.
Na propriedade Caption dos rótulos digite os valores
Descrição e Quantidade como aparecem nas figuras ao
lado.
Alinhamento
Para fazer o alinhamento das caixas de texto, selelecione as
três caixas, clicando ao lado na parte superior esquerda da
primeira caixa de texto e arraste um retângulo até a parte
inferior direita da última caixa de texto ou, se preferir,
mantenha pressionada a tecla Ctrl e clique em cada uma das
caixas de texto, figura 4.
A partir do menu Formatar, clique em Alinhar e, em
seguida, na opção Esquerdas. Para alinhar os rótulos,
proceda de modo análogo ao das caixas de texto. A figura 5
mostra o resultado deste procedimento.
Botões de comando
Para permitir a execução de ações, insira no formulário três
botões de comando: um para dar entrada de dados, outro
para apagar o conteúdo das caixas de texto do formulário e
o terceiro para encerrar o processo de entrada de dados.
Para criar o primeiro botão, clique no Botão de comando
Figura 4
Figura 5
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
4 de 14 20/3/2013 14:13
na Caixa de ferramentas e em seguida no formulário. Figura 6
Com o botão selecionado, mude o valor da propriedade (Name) para btnEntra e da propriedade
Caption para Entra e tecle Enter.
Redimencione o botão, clicando nele para selecioná-lo e, em seguida, arraste a alça do lado direito ou
esquerdo do retângulo de seleção até alcançar um tamanho apropriado, Figura 6. Se for necessário,
reposicione o botão no espaço do formulário, arrastando-o de um local para outro.
Clique em uma parte vazia do formulário para exibir a Caixa de ferramentas. Proceda de forma
semelhante para a criação dos dois botões restantes, alterando os valores das propriedades como
segue:
Botão Limpa – propriedade (Name) para btnLimpa e Caption para Limpa;
Botão Fim – propriedade (Name) para btnFim e Caption para Fim.
Redimensione também esses dois botões de modo a obter tamanhos proporcionais, figura 6.
Selecione os três botões para alinhá-los a partir do menu Formatar.
Figura 7
Salve a pasta de trabalho. Lembre-se que o salvamento do projeto pode ser feito em cada etapa
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
5 de 14 20/3/2013 14:13
Salve a pasta de trabalho. Lembre-se que o salvamento do projeto pode ser feito em cada etapa
subsequente do desenvolvimento do projeto.
Pressione F5 ou clique no menu Executar e depois em Executar Sub/UseForm para ver o aspecto
da caixa de texto no modo de execução. Clique nos botões para testar seu funcionamento e depois
feche a janela do formulário para voltar ao modo de desenvolvimento.
Tabulação
Pressione repetidamente a tecla TAB e observe que a caixa de seleção se movimenta de controle para
controle, mudando seu foco ou ponto sobre o qual recairá a ação do usuário. Tecle F5 para entrar em
modo de execução e verifique a ordem de sequência do foco ao pressionar a tecla TAB.
A ordem de tabulação é impotante para quem utiliza o
teclado. Se a atual não for a ordem de tabulação lógica
ela pode ser mudada. Clique no plano de fundo do
formulário e a partir do menu Exibir clique na opção
Ordem de tabulação. A caixa de diálogo, Figura 8,
mostra nove controles cuja sequência pode ser alterada,
simplesmente, selecionando o controle desejado e
clicando no botão Mover para cima ou Mover para baixo
para posicioná-lo corretamente.Figura 8
Códigos dos botões de comando
Botão Entra (btnEntra)
Selecione o botão Entra e no menu Exibir escolha Código ou, se preferir um atalho, clique duas vezes
no botão Entra. É aberta uma janela para inserir as instruções de funcionalidade. Segue o código do
procedimento que adiciona registros das entradas de materiais na planilha:
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
6 de 14 20/3/2013 14:13
Figura 9
Para retornar ao formulário, clique no menu Exibir e depois em Objeto ou, pegando um atalho, clique
com o botão direito do mouse em UserForm1 no painel à esquerda e, no menu de contexto, escolha
Exibir objeto.
Botão Limpa (btnLimpa)
Dê um duplo clique no botão Limpa para abrir a janela de código. Segue o código relativo a esse botão:
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
7 de 14 20/3/2013 14:13
Figura 10
Para retornar ao formulário, clique no menu Exibir e depois em Objeto ou através do atalho, clicando
com o botão direito do mouse em UserForm1 e, em seguida, em Exibir objeto.
Botão Fim (btnFim)
Dê um duplo clique no botão Fim para abrir a janela de código. Segue o código relativo a esse botão:
Figura 11
Para retornar ao formulário, clique no menu Exibir e depois em Objeto ou faça-o via atalho.
O fechamento do formulário também pode ser efetivado teclando Esc. Para tanto, selecione o botão
Fim do formulário e na Janela 'Propriedades' mude o valor da propriedade Cancel para True.
Teste do projeto
Para fazer o teste do projeto, pressione a tecla F5 ou clique no botão (com forma de cabeça de seta à
direita) na barra de ferramentas padrão ou, ainda, se preferir, clique no menu Executar e depois em
Executar Sub/Userform.
Botão X do formulário
Para que o usuário não encerre o trabalho, usando o botão fechar (X) do formulário, clique em Inserir
e depois em Código ou use o atalho a partir do UserForm1, subordinado à pasta Formulários do
painel à esquerda, e, no final da janela de Código, digite o procedimento conforme figura 12 a seguir:
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
8 de 14 20/3/2013 14:13
Figura 12
Macro início
Para iniciar a execução do projeto a partir de um botão ou ponto de acesso contido na planilha de
dados, clique no menu Inserir e depois em Módulo. Na área de código digite as instruções conforme
figura 13.
Figura 13
Botão de execução
Para facilitar o comando de execução pelo usuário, clique na Planilha do Excel e crie um botão ou ponto
de acesso, conforme figura 14. Para tanto, clique em Inserir e depois em Formas, selecione uma
Forma e desenhe-a arrastando o ponteiro do mouse no corpo da planilha. Em seguida, clique com o
botão direito do mouse na Forma e, no menu de contexto, em Atribuir Macro. Na caixa de diálogo
Atribuir macro, selecione o nome da macro inicioMat e clique em OK. Insira o texto na Forma,
clicando com o botão direito do mouse na borda da forma e, no menu de contexto, clique em Editar
Texto. Digite o texto Entrada de materiais e para sair do modo de edição, clique num espaço em
branco da planilha.
Salve o projeto. Para finalizar esse estudo, faça agora o teste final, iniciando o processo de execução a
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
9 de 14 20/3/2013 14:13
Salve o projeto. Para finalizar esse estudo, faça agora o teste final, iniciando o processo de execução a
partir do botão Entrada de materiais.
Figura 14
Exercícios
Desenvolver um projeto para fazer uma relação de pagamentos, contendo o código do
funcionário, sexo e salário, na planilha Plan1 do Excel (figura 15) e mostrar os totais dos salários
listados.
Para tanto, elabore um formulário para dar entrada dos dados (figura 16) e outro formulário
para apresentar a soma dos salários (figura 17) quando o usuário pressionar o botão Fim.
1.
Figura 15
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
10 de 14 20/3/2013 14:13
Figura 16
Figura 17
Segue um exemplo da execução deste projeto-exercício que mostra alguns dados de entrada (figura
18) e o resumo final do processamento contendo os totais dos salários no segundo formulário (figura
19).
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
11 de 14 20/3/2013 14:13
Figura 18
Figura 19
Download do arquivo do exercício n° 1:
Fazer um programa para converter para o sistema numérico decimal um número escrito em
binário. Formulário deste exercício (figura 20):
2.
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
12 de 14 20/3/2013 14:13
Figura 20
Segue um exemplo de execução deste exercício (figura 21):
Figura 21
Download do arquivo do exercício n° 2:
Criar um projeto para converter valores numéricos entre os sistemas decimal, binário e
hexadecimal. O formulário para este projeto pode ser definido como segue (figura 22):
3.
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
13 de 14 20/3/2013 14:13
Figura 22
Exemplo de uma conversão efetuada através do projeto deste exercício(figura 23):
Figura 23
VBA - formulários (UserForm) http://www.bianchi.pro.br/vba/vba_p4.php
14 de 14 20/3/2013 14:13