VBA: Como fazer um Userfom (para iniciantes)

Agosto 2017

Nesta dica, vamos mostrar-lhe a forma mais simples de criar um userform, para iniciantes.


Neste exemplo, vamos trabalhar apenas no modo criativo e não no modo design, onde as propriedades de objetos (formulário de usuário e controles) são complementadas na janela de propriedades, hard. Também não iremos alterar essas propriedades por código (dinâmica), mas nos concentrar na criação de um diálogo com a:
Pergunta: Subindo?
Dois botões: Sim e Não

Antes de começar, abra uma nova pasta e alterne para o Editor do Visual Basic. Para fazê-lo pressione as teclas Alt + F11 em sua pasta de trabalho.

Design

Como inserir o Userform

Você pode ir em Menu > Inserir:


Ou no botão da barra de ferramentas:


Com isso, nós obteremos:


Nesta fase, você deverá verificar se as janelas foram abertas:


Então:
Propriedades (seta verde) (para abrir: “F4”)
Execução (seta vermelha) (para abrir: “Ctrl” + “G”)
Principal (seta azul)
Com isso, você acaba de criar seu primeiro Userform (formulário de usuário)!

Como alterar a propriedade Legenda

Você pode observar na imagem acima que a barra do título do nosso Userform exibe: Userform1. Teria sido preferível que fosse exibido o título Mensagem. Para que isso aconteça, vamos ter que alterar a propriedade Caption (legenda) do nosso Userform. Na janela das Propriedades, ao lado da legenda, selecione UserForm1:


Depois, digite Mensagem, para obter isto:


Como inserir a Etiqueta

Na caixa de ferramentas (se ela não aparecer no menu “Exibir” > “Caixa de ferramentas”) clique no ícone Etiqueta (título):


Em seguida, clique no Userform (formulário de usuário), no local onde você deseja colocar a sua pergunta:


Observação 1: você pode "desenhar" a sua etiqueta (ou outro controle), executando a função "Arrastar/Soltar" (segurando o botão esquerdo do mouse) no Userform.

Observação 2: na imagem acima, você pode ver que a janela das Propriedades mostra as propriedades da etiqueta (seta vermelha). Na verdade, é nesta janela que aparecem, sistematicamente, as propriedades do objeto selecionado.

Nesta janela Propriedades, altere a propriedade Caption da etiqueta, para inseri-la: Você quer salvar? Agora, você poderá redimensionar a sua etiqueta e posicioná-la onde quiser, usando apenas o mouse.

Como inserir o CommandButton

Da mesma maneira que você inseriu uma etiqueta, insira um CommandButton (botão de comando). Na caixa de ferramentas, clique no ícone:


Em seguida, clique no Userform (formulário de usuário), no local onde você deseja colocar o seu botão e altere as seguintes propriedades:
Nome: CommandButtonYES
Caption: SIM
Você obterá:


Faça o mesmo com o segundo botão, com as seguintes propriedades:
Nome: CommandButtonNO
Caption: NÃO
Você obterá:


Atenção: não se esqueça de sempre selecionar o objeto para alterar as suas propriedades.

Como alinhar os controles

Estamos no caminho certo, a nossa caixa de diálogo está ganhando forma, mas o alinhamento dos botões ainda não está bom. Saiba que o VBA tem uma ferramenta para resolver este problema, basta selecionar os dois botões e clicar com o botão direito do mouse em um dos dois e clicar em Alinhar > Alto:


Pronto, você terminou o design, agora, passe para a seção de código.

Código

Aqui, nós precisamos simular um backup ao clicar no botão Sim e, em seguida, fechar o Userform (formulário de usuário}. Feche apenas o Userform, mais nada, ao clicar em Não. Clicar significa que vamos interceptar o evento de clique em um botão.

Como passar para o modo Código

Nada mais simples, basta clicar duas vezes no botão Sim para obter:


Atualmente, estamos no editor do módulo do seu Userform. Nesta janela, você tem duas listas suspensas muito interessantes: a lista Geral, onde se encontram todos os objetos do seu Userform (incluindo o próprio):


E a lista de Eventos relacionados com o objeto selecionado no menu Geral:


Como usar o evento Clique no botão

Devemos aproveitar o código que reagirá ao evento Clique em um botão. Isso é ótimo porque, com um duplo clique no botão Sim, o VBA cria este procedimento:

Private Sub CommandButtonOUI_Click()
End Sub


É entre estas duas linhas que vamos escrever o código correspondente ao evento Clique no Sim:


Dissequemos a primeira linha:
Private Sub CommandButtonSIM_Click()

Private Sub: significa que este procedimento (Sub) só pode ser chamado a partir do Userform (Private).
CommandButtonSIM_Click: o que vem antes do underline (_) é o nome do objeto (CommandButtonSIM), à direita do evento (Click).

O código do botão ‘Sim’

Saiba que se você colocar um apóstrofo na frente do código você poderá escrever comentários. Estes comentários são muito úteis caso você precise alterar o código logo após a sua criação. Use-os quantas vezes quiser.

Veja aqui o código do botão Sim (não use o Copiar/Colar, digite-o você mesmo):

Private Sub CommandButtonSIM_Click()
    'simulação de backup:
    MsgBox "Backup efetuado"
    'fechar o userform
    Unload UserForm1
End Sub

Este código significa que, no clique do botão Sim, a mensagem Backup realizado aparece. Fecha-se o Userform.

Código do botão ‘Não’

Selecione, no menu Geral, o objeto
CommandButtonNO
e na lista de Eventos, selecione Clique. As duas linhas a seguir aparecerão:

Private Sub CommandButtonNO_Click()

End Sub

Só falta completa-los desta forma:

Private Sub CommandButtonNO_Click()
    'só faça:
    'fechar o userform
    Unload UserForm1
End Sub

Testar o Userform

Para começar, veja algumas opções.

Pelo editor VBE

Opção 1: no modo exibição do código, pressione a tecla F5 para mostrar o formulário de usuário.
Opção 2: no modo exibição do código, clique no menu Execução/Executar Sub/Userform.
Opção 3: no modo de exibição do código Mode, clique no ícone de Leitura (um pequeno triângulo verde).

Em todos os três casos, você obterá:


Pela planilha

Desenhe um botão em uma planilha de sua pasta (Atenção: o controle de botão do comando ActiveX, não o formulário). Clique duas vezes no botão para obter:


Private Sub CommandButton1_Click()

End Sub

Digite entre estas duas linhas:
UserForm1.Show

Você obterá:

Private Sub CommandButton1_Click()
    'carrega e exibe o userform1 :
    UserForm1.Show
End Sub

Feche o editor VBE e o modo criação (ícone com um quadrado, um lápis e régua) e, em seguida, clique no botão, para obter:


Para testar o código, clique em cada um dos botões.
Foto: © Microsoft.com

Veja também

Artigo original publicado por . Tradução feita por ninha25. Última modificação: 20 de agosto de 2016 às 20:32 por ninha25.
Este documento, intitulado 'VBA: Como fazer um Userfom (para iniciantes)', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.