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
Vista de formulario con tamaño aumentado y opciones visibles
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