Boton Minimizar y Maximizar

Voy a comenzar un proyecto nuevo en excel con VB pero en el formulario no me aparecen ni el boton maximizar ni minimizar alguien me podria ayudar.

1 respuesta

Respuesta
1
Esos "botones" no vienen por defecto en los userform de VBA. Debes crearlos usando funciones de la APIde windows:
'Code to add a miminise and maximise button to a VBA userform
'Daniel Klann 13th June 2002
'Windows API functions we need to use to achieve this
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
'Constants used within the API functions above
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
    'Get the Windows handle of the userform - required for the API calls
    If Application.Version < 9 Then
        lngMyHandle = FindWindow("THUNDERXFRAME", Me.Caption)   'For Excel 97
    Else
        lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)   'For Excel 2000 onwards
    End If
    'Get the current style of the userform
    lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
    'Create a new style with max and min buttons
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    'Apply it to the userform
    SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
End Sub
OJO, esto va en el modulo de userform
Abraham
Hola Abraham
lo debo colocar al iniciar el formulario? lo intente y no me funciona
Carolina
Pues tal y como te indico al final del anterior mensaje (OJO...), todo va en el modulo del userform... como vez se usa el evento "Initialize" del userform, y las declaraciones de variables deben ir en la parte superior de dicho modulo
Abraham

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas