Botón de minimizar y maximizar en Form de vba

En base a una pregunta del blog, encontré el siguiente código (el cual no es mi autoría) para poder poner tanto un botón de minimizar y uno de maximizar en un formulario de vba.

El código va en el formulario. Lo comparto:

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const GWL_STYLE As Long = (-16)

Private Sub UserForm_Initialize()
    Dim lngMyHandle As Long, lngCurrentStyle As Long, lngNewStyle As Long
    If Application.Version < 9 Then
        lngMyHandle = FindWindow("THUNDERXFRAME", Me.Caption)
    Else
        lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)
    End If
    lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
End Sub

:: Descargar el ejemplo

You may also like...

13 Responses

  1. Jose says:

    Sergio! muchas gracias por el aporte!

  2. Papasmarrone says:

    Pues felicita de mi parte al autor y gracias por el aporte.

  3. pedro says:

    Es muy interesante, me gusta lo que publicaste creo que lo recomendare, es lo que andaba buscando

  4. Luis Daniel Rodriguez Acuña says:

    tengo un problemita con el codigo se ejcuta normal , pero al querer usar mi formulario me sale error :'(, ingreso un codigo para buscar y me sale error

  5. niko says:

    hola amigo esto solo funciona en pc de 32 bits pero en 64 bits sale error.

  6. Nicolas Quispe Gonzales says:

    Todo esta muy bien amigo pero cuando minimizo el formulario no me deja abrir otro archivo excel. ¿existe alguna solucion?

  1. July 30, 2013

    […] Aprovechando que vamos a ocultar la ventana de Excel, y para hacer que nuestro formulario parezca más una aplicación, también le añadiremos la opción de minimizar. El código para minimizar y maximizar hace referencia a otro post que publiqué anteriormente, donde podemos descargarlo Botón de minimizar y maximizar en Form de vba. […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: