Formulario de usuario de Excel VBA: macros simples de Excel
Buenas tardes, me llamo Miguel y hoy os traigo un nuevo post.
Este capítulo enseña cómo crear un Formulario de usuario de Excel VBA. El formulario de usuario que vamos a crear se ve así:
Agregar controles
Para agregar controles al formulario de usuario, realice los siguientes pasos.
1. Abra el Editor de Visual Basic. Si el Explorador de proyectos no está visible, haga clic en Ver, Explorador de proyectos.
2. Haga clic en Insertar, formulario de usuario. Si la caja de herramientas no aparece automáticamente, haga clic en Ver, caja de herramientas. Su pantalla debe configurarse de la siguiente manera.
3. Agregue los controles enumerados en la siguiente tabla. Una vez completado, el resultado debe ser coherente con la imagen del formulario de usuario que se muestra arriba. Por ejemplo, cree un control de cuadro de texto haciendo clic en TextBox en el cuadro de herramientas. A continuación, puede arrastrar un cuadro de texto al formulario de usuario. Cuando llegue al marco del automóvil, recuerde dibujarlo primero antes de colocar los dos botones de radio en él.
4. Cambie los nombres y subtítulos de acuerdo con la siguiente tabla. Los nombres se utilizan en el código Excel VBA. Los subtítulos son los que aparecen en pantalla. Es una buena práctica cambiar los nombres de los controles. Esto facilitará la lectura de su código. Para cambiar los nombres y subtítulos de los controles, haga clic en Ver, Ventana Propiedades y haga clic en cada control.
Control | Nombre | Título |
---|---|---|
Formulario de usuario | DinnerPlannerUserForm | Planificador de cenas |
Caja de texto | NameTextBox | |
Caja de texto | PhoneTextBox | |
Cuadro de lista | CityListBox | |
Caja combinada | DinnerComboBox | |
Casilla de verificación | DateCheckBox1 | 13 de junio |
Casilla de verificación | DateCheckBox2 | 20 de junio |
Casilla de verificación | DateCheckBox3 | 27 de junio |
Fotografía | CarFrame | Auto |
Botón de opción | CarOptionButton1 | sí |
Botón de opción | CarOptionButton2 | No. |
Caja de texto | MoneyTextBox | |
Botón rotar | MoneySpinButton | |
Botón de comando | OKButton | Okay |
Botón de comando | ClearButton | Por supuesto |
Botón de comando | Botón cancelar | Cancelar |
7 etiquetas | No hay necesidad de cambiar | Nombre :, número de teléfono: etc. |
Nota: Un cuadro combinado es una lista desplegable desde la cual un usuario puede seleccionar un elemento o completar su propia elección. Solo se puede seleccionar uno de los botones de opción.
Mostrar formulario de usuario
Para mostrar el formulario de usuario, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:
DinnerPlannerUserForm.Show
Aleta Sub
Ahora creemos el Sub UserForm_Initialize. Cuando utilice el método Show para el formulario de usuario, se ejecutará automáticamente.
1. Abra el Editor de Visual Basic.
2. En el Explorador de proyectos, haga clic con el botón derecho en DinnerPlannerUserForm y haga clic en Ver código.
3. Elija Formulario de usuario en la lista desplegable de la izquierda. Elija Inicializar en la lista desplegable de la derecha.
4. Agregue las siguientes líneas de código:
NameTextBox.Value = ""
PhoneTextBox.Value = ""
CityListBox.Clear
Con CityListBox
.AddItem "San Francisco"
.Añadir elemento "Oakland"
.Añadir elemento "Richmond"
Aleta Con
DinnerComboBox. Por supuesto
Con DinnerComboBox
.AddItem "italiano"
.AddItem "chino"
.Añadir artículo "Patatas fritas y carne"
Aleta Con
DateCheckBox1.Value = Falso
DateCheckBox2.Value = Falso
DateCheckBox3.Value = Falso
CarOptionButton2.Value = Cierto
MoneyTextBox.Value = ""
NameTextBox.SetFocus
Aleta Sub
Explicación: los cuadros de texto se vaciarán, los cuadros de lista y los cuadros combinados se completarán, las casillas de verificación no estarán marcadas, etc.
Asignar macros
Ahora hemos creado la primera parte del formulario de usuario. Aunque parece ordenado, no pasará nada cuando hagamos clic en los botones de comando en el formulario de usuario.
1. Abra el Editor de Visual Basic.
2. En el Explorador de proyectos, haga doble clic en DinnerPlannerUserForm.
3. Haga doble clic en el botón Girar dinero.
4. Agregue la siguiente línea de código:
MoneyTextBox.Text = MoneySpinButton.Value
Aleta Sub
Explicación: Esta línea de código actualiza el cuadro de texto cuando usa el botón Rotar.
5. Haga doble clic en el botón Aceptar.
6. Agregue las siguientes líneas de código:
Oscuro emptyFila Cómo Largo
Hoja1.Activa
emptyRow = WorksheetFunction.CountA (Range ("A: A")) + 1
Celdas (fila vacía, 1) .Value = BoxName.Value
Celdas (fila vacía, 2) .Value = PhoneTextBox.Value
Celdas (fila vacía, 3) .Value = CityListBox.Value
Celdas (fila vacía, 4) .Value = DinnerComboBox.Value
sí DateCheckBox1.Value = Cierto Entonces Celdas (emptyRow, 5) .Value = DateCheckBox1.Caption
sí DateCheckBox2.Value = Cierto Entonces Cells (emptyRow, 5) .Value = Cells (emptyRow, 5) .Value & "" & DateCheckBox2.Caption
sí DateCheckBox3.Value = Cierto Entonces Cells (emptyRow, 5) .Value = Cells (emptyRow, 5) .Value & "" & DateCheckBox3.Caption
sí CarOptionButton1.Value = Cierto Entonces
Celdas (emptyRow, 6) .Value = "Sí"
Otra cosa
Celdas (emptyRow, 6) .Value = "No"
Aleta sí
Celdas (fila vacía, 7) .Value = MoneyTextBox.Value
Aleta Sub
Explicación: Primero, activamos Sheet1. A continuación, determinamos la fila vacía. La variable emptyRow es la primera fila vacía y aumenta cada vez que se agrega un registro. Finalmente, transferimos la información del formulario de usuario a las columnas específicas de emptyRow.
7. Haga doble clic en el botón Eliminar.
8. Agregue la siguiente línea de código:
Llamada UserForm_Initialize
Aleta Sub
Explicación: Esta línea de código llama a UserForm_Initialize Sub cuando hace clic en el botón Eliminar.
9. Haga doble clic en el botón Cancelar.
10. Agregue la siguiente línea de código:
Descargarme
Aleta Sub
Explicación: Esta línea de código cierra el formulario de usuario cuando hace clic en el botón Cancelar.
Prueba el formulario de usuario
Salga del Editor de Visual Basic, ingrese las etiquetas que se muestran a continuación en la fila 1 y pruebe el formulario de usuario.
Resultado:
Deja una respuesta