Solved

How can I disable the close "X" in the Excel 2007/2010 title bar?

Posted on 2010-09-14
2
388 Views
Last Modified: 2012-05-10
The code below works in thisWorkbook in Excel 2003. I need a way to do this in Excel 2007/2010. Can anyone help?

Option Explicit

'Written: December 24, 2008
'Author:  Leith Ross
'Summary: Enables or Disables the Close "X" on Excel's title bar.

Private Declare Function FindWindow _
  Lib "user32.dll" _
   Alias "FindWindowA" _
    (ByVal lpszClass As String, _
     ByVal lpszWindow As String) As Long
     
Private Declare Function GetSystemMenu _
  Lib "user32.dll" _
  (ByVal hwnd As Long, _
   ByVal bRevert As Long) As Long
    
Private Declare Function RemoveMenu _
  Lib "user32" _
  (ByVal hMenu As Long, _
   ByVal nPosition As Long, _
   ByVal wFlags As Long) As Long
   
Private Declare Function DrawMenuBar _
  Lib "user32.dll" _
    (ByVal hwnd As Long) As Long

Public Sub SetCloseX(ByVal bEnable As Boolean)

  Dim Action As Long
  Dim hMenu As Long
  Dim hwnd As Long
  Dim Ret As Long
  
  Const MF_BYCOMMAND As Long = &H0
  Const SC_CLOSE As Long = &HF060
  
    Action = CLng(bEnable)
    hwnd = FindWindow("XLMAIN", vbNullString)
    hMenu = GetSystemMenu(hwnd, Action)
    
    Ret = RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
    Ret = DrawMenuBar(hwnd)

End Sub

Sub RedXworks()
'put this part into workbook_activate, not behind a button
SetCloseX True
End Sub

Sub RedXdisabled()
'put this part into workbook_deactivate, not behind a button
SetCloseX False
End Sub

Open in new window

0
Comment
Question by:wcpoa8
2 Comments
 
LVL 9

Expert Comment

by:hitsdoshi1
ID: 33676670
Please the code in Thisworkbook object module

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If [your criteria] then
MsgBox "Close Diabled"
Cancel = True
endif
End Sub

Cancel = True which will cancel/disable the close operation.
0
 

Accepted Solution

by:
wcpoa8 earned 0 total points
ID: 33676686
This code works after all. I have my file wrapped in software called LockXLS. That seems to be the problem. Sorry about that. I need to close this question.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Workbook link problems after copying tabs to a new workbook? David Miller (dlmille) Intro Have you either copied sheets to a new workbook, and after having saved and opened that workbook, you find that there are links back to the original sou…
This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question