Formulário VBA: Um Guia Completo
Quer aprender a criar um Formulário VBA no Excel? Então você está no lugar certo!
Um formulário de usuário é uma caixa de diálogo personalizada que torna a entrada de dados do usuário mais controlável e fácil de usar. Neste guia, você aprenderá a criar um formulário simples e programá-lo para adicionar dados no Excel através dele.
Se interessou pelo assunto? Então confira os detalhes a seguir:
- O que é um formulário VBA?
- Como criar um formulário no VBA?
- Formatando o UserForm
- Programando o Formulário VBA
O que é um formulário VBA?
Formulário VBA, também conhecido como Userform VBA, são formulários personalizados feitos para receber entrada de um usuário em um formato de formulário. Embora tenha diferentes conjuntos de controles para adicionar, como caixas de texto, rótulos de caixas de seleção, etc., para orientar um usuário a inserir um valor e armazenar o valor na planilha, cada parte do UserForm possui um código exclusivo.
Neste artigo, mostraremos como criar um UserForm conforme modelo da imagem abaixo para armazenar os dados do usuário.
Como criar um formulário no VBA?
1. Acesse a guia Desenvolvedor (confira este artigo caso não tenha a guia Desenvolvedor habilitada em seu Excel).
2. Na guia Desenvolvedor, acesse Visual Basic. Alternativamente, use o atalho ALT + F11 para abrir o Editor do Visual Basic no Excel.
3. Dentro da janela do VBA, acesse a guia Inserir > UserForm.
4. Pronto! O formulário VBA foi adicionado com sucesso. E antes prosseguirmos com as etapas de programação, vamos formatar este UserForm.
Dica: O próprio formulário (mostrado como UserForm1) parece bem pequeno, mas você pode usar as alças ao redor dele para aumentá-lo ou torná-lo ainda menor arrastando as alças com o cursor.
Formatando o UserForm
1. Selecione o UserForm que você criou, pressione a tecla F4 para mostrar a janela Propriedades ou clique com o botão direito do mouse sobre o Userform e selecione a opção Propriedades.
Usando esta janela de Propriedades, podemos formatar este UserForm. Podemos nomeá-lo, mudar a cor, o estilo da borda, etc.
Importante: Como o foco está diretamente no próprio formulário, ele contém todas as propriedades específicas desse formulário.
Observe que quando você começa a adicionar controles como caixas de combinação e botões de comando, todos esses controles têm seu próprio conjunto de propriedades e podem ser muito diferentes no que você pode fazer com cada um deles.
As propriedades que você vê atualmente vê nessa janela, se aplicam apenas ao objeto que estiver atualmente selecionado.
2. Com o formulário selecionado, note que a propriedade (Name) é o nome usado para definir seu objeto de formulário no código VBA. Você pode querer usar algo mais significativo para o nome do objeto, de modo que, quando estiver programando seu código, seja óbvio qual objeto está sendo fazendo referência.
A propriedade (Name) também será refletida na janela ‘Project Explorer‘ no canto superior esquerdo da tela
3. Para alterar a barra de título do seu formulário para algo diferente de ‘UserForm1’, você pode fazer isso digitando seu novo texto na propriedade Caption. Veja o exemplo abaixo:
Para outras alterações no seu formulário, recomendamos explorar as demais propriedades para obter uma visão na prática. Conforme mencionado anteriormente, nesta janela você poderá alterar diversas propriedades do formulário como, por exemplo, cores, fontes, tamanho, bordas, etc.
Usando a Caixa de Ferramentas
Você notará que, ao clicar no próprio formulário, um pop-up de caixa de ferramentas é exibido. Se você clicar em qualquer outro lugar, por exemplo, no painel de propriedades, ele desaparecerá, mas reaparecerá quando você clicar no formulário.
A caixa de ferramentas fornece a mecânica real do design do formulário. Isso permite que você adicione ao seu formulário os controles normais do Windows com os quais os usuários estão familiarizados.
Agora, utilize a Caixa de ferramentas para inserir os objetos dentro do formulário da seguinte maneira:
1. Insira o primeiro rótulo e altere a sua propriedade para Nome do Cliente. Confira o exemplo abaixo:
2. Insira outros rótulos em seu formulário. Você poderá fazer isso selecionando o objeto na Caixa de ferramentas ou arrastando o rótulo atual segurando a tecla Ctrl para inserir mais um rótulo. Você terá uma réplica do rótulo atual. Em seguida, altere a propriedade Caption de cada rótulo criado. Veja o exemplo abaixo:
3. Em seguida, insira 4 Caixas de Texto para os rótulos criados na etapa anterior.
Dica: Se você clicar em um controle e decidir não usá-lo, basta clicar no ícone Seta no canto superior esquerdo da Caixa de ferramentas, fazendo com que seu cursor volte ao normal.
4. Altere a propriedade Name de cada Caixa de texto. Neste exemplo, iremos alterar para os seguintes nomes: txtNome, txtCPF, txtEstado e txtTelefone.
5. Insira 2 Botões de comando no formulário e altere as suas propriedades da seguinte maneira:
Botão 1:
- Name: btCadastrar
- Caption: CADASTRAR
Botão 2:
- Name: btCancelar
- Caption: CANCELAR
Agora, para conferir o resultado, pressione o botão Executar ou use a tecla F5 e veja como ficará o seu UserForm no Excel.
Programando o Formulário VBA
Agora, o usuário irá inserir os dados no formulário, então precisamos programá-lo para armazenar os dados digitados. Para isto, siga as etapas:
1. Dê duplo clique no botão CADASTRAR, que o levará à janela de códigos do VBA com uma Sub criada automaticamente.
Lembre-se de que demos um nome para o botão CADASTRAR como btCadastrar. Portanto, sempre que quisermos chamar este botão, podemos chamá-lo por este nome (btCadastrar).
2. Dentro desta Macro, copie e cole o código abaixo:
Dim UltimaLinha As Long UltimaLinha = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(UltimaLinha, 1).Value = txtNome.Value Cells(UltimaLinha, 2).Value = txtCPF.Value Cells(UltimaLinha, 3).Value = txtEstado.Value Cells(UltimaLinha, 4).Value = txtTelefone.Value txtNome.Value = "" txtCPF.Value = "" txtEstado.Value = "" txtTelefone.Value = ""
Como o código funciona?
- Observe no código acima que declaramos uma variável chamada UltimaLinha para armazenar o número da primeira célula preenchida na coluna 1 da planilha. Isto fará com que cada registro de cliente seja armazenado logo abaixo do registro anterior.
- Em seguida, enviamos os dados do txtNome para a coluna 1, txtCPF para a coluna 2, txtEstado para a coluna 3 e txtTelefone para a coluna 4 da planilha, obedecendo sempre a condição de salvar os dados na primeira linha vazia encontrada após o último registro.
- Após o envio dos dados do formulário para a planilha, o formulário é limpo para receber novos dados. Para isto, utilizamos os comandos: txtNome.Value = “”, txtCPF.Value = “”, txtEstado.Value = “” e txtTelefone.Value = “” para limpar os dados que foram inseridos nas Caixas de Texto (Textbox).
3. Em seguida, dê duplo clique no botão CANCELAR. Ele também mostrará o nome da macro conforme exemplo abaixo:
4. Dentro desta Macro, copie e cole o código abaixo:
Unload Me
O comando Unload Me significa que ao clicar no botão CANCELAR, o formulário será fechado.
5. Agora precisamos criar uma opção para executar o formulário de cadastro sem precisar abrir o VBA. Neste caso, podemos fazer isto criando um módulo com um comando para abrir o formulário. Então, dentro da janela do VBA acesse a guia Inserir > Módulo.
6. Dentro do módulo criado, insira o seguinte código:
Sub Abrir_Formulario() UserForm1.Show End Sub
O código acima, quando executado, irá abrir o formulário de cadastro (Userform1) criado nas etapas anteriores.
7. Em seguida, na mesma Pasta de Trabalho, crie um modelo de planilha para armazenar os dados do formulário, conforme imagem abaixo:
8. Agora precisamos criar um botão dentro dessa planilha para executar o código criado na etapa 6 para abrir o formulário. Para isto, acesse a guia Desenvolvedor, clique em Inserir > Botão (Controle de Formulário).
9. Ao arrastar o botão para dentro a sua planilha, o Excel abrirá a caixa de diálogo Atribuir macro. Selecione a macro criada na etapa 6 e clique em OK.
10. Insira um título para o botão e clique nele para abrir o formulário. Veja o exemplo abaixo:
11. Pronto! Seu formulário VBA está finalizado. Agora basta preencher os campos e clicar no botão CADASTRAR para registrar os dados dentro da planilha. Confira o exemplo abaixo:
Dica importante: Após finalizar o seu formulário VBA, é necessário salvar a sua Pasta de Trabalho com a extensão xlsm (Pasta de Trabalho Habilitada para Macro do Excel). Isto garantirá que as macros criadas sejam salvas na sua Pasta de Trabalho.
Baixe aqui o exemplo de formulário VBA no Excel
Confira também as seguintes dicas de Excel:
- Como Gravar Macros no Excel – Um Guia Passo a Passo
- ListBox no VBA: Um Guia Completo
- Como Preencher um Combobox no Excel
- Inputbox no Excel VBA – Um Guia Completo
- Erros no VBA Excel – Tudo que você precisa saber!
- Como Habilitar Macro no Excel: Passo a Passo
E então, o que achou do guia sobre Formulário VBA no Excel? Caso tenha ficado com alguma dúvida, deixe seu comentário e continue acompanhando mais dicas de Excel em nosso site!