Error Checking in Excel
Thanks Thanks:  0
Likes Likes:  0
Page 2 of 2 FirstFirst 12
Results 11 to 12 of 12

Thread: Is it possible to hide the Excel Title Bar?

  1. #11
    Board Regular Logit's Avatar
    Join Date
    Aug 2016
    Location
    United States
    Posts
    1,624
    Post Thanks / Like
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    Default Re: 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

  2. #12
    Board Regular Logit's Avatar
    Join Date
    Aug 2016
    Location
    United States
    Posts
    1,624
    Post Thanks / Like
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Is it possible to hide the Excel Title Bar?

    .
    Here is a download link to the workbook :

    https://www.amazon.com/clouddrive/sh...uAT6M13xq2yxV1

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
  •