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:
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.
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 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 na Caixa de ferramentas e em seguida no formulário.
Figura 4
Figura 5
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 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:
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:
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:
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 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.
Figura 15
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).
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):
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):
Figura 22
Exemplo de uma conversão efetuada através do projeto deste exercício(figura 23):