I want to had absolute control over when the user closes my userform. Is there a way to remove the “X” in the upper right hand corner for userforms?
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |
-
Disable “X” Box On UserForms (2000)
Home » Forums » AskWoody support » Productivity software by function » MS Excel and spreadsheet help » Disable “X” Box On UserForms (2000)
- This topic has 10 replies, 4 voices, and was last updated 21 years, 3 months ago.
AuthorTopicWSKevinUCD
AskWoody LoungerAugust 28, 2001 at 6:57 pm #359619Viewing 1 reply threadAuthorReplies-
WSAndrew Cronnolly
AskWoody LoungerAugust 28, 2001 at 7:31 pm #539495You can disable the button so that clicking it has no effect with th efollowing code
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then Cancel = True End If End Sub
That code goes in the UserForm object, and will disable the x button from closing the form. However if you have a Cancel button it will operate as usual.
Andrew C
-
WSralphad
AskWoody LoungerMarch 13, 2004 at 4:41 pm #539596This code placed in the userform’s module will hide the X button:-
Option Explicit
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 WS_SYSMENU = &H80000
Private Const GWL_STYLE = (-16)Private Sub UserForm_Initialize()
HideCloseButton Me
End SubPublic Sub HideCloseButton(ByVal Form As MSForms.UserForm)
Dim hWnd As Long, lStyle As LongSelect Case Int(Val(Application.Version))
Case 8 ‘Excel 97
hWnd = FindWindow(“ThunderXFrame”, Form.Caption)
Case 9 ‘Excel 2000
hWnd = FindWindow(“ThunderDFrame”, Form.Caption)
End Select‘Get the current window style
lStyle = GetWindowLong(hWnd, GWL_STYLE)‘Turn off the System Menu bit
SetWindowLong hWnd, GWL_STYLE, lStyle And Not WS_SYSMENUEnd Sub
(This originally came from Stephen Bullen’s excel page http://www.bmsltd.ie/Excel/Default.htm )
Edited Mar 13th 2004 to update link
-
WSAndrew Cronnolly
AskWoody LoungerAugust 29, 2001 at 8:19 am #539599Adam,
That works fine except that it does not trap ALT-F4, which could be used to close the Form.
However if you use
Private Sub UserForm_Initialize()
HideCloseButton Me
Application.OnKey “%{F4}”, “”
End Subthat should be remedied.
It would be necessary to reverse that when the form is finished with.
Andrew
-
WSAndrew Cronnolly
AskWoody LoungerAugust 29, 2001 at 8:54 am #539601 -
WSralphad
AskWoody LoungerAugust 30, 2001 at 12:04 pm #539844Agreed – the API calls should be used in combination with overriding the Alt+F4 behaviour to guarantee complete control.
Since OnKey is an application method, it’s hardly suprising that it stops you from closing Excel using Alt+F4, as the call to this method obviously has Application level scope. What I DO find suprsising is that you can’t ‘cancel’ the OnKey call. It seems once you’ve set the OnKey for Alt+F4 to “”, you can’t change back to the default behaviour again.
-
WSAndrew Cronnolly
AskWoody Lounger -
WSralphad
AskWoody Lounger
-
-
-
-
WSMichaelRead
AskWoody LoungerAugust 30, 2001 at 12:01 pm #539843The following should work (compliments of a reply from Brooke a while back):
Declarations section of the user form:
Private Declare Function FindWindowA Lib "User32" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLongA Lib "User32" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLongA Lib "User32" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Then this in the userform activate event:
Private Sub UserForm_Activate() Dim hWnd As Long, exLong As Long hWnd = FindWindowA(vbNullString, Me.Caption) exLong = GetWindowLongA(hWnd, -16) If exLong And &H880000 Then SetWindowLongA hWnd, -16, exLong And &HFF77FFFF Me.Hide: Me.Show End If End Sub
-
WSralphad
AskWoody Lounger -
WSAndrew Cronnolly
AskWoody LoungerAugust 30, 2001 at 12:21 pm #539848
Viewing 1 reply thread -

Plus Membership
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Get Plus!
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Search Newsletters
Search Forums
View the Forum
Search for Topics
Recent Topics
-
I set up passkeys for my Microsoft account
by
Lance Whitney
23 minutes ago -
AI is for everyone
by
Peter Deegan
4 hours, 41 minutes ago -
Terabyte update 2025
by
Will Fastie
4 hours, 43 minutes ago -
Migrating from Windows 10 to Windows 11
by
Susan Bradley
5 hours, 3 minutes ago -
Lost sound after the upgrade to 24H2?
by
Susan Bradley
14 hours, 45 minutes ago -
How to move 10GB of data in C:\ProgramData\Package Cache ?
by
Alex5723
3 hours, 15 minutes ago -
Plugged in 24-7
by
CWBillow
43 minutes ago -
Netflix, Apple, BofA websites hijacked with fake help-desk numbers
by
Nibbled To Death By Ducks
1 day, 3 hours ago -
Have Copilot there but not taking over the screen in Word
by
CWBillow
1 day, 1 hour ago -
Windows 11 blocks Chrome 137.0.7151.68, 137.0.7151.69
by
Alex5723
2 days, 19 hours ago -
Are Macs immune?
by
Susan Bradley
17 hours, 5 minutes ago -
HP Envy and the Function keys
by
CWBillow
2 days, 2 hours ago -
Microsoft : Removal of unwanted drivers from Windows Update
by
Alex5723
6 hours, 36 minutes ago -
MacOS 26 beta 1 dropped support for Firewire 400/800
by
Alex5723
3 days, 6 hours ago -
Unable to update to version 22h2
by
04om
14 hours, 48 minutes ago -
Windows 11 Insider Preview Build 26100.4482 (24H2) released to Release Preview
by
joep517
3 days, 14 hours ago -
Windows 11 Insider Preview build 27881 released to Canary
by
joep517
3 days, 14 hours ago -
Very Quarrelsome Taskbar!
by
CWBillow
2 days, 23 hours ago -
Move OneNote Notebook OFF OneDrive and make it local
by
CWBillow
4 days, 3 hours ago -
Microsoft 365 to block file access via legacy auth protocols by default
by
Alex5723
3 days, 15 hours ago -
Is your battery draining?
by
Susan Bradley
15 hours, 26 minutes ago -
The 16-billion-record data breach that no one’s ever heard of
by
Alex5723
15 hours, 26 minutes ago -
Weasel Words Rule Too Many Data Breach Notifications
by
Nibbled To Death By Ducks
4 days, 6 hours ago -
Windows Command Prompt and Powershell will not open as Administrator
by
Gordski
9 hours, 11 minutes ago -
Intel Management Engine (Intel ME) Security Issue
by
PL1
3 days, 15 hours ago -
Old Geek Forced to Update. Buy a Win 11 PC? Yikes! How do I cope?
by
RonE22
3 days, 7 hours ago -
National scam day
by
Susan Bradley
2 days, 14 hours ago -
macOS Tahoe 26 the end of the road for Intel Macs, OCLP, Hackintosh
by
Alex5723
3 days, 10 hours ago -
Cyberattack on some Washington Post journalists’ email accounts
by
Bob99
5 days, 7 hours ago -
Tools to support internet discussions
by
Kathy Stevens
3 days, 20 hours ago
Recent blog posts
Key Links
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.