¿Cómo usar el evento Resize en VBA?

El evento Resize en VBA suele ser usado para manejar los cambios en el tamaño de formularios de usuario (UserForms). Este evento se desencadena cada vez que se cambia el tamaño del formulario, y es útil si deseas realizar alguna acción cuando el formulario es redimensionado, como por ejemplo, ajustar el tamaño o la posición de los controles, recalcular valores o redibujar un gráfico.

Aquí te muestro un ejemplo básico de cómo implementar el evento Resize en un UserForm en VBA:

  • Abre el editor de VBA (Visual Basic for Applications) con ALT + F11.
  • Inserta un nuevo UserForm si aún no tienes uno. Puede hacerlo mediante el menú Insertar > UserForm.
  • Haz clic derecho en el UserForm y elige Ver código.
  • En la ventana de código del UserForm, selecciona UserForm en el menú desplegable de la izquierda (el objeto para el que quieres escribir el código), y luego Resize en el menú desplegable de la derecha (el evento que quieres manejar).

Ahora podrás implementar lo que deseas que suceda cuando el evento Resize se desencadene. A continuación, tienes un ejemplo de código que ajusta un control de botón para que permanezca centrado horizontalmente en el UserForm cada vez que este cambia de tamaño:

VBA

Private Sub UserForm_Resize()
    ' Asegúrate de que hay espacio suficiente para evitar errores.
    If Me.InsideWidth > 100 Then
       ' Centrar un botón llamado "CommandButton1" horizontalmente.
       Me.CommandButton1.Left = (Me.InsideWidth Me.CommandButton1.Width) / 2
    End If
End Sub

Recuerda cambiar «CommandButton1» por el nombre del control que tienes en tu formulario. Asegúrate también de que los controles y los valores específicos correspondan a los que están en tu UserForm y a lo que quieres lograr.

Cada vez que cambies el tamaño de tu UserForm, VBA ejecutará automáticamente el código dentro del procedimiento UserForm_Resize().

Ten en cuenta que si el UserForm es redimensionado a un tamaño muy pequeño, podrías acabar con valores negativos o controles que no caben. Por eso es común ver comprobaciones como If Me.InsideWidth > 100 Then para prevenir errores.

No olvides también que el manejo excesivo del evento Resize puede ralentizar la respuesta de tu UserForm si ejecutas acciones que consumen muchos recursos. Mantén el código dentro del evento Resize lo más eficiente y sencillo posible.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario