
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



