Cambiar tamaño de formulario en ejecución en Excel

Cuando nos dedicamos a crear formularios personalizados, siempre llega la necesidad de cambiar el tamaño de los mismos, así como cambiar la posición de los controles, pasando por ocultarlos o mostrarlos dependiendo la necesidad.

En esta ocasión, comparto un ejemplo donde incluyo código vba que dinámicamente cambia el tamaño de un Form, oculta un Frame y cambia de posición dos Buttons.

Ver video Capítulo 76 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Conceptos

La propiedad para asignar tamaño a un formulario es Height, y los valores que manejaremos son 219 y 145 con opciones vistas y ocultas respectivamente.

La propiedad para cambiar de posición los botones de Aceptar y Cancelar es Top, y los valores que manejaremos son 168 y 90.

Vista de formulario inicial, sin las opciones visibles

image

Vista de formulario con tamaño aumentado y opciones visibles

image

Código del formulario

'::EXCELeINFO - cambiar tamaño de formulario en ejecución
'::Sergio Alejandro Campos MVP
'::14-oct-2012
'::http://exceleinfo.wordpress.com/
'
'Declaramos la variable vOpciones para que esté presente en todos
'las subrutina
Public vOpciones As Integer
'
Private Sub btnAceptar_Click()
MsgBox "El formulario queda de alto " & Me.Height, vbInformation, "ECELeINFO"
End Sub
'
Private Sub btnAumentar_Click()
'Si el valor de la variable es 0 ó 1 cambian las medidas de
'height y top
If vOpciones = 1 Then
vOpciones = 0
With Me
    .btnAumentar.Caption = "Reducir tamaño >>"
    .Height = 219
    .btnAceptar.Top = 168
    .btnCancelar.Top = 168
    .Frame1.Visible = True
End With
'
ElseIf vOpciones = 0 Then
vOpciones = 1
With Me
    .btnAumentar.Caption = "Aumentar tamaño >>"
    .Height = 140
    .btnAceptar.Top = 90
    .btnCancelar.Top = 90
    .Frame1.Visible = False
End With
End If
End Sub
'
Private Sub btnCancelar_Click()
Unload Me
End Sub
'
Private Sub UserForm_Activate()
'Asignamos valor iniciar a la variable y
'Definimos un tamaño inicial de los objetos
vOpciones = 1
With Me
    .btnAumentar.Caption = "Aumentar tamaño >>"
    .Height = 145
    .Frame1.Visible = False
    .btnAceptar.Top = 90
    .btnCancelar.Top = 90
End With
End Sub

:: Descargar ejemplo

You may also like...