Adicione os controles | Mostrar o formulário do usuário | Atribuir as macros | Teste o formulário do usuário
Este capítulo ensina como criar um Formulário de usuário do Excel VBA. O formulário de usuário que vamos criar tem a seguinte aparência:
Adicione os controles
Para adicionar os controles ao formulário do usuário, execute as seguintes etapas.
1. Abra o Editor do Visual Basic. Se o Project Explorer não estiver visível, clique em View, Project Explorer.
2. Clique em Inserir, Formulário do usuário. Se a caixa de ferramentas não aparecer automaticamente, clique em Exibir, Caixa de ferramentas. Sua tela deve ser configurada conforme abaixo.
3. Adicione os controles listados na tabela abaixo. Depois de concluído, o resultado deve ser consistente com a imagem do formulário do usuário mostrada anteriormente. Por exemplo, crie um controle de caixa de texto clicando em TextBox na caixa de ferramentas. Em seguida, você pode arrastar uma caixa de texto no formulário do usuário. Quando você chegar ao quadro Carro, lembre-se de desenhar esse quadro primeiro, antes de colocar os dois botões de opção nele.
4. Altere os nomes e legendas dos controles de acordo com a tabela abaixo. Os nomes são usados no código VBA do Excel. As legendas são aquelas que aparecem na tela. É uma boa prática alterar os nomes dos controles. Isso tornará seu código mais fácil de ler. Para alterar os nomes e legendas dos controles, clique em Exibir, Janela de propriedades e clique em cada controle.
Ao controle | Nome | Rubrica |
---|---|---|
Userform | DinnerPlannerUserForm | Planejador de Jantar |
Caixa de texto | NameTextBox | |
Caixa de texto | PhoneTextBox | |
List Box | CityListBox | |
Caixa combo | DinnerComboBox | |
Caixa de Seleção | DateCheckBox1 | 13 de junho |
Caixa de Seleção | DateCheckBox2 | 20 de junho |
Caixa de Seleção | DateCheckBox3 | 27 de junho |
Quadro | CarFrame | Carro |
Botão de opção | CarOptionButton1 | sim |
Botão de opção | CarOptionButton2 | Não |
Caixa de texto | MoneyTextBox | |
Botão giratório | MoneySpinButton | |
Botão de comando | OKButton | OK |
Botão de comando | ClearButton | Claro |
Botão de comando | CancelButton | Cancelar |
7 rótulos | Não precisa mudar | Nome :, Número de telefone :, etc. |
Nota: uma caixa de combinação é uma lista suspensa de onde um usuário pode selecionar um item ou preencher sua própria escolha. Apenas um dos botões de opção pode ser selecionado.
Mostrar o formulário do usuário
Para mostrar o formulário de usuário, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:
Private Sub CommandButton1_Click ()
DinnerPlannerUserForm.Show
End Sub
Agora vamos criar o Sub UserForm_Initialize. Quando você usa o método Show para o formulário do usuário, este sub será executado automaticamente.
1. Abra o Editor do Visual Basic.
2. No Explorador de Projetos, clique com o botão direito do mouse em DinnerPlannerUserForm e clique em Exibir Código.
3. Escolha Userform na lista suspensa à esquerda. Escolha Inicializar na lista suspensa à direita.
4. Adicione as seguintes linhas de código:
Sub UserForm_Initialize privado ()
'Esvaziar NameTextBox
NameTextBox.Value = ""
'Esvaziar PhoneTextBox
PhoneTextBox.Value = ""
'Esvaziar CityListBox
CityListBox.Clear
'Preencher CityListBox
Com CityListBox
.Adicionar item "San Francisco"
.Adicionar o item "Oakland"
.Adicionar item "Richmond"
Terminar com
'Empty DinnerComboBox
DinnerComboBox.Clear
'Preencher DinnerComboBox
Com DinnerComboBox
.AddItem "Italiano"
.AddItem "Chinês"
.Adicionar o item "Batatas fritas e carne"
Terminar com
'Desmarque DataCheckBoxes
DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False
'Definir nenhum carro como padrão
CarOptionButton2.Value = True
'Esvaziar MoneyTextBox
MoneyTextBox.Value = ""
'Definir foco em NameTextBox
NameTextBox.SetFocus
End Sub
Explicação: as caixas de texto são esvaziadas, as caixas de listagem e as caixas de combinação são preenchidas, as caixas de seleção estão desmarcadas, etc.
Atribuir as macros
Agora criamos a primeira parte do formulário de usuário. Embora já pareça legal, nada acontecerá ainda quando clicarmos nos botões de comando no formulário do usuário.
1. Abra o Editor do Visual Basic.
2. No Project Explorer, clique duas vezes em DinnerPlannerUserForm.
3. Clique duas vezes no botão de rotação do dinheiro.
4. Adicione a seguinte linha de código:
Sub MoneySpinButton_Change privado ()
MoneyTextBox.Text = MoneySpinButton.Value
End Sub
Explicação: esta linha de código atualiza a caixa de texto quando você usa o botão de rotação.
5. Clique duas vezes no botão OK.
6. Adicione as seguintes linhas de código:
Sub privado OKButton_Click ()
Dim emptyRow As Long
'Tornar a Folha1 ativa
Sheet1.Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA (Range ("A: A")) + 1
'Transferir informação
Células (emptyRow, 1) .Value = NameTextBox.Value
Células (emptyRow, 2) .Value = PhoneTextBox.Value
Células (emptyRow, 3) .Value = CityListBox.Value
Células (emptyRow, 4) .Value = DinnerComboBox.Value
If DateCheckBox1.Value = True Then Cells (emptyRow, 5) .Value = DateCheckBox1.Caption
If DateCheckBox2.Value = True Then Cells (emptyRow, 5) .Value = Cells (emptyRow, 5) .Value & "" & DateCheckBox2.Caption
If DateCheckBox3.Value = True Then Cells (emptyRow, 5) .Value = Cells (emptyRow, 5) .Value & "" & DateCheckBox3.Caption
If CarOptionButton1.Value = True Then
Células (emptyRow, 6) .Value = "Sim"
Outro
Células (emptyRow, 6) .Value = "Não"
Fim se
Células (emptyRow, 7) .Value = MoneyTextBox.Value
End Sub
Explicação: primeiro, ativamos a Folha1. Em seguida, determinamos emptyRow. A variável emptyRow é a primeira linha vazia e aumenta sempre que um registro é adicionado. Por fim, transferimos as informações do Userform para as colunas específicas de emptyRow.
7. Clique duas vezes no botão Limpar.
8. Adicione a seguinte linha de código:
Private Sub ClearButton_Click ()
Chame UserForm_Initialize
End Sub
Explicação: esta linha de código chama o Sub UserForm_Initialize quando você clica no botão Limpar.
9. Clique duas vezes no botão Cancelar.
10. Adicione a seguinte linha de código:
Sub particular CancelButton_Click ()
Descarregue-me
End Sub
Explicação: esta linha de código fecha o formulário do usuário quando você clica no botão Cancelar.
Teste o formulário do usuário
Saia do Editor do Visual Basic, insira os rótulos mostrados abaixo na linha 1 e teste o formulário do usuário.
Resultado: