Is it possible to hide the Excel Title Bar?

.
Did some searching on the 'Net and found where someone was using API calls to remove the very top strip from the Excel window (Excel Button, Min/Max and the "X").

I put it together with my HIDE and SHOW macros. What you are left with is only the ROW and COLUMN HEADINGS.

Two considerations before implementing this : if you don't provide a means (macro) to close the workbook AND you don't also provide a means to unhide everything, the user will
have no recourse except to REBOOT the computer ... or perform a CTRL/ALT/DEL to bring up the TASK MANAGER to 'kill' EXCEL.

The code is not pretty ... just functional. I am certain it can be improved.

EXPERIMENT WITH A TEST WORKBOOK ... NOT YOUR ORIGINAL !


Code:
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 Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hWndLock As Long) As Long


Private Const GWL_STYLE As Long = (-16) '// The offset of a window's style
Private Const GWL_EXSTYLE As Long = (-20) '// The offset of a window's extended style
Private Const WS_CAPTION As Long = &HC00000 '// Title bar bit
Private Const WS_SYSMENU As Long = &H80000 '// System menu bit
Private Const WS_THICKFRAME As Long = &H40000 '// Sizable frame bit
Private Const WS_MINIMIZEBOX As Long = &H20000 '// Minimize box bit
Private Const WS_MAXIMIZEBOX As Long = &H10000 '// Maximize box bit
Private Const WS_EX_TOOLWINDOW As Long = &H80 '// Tool Window: small titlebar bit
Private Const SC_CLOSE As Long = &HF060 'Constant to identify the Close menu item
'// Set or clear a bit from a style flag
Private Sub SetBit(ByRef lStyle As Long, ByVal lBit As Long, ByVal bOn As Boolean)


If bOn Then
lStyle = lStyle Or lBit
Else
lStyle = lStyle And Not lBit
End If


End Sub
Public Sub SetStyleHide()


Dim lStyle As Long, hMenu As Long


'Get the basic window style
lStyle = GetWindowLong(Application.hwnd, GWL_STYLE)


hide_menu


If lStyle = 0 Then
MsgBox "Unable to determine application window handle...", vbExclamation, "Error"
Exit Sub
End If


'// Build up the basic window style flags for the form adapted to the application window not UF's


SetBit lStyle, WS_CAPTION, False
SetBit lStyle, WS_SYSMENU, False
SetBit lStyle, WS_THICKFRAME, False
SetBit lStyle, WS_MINIMIZEBOX, False
SetBit lStyle, WS_MAXIMIZEBOX, False


'Set the basic window styles
SetWindowLong Application.hwnd, GWL_STYLE, lStyle


'Get the extended window style
lStyle = GetWindowLong(Application.hwnd, GWL_EXSTYLE)




'// Handle the close button
'// hMenu = GetSystemMenu(Application.hWnd, 1)


'// Not wanted - delete it from the control menu
hMenu = GetSystemMenu(Application.hwnd, 0)
DeleteMenu hMenu, SC_CLOSE, 0&




'Update the window with the changes
DrawMenuBar Application.hwnd
SetFocus Application.hwnd


End Sub


Public Sub SetStyleShow()


Dim lStyle As Long, hMenu As Long


'Get the basic window style
lStyle = GetWindowLong(Application.hwnd, GWL_STYLE)


unhide_menu


If lStyle = 0 Then
MsgBox "Unable to determine application window handle...", vbExclamation, "Error"
Exit Sub
End If


'// Build up the basic window style flags for the form adapted to the application window not UF's


SetBit lStyle, WS_CAPTION, True
SetBit lStyle, WS_SYSMENU, True
SetBit lStyle, WS_THICKFRAME, True
SetBit lStyle, WS_MINIMIZEBOX, True
SetBit lStyle, WS_MAXIMIZEBOX, True


'Set the basic window styles
SetWindowLong Application.hwnd, GWL_STYLE, lStyle


'Get the extended window style
lStyle = GetWindowLong(Application.hwnd, GWL_EXSTYLE)




'// Handle the close button
'// hMenu = GetSystemMenu(Application.hWnd, 1)


'// Not wanted - delete it from the control menu
'hMenu = GetSystemMenu(Application.hwnd, 0)
'DeleteMenu hMenu, SC_CLOSE, 0&




'Update the window with the changes
DrawMenuBar Application.hwnd
SetFocus Application.hwnd


End Sub


Sub hide_menu()




With Worksheets("Sheet1")




    With ActiveWindow
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
    End With
    With Application
        .DisplayFullScreen = True
        .DisplayFormulaBar = False
        .DisplayStatusBar = False
    End With
    With Application
    
        .CommandBars("Full Screen").Visible = False
        .CommandBars("Worksheet Menu Bar").Enabled = False
        .CommandBars("Standard").Visible = False
        .CommandBars("Formatting").Visible = False
    End With
End With
End Sub




Sub unhide_menu()




With Worksheets("Sheet1")




    With ActiveWindow
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = True
    End With
    With Application
        .DisplayFullScreen = False
        .DisplayFormulaBar = True
        .DisplayStatusBar = True
    End With
    With Application
        .CommandBars("Full Screen").Visible = True
        .CommandBars("Worksheet Menu Bar").Enabled = True
        .CommandBars("Standard").Visible = True
        .CommandBars("Formatting").Visible = True
    End With
End With
End Sub
 
Upvote 0

Excel Facts

Fastest way to copy a worksheet?
Hold down the Ctrl key while dragging tab for Sheet1 to the right. Excel will make a copy of the worksheet.

Forum statistics

Threads
1,214,590
Messages
6,120,423
Members
448,961
Latest member
nzskater

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top