VBA - formulários (UserForm) Pt 5.pdf

14
Visual Basic for Applications - VBA 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

Transcript of VBA - formulários (UserForm) Pt 5.pdf

Page 1: VBA - formulários (UserForm) Pt 5.pdf

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

Page 2: VBA - formulários (UserForm) Pt 5.pdf

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

Page 3: VBA - formulários (UserForm) Pt 5.pdf

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

Page 4: VBA - formulários (UserForm) Pt 5.pdf

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

Page 5: VBA - formulários (UserForm) Pt 5.pdf

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

Page 6: VBA - formulários (UserForm) Pt 5.pdf

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

Page 7: VBA - formulários (UserForm) Pt 5.pdf

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

Page 8: VBA - formulários (UserForm) Pt 5.pdf

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

Page 9: VBA - formulários (UserForm) Pt 5.pdf

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

Page 10: VBA - formulários (UserForm) Pt 5.pdf

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

Page 11: VBA - formulários (UserForm) Pt 5.pdf

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

Page 12: VBA - formulários (UserForm) Pt 5.pdf

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

Page 13: VBA - formulários (UserForm) Pt 5.pdf

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

Page 14: VBA - formulários (UserForm) Pt 5.pdf

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