- Criando um UserForm
- Criação de uma caixa de texto
- Criação de um controle de etiqueta
- Criando um controle de caixa de combinação
- Criação de um controle de caixa de listagem
- Criação de um controle de caixa de seleção
- Criação de um controle de grupo de opções com botões de opção
- Criando um botão de comando para sair do formulário
Este artigo demonstrará como usar controles em UserForms no Excel VBA.
O VBA tem a capacidade de criar formulários com os quais o usuário pode interagir, como formulários de fatura ou detalhes de contato. Um formulário pode conter uma variedade de controles de formulário, como caixas de texto, caixas de combinação, caixas de listagem e botões de comando. Este artigo cobrirá os controles mais populares usados em formulários do usuário, a saber, caixas de texto, rótulos, caixas de combinação, caixas de listagem, caixas de seleção e grupos de opções.
Para saber mais sobre formulários de usuário integrados e como criar formulários de usuário personalizados no Excel, clique aqui.
Criando um UserForm
Para criar um UserForm no Excel VBA, primeiro precisamos abrir o Editor VBE.
Para inserir um novo formulário de usuário em seu código, selecione o UserForm opção do menu Inserir.
Um novo formulário de usuário aparecerá no Explorador de Projetos e será mostrado na janela de código à direita.
Você pode renomear seu formulário usando o Propriedades caixa. Isso deve aparecer abaixo do seu Explorador de Projetos.
Se estiver visível, pressione F4 ou clique Visualizar, Janela de Propriedades.
Clique no Nome propriedade e renomeie seu formulário.
Agora podemos começar a preencher nosso formulário com controles - o controle de caixa de texto é o controle mais popular junto com o controle de rótulo e o botão de comando.
Para preencher o formulário com controles, precisamos ligar a caixa de ferramentas.
No Cardápio, selecione Exibir> Caixa de ferramentas.
Criação de uma caixa de texto
Para criar uma caixa de texto em seu formulário, selecione o controle Caixa de texto na caixa de ferramentas.
Arraste uma forma de caixa no formulário com o mouse, mantendo o botão esquerdo pressionado e, a seguir, solte o botão do mouse.
Como esta é a primeira caixa de texto que estamos criando, ela se chamará TextBox1. Assim como no formulário, você pode usar a janela Propriedades para renomear a caixa de texto.
Podemos continuar a criar quantas caixas de texto em nosso formulário forem necessárias e nomeá-las conforme apropriado usando a propriedade Nome na janela Propriedades.
Criação de um controle de etiqueta
Um controle de rótulo nos diz o que a caixa de texto será usada para conter. Você arrasta o formulário da mesma forma que faz para uma Caixa de texto e, em seguida, pode digitar o texto necessário dentro do controle de rótulo, por exemplo: Nome como mostrado abaixo.
Tal como acontece com as caixas de texto, continue a criar quantas forem necessárias no formulário.
Criando um controle de caixa de combinação
Uma caixa de combinação (ou uma caixa suspensa) permite que o usuário selecione em uma lista de valores. Para criar uma caixa de combinação, clique na caixa de ferramentas no controle Caixa de combinação e clique e arraste a caixa de combinação em seu formulário.
Nomeie a caixa de combinação apropriadamente.
Adicionando valores à caixa de combinação
Para preenchê-lo com valores, precisamos codificar no Inicializar método do objeto de formulário do usuário.
Para obter o Código por trás do formulário (CBF), clique duas vezes no formulário ou clique no botão de código no Explorador de projeto para alternar para a visualização do código.
Na lista suspensa à esquerda, selecione Formulário do usuário e, em seguida, na lista suspensa à direita, selecione Inicializar.
Digite o seguinte código em Sub e End Sub para preencher a caixa suspensa:
1234 | Me.cboState.AddItem "Alabama"Me.cboState.AddItem "Alaska"Me.cboState.AddItem "Arizona"Me.cboState.AddItem "Arkansas" |
Claro que podemos continuar a preencher a lista com o resto dos estados dos EUA!
Para executar o formulário do usuário para ver a lista em ação, 1) volte para a visualização do formulário e, 2) na barra de ferramentas, clique no botão Corre botão.
Clique na seta suspensa para ver a lista.
Também podemos usar um intervalo no Excel para preencher a caixa de combinação.
123456 | Sub UserForm_Initialize privado ()Dim rng como alcancePara cada rng no intervalo ("A1: A50")Me.cboState.AddItem rng.ValuePróximo rngEnd Sub |
Isso selecionará quaisquer valores armazenados no intervalo A1 a A50 e preencherá a lista suspensa de acordo.
Criação de um controle de caixa de listagem
Um controle List Box funciona da mesma maneira que um controle Combo Box, mas nos permite ver todas as opções do formulário em formato de lista.
Selecione o controle List Box na caixa de ferramentas e arraste para criar uma caixa de listagem em seu formulário.
Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!
Adicionando valores à caixa de listagem
No evento Initialize do formulário, digite o seguinte código:
123456 | Sub UserForm_Initialize privado ()Dim rng como alcancePara cada rng no intervalo ("A1: A50")Me.lstState.AddItem rng.ValuePróximo rngEnd Sub |
Ao executar o formulário, a caixa de listagem será mostrada conforme demonstrado na imagem abaixo:
Criação de um controle de caixa de seleção
As caixas de seleção permitem que o usuário marque ou desmarque uma opção.
Selecione o controle Caixa de Seleção e clique no formulário que deseja inserir.
Corrija a legenda e o nome da caixa de seleção na janela Propriedades.
Criação de um controle de grupo de opções com botões de opção
Um grupo de opções permite que o usuário selecione a partir de uma série de opções disponíveis. A primeira etapa na criação de um grupo de opções é adicionar um controle de quadro ao formulário e, em seguida, adicionar os botões de opção dentro do quadro que foi adicionado. Fazendo isso, garantimos que, ao executar o formulário, apenas um dos botões de opção dentro do quadro possa ser selecionado por vez.
Selecione o controle Quadro na caixa de ferramentas e arraste para criar um quadro em seu formulário.
Selecione o controle Botão de opção na caixa de ferramentas e clique DENTRO do quadro criado acima para adicionar o botão de opção ao quadro. Repita conforme necessário.
Clique na moldura e 1) altere o nome da moldura e a legenda. Em seguida, 2) clique em cada um dos botões de opção e altere a legenda.
Criando um botão de comando para sair do formulário
Neste estágio, a única maneira de fechar o formulário é usar o botão Fechar no canto direito da barra de controle do formulário. Uma maneira mais eficiente de sair de um formulário, e sobre a qual temos mais controle, é criando um botão Sair no formulário. Isso é feito por meio do controle de botão de comando na caixa de ferramentas.
Selecione o controle Botão de comando e, em seguida, clique e arraste no formulário para criar o botão.
Usando a propriedade Caption, altere a legenda do botão de comando para OK e o Accelerator para “O”
O objetivo do acelerador é que o usuário use o teclado para ativar o botão, neste caso Alt + O ativaria o botão.
Ótimo produto. AutoMacro não apenas escreve seu código, ele ensina enquanto você avança! "- Tony, Reino Unido
Saber maisLeia nossas mais de 900 avaliações
Adicionando código ao botão de comando
Para que o botão de comando funcione, precisamos adicionar o código por trás dele para que, quando o botão for clicado, o código seja executado. Isso é chamado de evento Click do botão.
Para acessar o evento de clique, clique duas vezes no botão na visualização de design do formulário.
1) O evento Click será criado automaticamente, pois este é o evento mais comumente usado para botões de comando.
2) Se clicarmos na caixa suspensa Procedimento no lado direito, veremos uma lista de todos os Métodos de Evento que estão disponíveis para o Botão de Comando. Esta lista muda de acordo com o tipo de controle que criamos, pois existem diferentes eventos disponíveis para diferentes tipos de controles.
Digite o seguinte código no evento click do botão de comando.
123456789101112131415 | Sub privado cmdOK_Click ()Intervalo ("E1") = Me.txtPrimeiro nomeIntervalo ("E2") = Me.txt SobrenomeIntervalo ("E3") = Me.txtCellPhoneIntervalo ("E4") = Me.cboStateIf Me.ckContactInfo = True ThenIntervalo ("E5") = "SMS permitido"OutroIntervalo ("E5") = "SMS não permitido"Fim seIf Me.opt1.Value = True Then Range ("E6") = Me.opt1.CaptionIf Me.opt2.Value = True Then Range ("E6") = Me.opt2.CaptionIf Me.opt3.Value = True Then Range ("E6") = Me.opt3.CaptionDescarregue-meEnd Sub |
Podemos então executar o formulário, preencher as caixas de texto e selecionar na lista suspensa. Em seguida, clicamos em OK para inserir as informações no Excel.