¿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:

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
  • 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:

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 nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario