You are on page 1of 14

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Visual Basic for Applications - VBA


Parte IV - Formulrios (UserForm) Sumrio:
Introduo Projeto Editor do Visual Basic VBE Formulrio Ttulo do formulrio Caixa de texto Rtulo ou label Demais caixas de texto e rtulos Alinhamento Botes de comando Tabulao Cdigos dos botes de comando Teste do projeto Boto X do formulrio Macro incio Boto de execuo Exerccios

Introduo
Um formulrio de usurio uma caixa de dilogo personalizada que pode ser usada quando as caixas das funes MsgBox e InputBox no so suficientes. Os objetos em um formulrio de usurio do Excel, como botes e caixas de texto, caixas de combinao e outros so chamados de controles. O formulrio usado principalmente como uma plataforma na qual so adicionados os controles necessrios para sua funcionalidade.

Projeto
Para o aprendizado bsico ser criado um projeto exemplo bastante simples que tem como objetivo apenas efetuar o registro de entrada de peas para suprimentos de uma Loja de materiais eltricos numa planilha. Abra o aplicativo Excel e na planilha Plan1 digite o cabealho da aplicao como mostrado na figura 1 e salve a planilha na pasta de sua preferncia com o nome Materiais:

1 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

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 Cdigo para escrever e editar cdigos do Visual Basic e, por padro, abre, tambm, a janela do Projeto (VBAProject) que contm os elementos do projeto como mdulos, formulrios, classes e outros e podendo abrir, ainda, a Janela 'Propriedades' utilizada para alterar as propriedades ou caractersticas dos objetos. Essas janelas possuem a particularidade de serem encaixveis 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 formulrios, mdulos, grficos, cdigos e macros. Assim, para salvar um projeto, basta gravar a planilha inicialmente aberta no Excel.

Formulrio
No Excel pressione as teclas Alt+F11 para abrir o Editor do Visual Basic VBE. Para criar a caixa de dilogo personalizada, no Editor do Visual Basic, clique no menu Inserir e, em seguida, na opo UserForm. Surge na tela um formulrio vazio e uma Caixa de ferramentas contendo os controles a serem utilizados para a elaborao do formulrio, figura 2. Caso a Caixa de ferramentas no aparea automaticamente na tela ao inserir o UserForm, clique em Caixa de ferramentas no menu Inserir.

2 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 2

Ttulo do formulrio
Clique no boto Janela 'Propriedades' na Barra de ferramentas Padro ou pressione F4 para abrir a janela, Figura 3, a qual possibilita nomear e inicializar propriedades dos controles do objeto formulrio. Para mudar o ttulo do formulrio, d um clique na barra de nome do formulrio UserForm1 para selecion-lo, em seguida, um duplo clique na propriedade Caption e troque o valor desta propriedade para Entrada de peas e d Enter. A barra de ttulo do formulrio mostrar a nova legenda.

Caixa de Texto
Inicialmente, clique no formulrio para exibir a Caixa de ferramentas, caso ela no esteja visvel. Na Caixa de ferramentas, selecione o boto Caixa de texto e clique no formulrio na posio superior do lado direito para criar a primeira caixa de texto de tamanho padro 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 formulrio para selecion-lo e exibir a Caixa de ferramentas.

Rtulo ou Label
Para descrever ou nomear a caixa de texto, clique no boto Rtulo na Caixa de ferramentas e depois clique no formulrio esquerda da caixa de texto, e em seguida, clique duas vezes na propriedade

3 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Caption e modifique o valor para Nmero da pea e tecle Enter. Se necessrio, redimensione o rtulo, arrastando a ala de seleo para perfazer um tamanho apropriado. Clique em uma parte vazia do formulrio para selecion-lo e exibir a Caixa de ferramentas.

Demais caixas de Texto e rtulos


Proceda de maneira semelhante para as outras duas caixas de texto e para os rtulos correspondentes. Para a propriedade (Name) da caixa texto Descrio digite txtDescr e para a caixa de texto Quantidade, txtQuant. Na propriedade Caption dos rtulos digite os valores Descrio e Quantidade como aparecem nas figuras ao lado. Figura 4

Alinhamento
Para fazer o alinhamento das caixas de texto, selelecione as trs caixas, clicando ao lado na parte superior esquerda da primeira caixa de texto e arraste um retngulo 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 opo Esquerdas . Para alinhar os rtulos, proceda de modo anlogo ao das caixas de texto. A figura 5 mostra o resultado deste procedimento. Figura 5

Botes de comando
Para permitir a execuo de aes, insira no formulrio trs botes de comando: um para dar entrada de dados, outro para apagar o contedo das caixas de texto do formulrio e o terceiro para encerrar o processo de entrada de dados. Para criar o primeiro boto, clique no Boto de comando

4 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

na Caixa de ferramentas e em seguida no formulrio.

Figura 6

Com o boto selecionado, mude o valor da propriedade (Name) para btnEntra e da propriedade Caption para Entra e tecle Enter. Redimencione o boto, clicando nele para selecion-lo e, em seguida, arraste a ala do lado direito ou esquerdo do retngulo de seleo at alcanar um tamanho apropriado, Figura 6. Se for necessrio, reposicione o boto no espao do formulrio, arrastando-o de um local para outro. Clique em uma parte vazia do formulrio para exibir a Caixa de ferramentas. Proceda de forma semelhante para a criao dos dois botes restantes, alterando os valores das propriedades como segue: Boto Limpa propriedade (Name) para btnLimpa e Caption para Limpa; Boto Fim propriedade (Name) para btnFim e Caption para Fim. Redimensione tambm esses dois botes de modo a obter tamanhos proporcionais, figura 6. Selecione os trs botes 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

5 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)


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 execuo. Clique nos botes para testar seu funcionamento e depois feche a janela do formulrio para voltar ao modo de desenvolvimento.

http://www.bianchi.pro.br/vba/vba_p4.php

Tabulao
Pressione repetidamente a tecla TAB e observe que a caixa de seleo se movimenta de controle para controle, mudando seu foco ou ponto sobre o qual recair a ao do usurio. Tecle F5 para entrar em modo de execuo e verifique a ordem de sequncia do foco ao pressionar a tecla TAB. A ordem de tabulao impotante para quem utiliza o teclado. Se a atual no for a ordem de tabulao lgica ela pode ser mudada. Clique no plano de fundo do formulrio e a partir do menu Exibir clique na opo Ordem de tabulao. A caixa de dilogo, Figura 8, mostra nove controles cuja sequncia pode ser alterada, simplesmente, selecionando o controle desejado e clicando no boto Mover para cima ou Mover para baixo para posicion-lo corretamente. Figura 8

Cdigos dos botes de comando


Boto Entra (btnEntra) Selecione o boto Entra e no menu Exibir escolha Cdigo ou, se preferir um atalho, clique duas vezes no boto Entra. aberta uma janela para inserir as instrues de funcionalidade. Segue o cdigo do procedimento que adiciona registros das entradas de materiais na planilha:

6 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 9 Para retornar ao formulrio, clique no menu Exibir e depois em Objeto ou, pegando um atalho, clique com o boto direito do mouse em UserForm1 no painel esquerda e, no menu de contexto, escolha Exibir objeto. Boto Limpa (btnLimpa) D um duplo clique no boto Limpa para abrir a janela de cdigo. Segue o cdigo relativo a esse boto:

7 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 10 Para retornar ao formulrio, clique no menu Exibir e depois em Objeto ou atravs do atalho, clicando com o boto direito do mouse em UserForm1 e, em seguida, em Exibir objeto. Boto Fim (btnFim) D um duplo clique no boto Fim para abrir a janela de cdigo. Segue o cdigo relativo a esse boto:

Figura 11 Para retornar ao formulrio, clique no menu Exibir e depois em Objeto ou faa-o via atalho. O fechamento do formulrio tambm pode ser efetivado teclando Esc . Para tanto, selecione o boto Fim do formulrio 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 boto (com forma de cabea de seta direita) na barra de ferramentas padro ou, ainda, se preferir, clique no menu Executar e depois em Executar Sub/Userform .

Boto X do formulrio
Para que o usurio no encerre o trabalho, usando o boto fechar (X) do formulrio, clique em Inserir e depois em Cdigo ou use o atalho a partir do UserForm1, subordinado pasta Formulrios do painel esquerda, e, no final da janela de Cdigo, digite o procedimento conforme figura 12 a seguir:

8 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 12

Macro incio
Para iniciar a execuo do projeto a partir de um boto ou ponto de acesso contido na planilha de dados, clique no menu Inserir e depois em Mdulo. Na rea de cdigo digite as instrues conforme figura 13.

Figura 13

Boto de execuo
Para facilitar o comando de execuo pelo usurio, clique na Planilha do Excel e crie um boto 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 boto direito do mouse na Forma e, no menu de contexto, em Atribuir Macro. Na caixa de dilogo Atribuir macro, selecione o nome da macro inicioMat e clique em OK. Insira o texto na Forma, clicando com o boto 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 edio, clique num espao em branco da planilha. Salve o projeto. Para finalizar esse estudo, faa agora o teste final, iniciando o processo de execuo a

9 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)


Salve o projeto. Para finalizar esse estudo, faa agora o teste final, iniciando o processo de execuo a partir do boto Entrada de materiais.

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 14

Exerccios
1. Desenvolver um projeto para fazer uma relao de pagamentos, contendo o cdigo do funcionrio, sexo e salrio, na planilha Plan1 do Excel (figura 15) e mostrar os totais dos salrios listados. Para tanto, elabore um formulrio para dar entrada dos dados (figura 16) e outro formulrio para apresentar a soma dos salrios (figura 17) quando o usurio pressionar o boto Fim.

Figura 15

10 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 16

Figura 17 Segue um exemplo da execuo deste projeto-exerccio que mostra alguns dados de entrada (figura 18) e o resumo final do processamento contendo os totais dos salrios no segundo formulrio (figura 19).

11 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 18

Figura 19 Download do arquivo do exerccio n 1: 2. Fazer um programa para converter para o sistema numrico decimal um nmero escrito em binrio. Formulrio deste exerccio (figura 20):

12 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 20 Segue um exemplo de execuo deste exerccio (figura 21):

Figura 21 Download do arquivo do exerccio n 2: 3. Criar um projeto para converter valores numricos entre os sistemas decimal, binrio e hexadecimal. O formulrio para este projeto pode ser definido como segue (figura 22):

13 de 14

20/3/2013 14:13

VBA - formulrios (UserForm)

http://www.bianchi.pro.br/vba/vba_p4.php

Figura 22 Exemplo de uma converso efetuada atravs do projeto deste exerccio(figura 23):

Figura 23

14 de 14

20/3/2013 14:13