Excel VBA formUsuario
Agregue los controles | Mostrar el formulario de usuario | Asignar las macros | Prueba el formulario de usuario
Este capítulo le enseña cómo crear un UserForm de VBA Excel. El formulario de usuario que se va a crear un aspecto de la siguiente manera:
Añadir los controles
Para agregar los controles para el formulario de usuario, ejecute los siguientes pasos.
-
Abra el `enlace: / VBA-crear a un macro # visual-basic-editor de [Editor de Visual Basic] ‘. Si el Explorador de proyectos no es visible, haga clic en Ver, Explorador de proyectos.
-
Haga clic en Insertar, formulario de usuario. Si el cuadro de herramientas no aparece automáticamente, haga clic en Ver, Caja de herramientas. Su pantalla debe ser configurado de la siguiente manera.
-
Añadir los controles enumerados en la siguiente tabla. Una vez que esto se ha completado, el resultado debe ser consistente con la imagen del formulario de usuario mostrado anteriormente. Por ejemplo, crear un control de cuadro de texto, haga clic en Cuadro de texto del cuadro de herramientas. A continuación, puede arrastrar un cuadro de texto en el formulario de usuario. Cuando llegue al bastidor del coche, recuerde que debe dibujar este marco primero antes de colocar los dos botones de opción en el mismo.
-
Cambie los nombres y títulos de los controles de acuerdo con la siguiente tabla. Los nombres se utilizan en el código VBA Excel. Los títulos son los que aparecen en la pantalla. Es una buena práctica para cambiar los nombres de los controles. Esto hará que su código sea más fácil de leer. Para cambiar los nombres y títulos de los controles, haga clic en Ver, Ventana Propiedades y haga clic en cada control.
Control |
Name |
Caption |
Userform |
DinnerPlannerUserForm |
Dinner Planner |
Text Box |
NameTextBox |
|
Text Box |
PhoneTextBox |
|
List Box |
CityListBox |
|
Combo Box |
DinnerComboBox |
|
Check Box |
DateCheckBox1 |
June 13th |
Check Box |
DateCheckBox2 |
June 20th |
Check Box |
DateCheckBox3 |
June 27th |
Frame |
CarFrame |
Car |
Option Button |
CarOptionButton1 |
Yes |
Option Button |
CarOptionButton2 |
No |
Text Box |
MoneyTextBox |
|
Spin Button |
MoneySpinButton |
|
Command Button |
OKButton |
OK |
Command Button |
ClearButton |
Clear |
Command Button |
CancelButton |
Cancel |
7 Labels |
No need to change |
Name:, Phone Number:, etc. |
Nota: un cuadro combinado es una lista desplegable desde donde un usuario puede seleccionar un elemento o de relleno en su / su propia elección. Sólo uno de los botones de opción se puede seleccionar.
Mostrar el formulario de usuario
Para mostrar el formulario de usuario, colocar un enlace: / VBA-crear a un macro-# botón de comando [botón de comando]
en su hoja de trabajo y añadir la siguiente línea de código:
Private Sub CommandButton1_Click() DinnerPlannerUserForm.Show End Sub
Ahora vamos a crear el Sub UserForm_Initialize. Cuando se utiliza el método Show para el formulario de usuario, automáticamente se ejecutará este sub.
-
Abra el `enlace: / VBA-crear a un macro # visual-basic-editor de [Editor de Visual Basic] ‘.
-
En el Explorador de proyectos, haga clic en DinnerPlannerUserForm y luego haga clic en Ver código.
-
Elegir formulario de usuario de la lista desplegable izquierda. Inicializar elegir de la lista desplegable de la derecha.
-
Añadir las siguientes líneas de código:
Private Sub UserForm_Initialize() 'Empty NameTextBox NameTextBox.Value = "" 'Empty PhoneTextBox PhoneTextBox.Value = "" 'Empty CityListBox CityListBox.Clear 'Fill CityListBox With CityListBox .AddItem "San Francisco" .AddItem "Oakland" .AddItem "Richmond" End With 'Empty DinnerComboBox DinnerComboBox.Clear 'Fill DinnerComboBox With DinnerComboBox .AddItem "Italian" .AddItem "Chinese" .AddItem "Frites and Meat" End With 'Uncheck DataCheckBoxes DateCheckBox1.Value = False DateCheckBox2.Value = False DateCheckBox3.Value = False 'Set no car as default CarOptionButton2.Value = True 'Empty MoneyTextBox MoneyTextBox.Value = "" 'Set Focus on NameTextBox NameTextBox.SetFocus End Sub
Explicación: cuadros de texto se vacían, cuadros de lista y cuadros combinados están llenos, casillas de verificación están desactivadas, etc.
Asignar las macros
Ahora hemos creado la primera parte del formulario de usuario. A pesar de que se ve bien ya, no pasará nada sin embargo, cuando hacemos clic en los botones de comando en el formulario de usuario.
-
Abra el `enlace: / VBA-crear a un macro # visual-basic-editor de [Editor de Visual Basic] ‘.
-
En el Explorador de proyectos, haga doble clic en DinnerPlannerUserForm.
-
Haga doble clic en el botón de giro del dinero.
-
Añadir la siguiente línea de código:
Private Sub MoneySpinButton_Change() MoneyTextBox.Text = MoneySpinButton.Value End Sub
Explicación: esta línea de código actualiza el cuadro de texto cuando se utiliza el botón de girar.
-
Haga doble clic en el botón OK.
-
Añadir las siguientes líneas de código:
Private Sub OKButton_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 'Transfer information Cells(emptyRow, 1).Value = NameTextBox.Value Cells(emptyRow, 2).Value = PhoneTextBox.Value Cells(emptyRow, 3).Value = CityListBox.Value Cells(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 Cells(emptyRow, 6).Value = "Yes" Else Cells(emptyRow, 6).Value = "No" End If Cells(emptyRow, 7).Value = MoneyTextBox.Value End Sub
Explicación: en primer lugar, activamos Hoja1. A continuación, vamos a determinar emptyRow. El emptyRow variable es la primera fila vacía y aumenta cada vez que se agrega un registro. Por último, transferimos la información del formulario de usuario a las columnas específicas de emptyRow.
-
Haga doble clic en el botón Borrar.
-
Añadir la siguiente línea de código:
Private Sub ClearButton_Click() Call UserForm_Initialize End Sub
Explicación: esta línea de código llama al Sub UserForm_Initialize cuando se hace clic en el botón Borrar.
-
Haga doble clic en el botón Cancelar.
-
Agregar la siguiente línea de código:
Private Sub CancelButton_Click() Unload Me End Sub
Explicación: esta línea de código cierra el formulario de usuario al hacer clic en el botón Cancelar.
Prueba el formulario de usuario
Cierre el Editor de Visual Basic, escriba las etiquetas que se muestran a continuación en la fila 1 y probar el formulario de usuario.
Resultado: