S
Steve
I am trying to prevent a workbook I made from being minimized/maximized by
the user. I have command buttons to do that and I want to force them to use
the command buttons. The code below disables the min/max application buttons
in Excel 2003, but it only disables the close button in Excel 2007. It also
disables dragging to resize the application window in 2007, but that doesn't
help me. I need to disable the min/max button and it needs to work in Excel
2007. Any suggestions?
Thanks
Steve
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, _
ByVal bRevert As Integer) As Integer
Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, _
ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
'The following procedure disables the Control menu.
Sub Disable_Control()
Dim X As Integer, hwnd As Long
hwnd = FindWindow("XLMain", Application.Caption)
For X = 1 To 9
'Delete the first menu command and loop until
'all commands are deleted
Call DeleteMenu(GetSystemMenu(hwnd, False), 0, 1024)
Next X
End Sub
'The following procedure restores the Control menu.
'Note that to run this procedure, the Declare statements above
'must be in the module.
Sub RestoreSystemMenu()
Dim hwnd As Long
'Get the window handle of the Excel application.
hwnd = FindWindow("xlMain", Application.Caption)
'Restore system menu to original state.
hMenu% = GetSystemMenu(hwnd, 1)
End Sub
the user. I have command buttons to do that and I want to force them to use
the command buttons. The code below disables the min/max application buttons
in Excel 2003, but it only disables the close button in Excel 2007. It also
disables dragging to resize the application window in 2007, but that doesn't
help me. I need to disable the min/max button and it needs to work in Excel
2007. Any suggestions?
Thanks
Steve
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, _
ByVal bRevert As Integer) As Integer
Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, _
ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
'The following procedure disables the Control menu.
Sub Disable_Control()
Dim X As Integer, hwnd As Long
hwnd = FindWindow("XLMain", Application.Caption)
For X = 1 To 9
'Delete the first menu command and loop until
'all commands are deleted
Call DeleteMenu(GetSystemMenu(hwnd, False), 0, 1024)
Next X
End Sub
'The following procedure restores the Control menu.
'Note that to run this procedure, the Declare statements above
'must be in the module.
Sub RestoreSystemMenu()
Dim hwnd As Long
'Get the window handle of the Excel application.
hwnd = FindWindow("xlMain", Application.Caption)
'Restore system menu to original state.
hMenu% = GetSystemMenu(hwnd, 1)
End Sub