Error Checking in Excel
Thanks Thanks:  0
Likes Likes:  0
Results 1 to 5 of 5

Thread: Creating Minimise and Maximise functions

  1. #1
    Board Regular
    Join Date
    Feb 2002
    Location
    Where the wild roses grow
    Posts
    285
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default


    Is there any way to add minimise and maximise buttons on to a form as my form takes up too much of the screen and I need to be able to minimise and maximise it whenever I like

    Can anyone help?

  2. #2
    MrExcel MVP Mark O'Brien's Avatar
    Join Date
    Feb 2002
    Location
    Columbus, OH, USA
    Posts
    3,530
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    I know of a way to add minimise and maximise buttons. However, when you minimise it minimises Excel and not just the form. Would this be useful to you? Maximise still works great.

    It will take me a while to dig out the code, that's why I ask.

  3. #3
    Board Regular
    Join Date
    Feb 2002
    Location
    Where the wild roses grow
    Posts
    285
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    That'd be great, thanks a lot

  4. #4
    MrExcel MVP Mark O'Brien's Avatar
    Join Date
    Feb 2002
    Location
    Columbus, OH, USA
    Posts
    3,530
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    OK put this code into a standard module:



    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex 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 Const GWL_STYLE As Long = (-16) 'The offset of a window's style
    Private Const WS_SYSMENU As Long = &H80000 'Style to add a system menu
    Private Const WS_MINIMIZEBOX As Long = &H20000 'Style to add a Minimize box on the title bar
    Private Const WS_MAXIMIZEBOX As Long = &H10000 'Style to add a Maximize box to the title bar

    Public Sub MinMax(sCaption As String)

    Dim iStyle As Long

    'Get handle to userform
    If Val(Application.Version) < 9 Then
    hWndForm = FindWindow("ThunderXFrame", sCaption) 'XL97
    Else
    hWndForm = FindWindow("ThunderDFrame", sCaption) 'XL2000
    End If

    'Get the basic window styles
    iStyle = GetWindowLong(hWndForm, GWL_STYLE)

    'Add System menu
    iStyle = iStyle Or WS_SYSMENU
    'Add minimise button
    iStyle = iStyle Or WS_MINIMIZEBOX
    'Add maximise button
    iStyle = iStyle Or WS_MAXIMIZEBOX
    'Set the basic window styles
    SetWindowLong hWndForm, GWL_STYLE, iStyle
    End Sub



    Now in you userform initialise (initialize?) event use this code to call it:


    MinMax me.Caption


    Basically, for this routine to work we're just sending the userform's caption then the subroutine works it's magic.

    Need to reference my source on this one.

    http://www.bmsltd.co.uk/Excel/Default.htm

    HTH

    _________________
    [b] Mark O'Brien

    [ This Message was edited by: Mark O'Brien on 2002-03-01 07:12 ]

    [ This Message was edited by: Mark O'Brien on 2002-03-01 07:33 ]

  5. #5
    Board Regular
    Join Date
    Feb 2002
    Location
    Where the wild roses grow
    Posts
    285
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    My Excel keeps crashin, it's doing it company wide at the moment. Systems are working on it but I cant try the thing you sent me just yet.

    Thanks a lot though for digging it out, I'm sure it'll be great

    Thanks again

Some videos you may like

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •