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:

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

  1. 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:  

  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:  

  1. 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):


Figura 23

Download do arquivo do exercício n° 3: