Trabajando con UserForms en Excel 2016 VBA

Rate this post

Cada ventana de diálogo de Excel que se crea en VBA se almacena en su propio objeto UserForm: una ventana de diálogo por cada formulario de usuario. Usted crea y accede a estos UserForms en el Editor de Visual Basic.

Inserción de un nuevo formulario de usuario

Inserte un objeto UserForm siguiendo estos pasos:

  1. Active el VBE pulsando Alt+F11.
  2. Seleccione el libro de trabajo que contendrá el UserForm en la ventana Proyecto.
  3. Seleccione Insertar → UserForm.VBE inserta un nuevo objeto UserForm, que contiene un cuadro de diálogo vacío.

Aquí hay un UserForm – un cuadro de diálogo vacío. Su trabajo, si decide aceptarlo, es añadir algunos controles a este formulario de usuario.

Un nuevo objeto UserForm.

Adición de controles a un formulario de usuario

Al activar un formulario de usuario, el VBE muestra la caja de herramientas en una ventana flotante. Utilice las herramientas de la caja de herramientas para añadir controles a su formulario de usuario. Si, por alguna razón, la caja de herramientas no aparece cuando activa su formulario de usuario, seleccione Ver → Caja de herramientas.

Para añadir un control, simplemente haga clic en el control deseado en la caja de herramientas y arrástrelo a la ventana de diálogo para crear el control. Después de añadir un control, puede moverlo y redimensionarlo utilizando técnicas estándar.

Aquí hay una lista de las diversas herramientas, así como sus capacidades.

ControlWhat It DoesLabelShows textTextBoxPermite al usuario introducir textoComboBoxMuestra una lista desplegableListBoxMuestra una lista de elementosCheckBoxProporciona opciones como on/off o yes/noOptionButtonPermite al usuario seleccionar una de varias opciones; se usa en
grupos de dos o másBotonesToggleButtonPermite al usuario activar o desactivar un botónContiene otros controlesComandoBotónBotónTabStripDisplays tabsMultiPageA tabbed container for other objectsScrollBarPermite al usuario arrastrar una barra para establecer una configuraciónBotónSpinButtonPermite al usuario hacer clic en un botón para cambiar un valorMantener una imagenMantener una imagenEditarEditPermite al usuario seleccionar un rangoCambiar

propiedades para un control UserForm

Cada control que añada a un formulario de usuario tiene propiedades que determinan el aspecto o el comportamiento del control. Además, el propio UserForm tiene su propio conjunto de propiedades. Puede cambiar estas propiedades con la ventana Propiedades. Esto muestra la ventana Propiedades cuando se selecciona un control de botón de comando.

Utilice las ventanas Propiedades para cambiar las propiedades de los controles de UserForm.

La ventana Propiedades aparece cuando presiona F4, y las propiedades mostradas en esta ventana dependen de lo que esté seleccionado. Si selecciona un control diferente, las propiedades cambian a las apropiadas para ese control. Para ocultar la ventana Propiedades y quitarla del camino, haga clic en el botón Cerrar en su barra de título. Pulsando F4 siempre lo devuelve cuando lo necesita.

Las propiedades de los controles incluyen las siguientes:

  • Nombre
  • Ancho
  • Altura
  • Valor
  • Leyenda

Cada control tiene su propio conjunto de propiedades (aunque muchos controles tienen algunas propiedades comunes). Para cambiar una propiedad utilizando la ventana Propiedades, siga estos pasos:

  1. Asegúrese de que se ha seleccionado el control correcto en el formulario de usuario.
  2. Asegúrese de que la ventana Propiedades esté visible.
  3. En la ventana Propiedades, haga clic en la propiedad que desee cambiar.
  4. Realice el cambio en la parte derecha de la ventana Propiedades.

Si selecciona el propio UserForm (no un control en el UserForm), puede utilizar la ventana Propiedades para ajustar las propiedades del UserForm.

Visualización de la ventana Código de UserForm

 

Cada objeto UserForm tiene un módulo Code que contiene el código VBA (los procedimientos de manejo de eventos) que se ejecuta cuando el usuario trabaja con el cuadro de diálogo. Para ver el módulo Código, pulse F7. La ventana Código está vacía hasta que añada algunos procedimientos.

Pulse Mayús+F7 para volver al cuadro de diálogo.

Aquí hay otra manera de cambiar entre la ventana Código y la pantalla UserForm: Utilice los botones Ver código y Ver objeto en la barra de título de la ventana Proyecto. O haga clic con el botón derecho del ratón en el formulario de usuario y seleccione Ver código. Si está viendo el código, haga doble clic en el nombre del formulario de usuario en la ventana del proyecto para volver al formulario de usuario.

Visualización de un formulario de usuario

Para visualizar un formulario de usuario, utilice el método Mostrar del formulario de usuario en un procedimiento VBA.

La macro que muestra el cuadro de diálogo debe estar en un módulo VBA, no en la ventana Código del formulario de usuario.

El siguiente procedimiento muestra la caja de diálogo llamada UserForm1:

Sub ShowDialogBox() UserForm1.Show' Otras sentencias pueden ir aquí al final del submenú

Cuando Excel muestra el cuadro de diálogo, la macro ShowDialogBox se detiene hasta que el usuario cierra el cuadro de diálogo. A continuación, VBA ejecuta las declaraciones restantes en el procedimiento. La mayoría de las veces, no tendrás más código en el procedimiento. Como verá más adelante, ponga los procedimientos del gestor de eventos en la ventana Código del formulario de usuario. Estos procedimientos se activan cuando el usuario trabaja con los controles del formulario de usuario.

Uso de la información de un formulario de usuario

El VBE proporciona un nombre para cada control que añada a un formulario de usuario. El nombre del control corresponde a su propiedad Name. Utilice este nombre para referirse a un control en particular en su código. Por ejemplo, si añade un control CheckBox a un UserForm llamado UserForm1, el control CheckBox se llama CheckBox1 por defecto. Puede utilizar la casilla Propiedades para que este control aparezca con una marca de verificación. O puedes escribir código para hacerlo:

UserForm1.CheckBox1.Value = True

La mayoría de las veces, usted escribe el código para un UserForm en el módulo de código del UserForm. Si ese es el caso, puede omitir el calificador de objetos UserForm y escribir la sentencia de esta manera:

CheckBox1.Value = True

Su código VBA también puede comprobar varias propiedades de los controles y tomar las medidas apropiadas. La siguiente sentencia ejecuta una macro llamada PrintReport si la casilla de verificación (llamada CheckBox1) está marcada:

Si CheckBox1.Value = True entonces llame a PrintReport

Normalmente es una buena idea cambiar el nombre por defecto que el VBE le ha dado a sus controles a algo más significativo.

Reply