excel VBA 窗体 如何禁用窗体关闭按钮
发布时间:2022-07-15 15:06:50
我们前面讲了怎样去除 VBA 窗体的关闭按钮,其实个人感觉没有这个关闭按钮会使整个窗体感觉有点怪,但有时候又想让他不可用,变得不可点击,那该怎么实现呢? 好,我们马上就来试一试看看。
操作如下:
◾在Excel 的VBE窗口中插入一个用户窗体,将其命名为 frmNotEnabledCloseIcon。然后再添加一个模块。在窗体和模块中添加后面所列代码。
◾在工作薄中的工作表中添加一窗体按钮控件,指定其设置宏 ShowNotEnabledCloseIconForm, 其供示范之用.
具体代码:
"frmNotEnabledCloseIcon" 窗体代码
Option Explicit
'****************************************
'---此模块演示了禁用窗体关闭按钮---
'****************************************
'以下声明API函数
#If Win64 Then '64位
'查找窗口
Private Declare PtrSafe Function FindWindow _
Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As LongPtr
'取得窗体系统菜单
Private Declare PtrSafe Function GetSystemMenu _
Lib "user32" ( _
ByVal hwnd As LongPtr, _
ByVal bRevert As Long) _
As LongPtr
'删除菜单项
Private Declare PtrSafe Function DeleteMenu _
Lib "user32" ( _
ByVal hMenu As LongPtr, _
ByVal nPosition As Long, _
ByVal wFlags As Long) _
As Long
'重绘窗体标题栏
Private Declare PtrSafe Function DrawMenuBar _
Lib "user32" ( _
ByVal hwnd As LongPtr) _
As Long
#Else '32位
'查找窗口
Private Declare Function FindWindow _
Lib "User32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
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
#End If
'以下定义常数
Private Const MF_BYCOMMAND = &H0&
Private Const SC_CLOSE = &HF060
'以下下定义变量
#If Win64 Then '64位
Private FHwnd As LongPtr
Private hMenu As LongPtr
#Else
Private FHwnd As Long
Private hMenu As Long
#End If
'关闭按钮点击
Private Sub BtCancel_Click()
Unload Me
End Sub
'恢复按钮点击
Private Sub BtResume_Click()
'恢复原菜单
hMenu = GetSystemMenu(FHwnd, 1)
'重绘窗体标题栏
DrawMenuBar FHwnd
End Sub
'**************************************
'---------------主程序-----------------
'**************************************
Private Sub UserForm_Initialize()
'查找窗口句柄
FHwnd = FindWindow("ThunderDFrame", Me.Caption)
'取得窗体系统菜单
hMenu = GetSystemMenu(FHwnd, 0)
'删除系统菜单中关闭菜单
DeleteMenu hMenu, SC_CLOSE, MF_BYCOMMAND
'重绘窗体标题栏
DrawMenuBar FHwnd
End Sub
"mdNotEnabledCloseIcon" 模块代码
Option Explicit'
此过程为工作表内按钮调用
Sub ShowNotEnabledCloseIconForm()
frmNotEnabledCloseIcon.Show
End Sub
1文件名称 | 1下载链接 |
---|---|
1禁用窗体关闭按钮.zip | http://pan.baidu.com/s/1ntG6Odj |
excel VBA 窗体 如何禁用窗体关闭按钮的下载地址:


猜你喜欢
- win10系统是一款被大众广泛选择的优秀系统!各种各样的个性设置使得每一个用户都可以按照自己的喜好来打造最个性的win10系统,但是在设置各
- 经过一段时间的测试,Windows 11 正式版如期而至。Windows 11 正式版具体的版本号为:22000.194。首个 Window
- win7系统是一款拥有多种功能的优秀系统!但是在使用过程中一些奇怪的小问题也慢慢的出现了,一些小伙们在使用win7的过程中出现了输入法不见了
- 当Win8.1进行宽带连接后,会自动打开Bing网页,这让用户不胜反感,解决这个问题的方法有多种,注册表即本地组策略编辑器,看完本文后根据自
- 在微软的Ignite 2019大会上微软公司宣布了最新的Edge浏览器的正式上市日期:基于Chromium的Microsoft Edge将于
- wps文字怎样插入流程图?在我们日常使用wps文字的时候总会遇到大大小小的问题,例如在wps不会插入流程图,下面小编就为你介绍wps文字如何
- windows7忘记密码强制删除开机密码?开机密码可以有效的保护用户电脑文件数据不被外人使用,但是有的用户忘记了开机密码进不了电脑要怎么解决
- win7系统要如何给硬盘分区呢?很多新买的电脑都只有两个硬盘分区,然后不少朋友却觉得两个硬盘分区根本不够用,所以都想为硬盘多分几个区。但是对
- 我们需要在Excel表格中进行筛选时,条件总是各种各样的,比如我们想要筛选某企业员工信息表中,出勤天数大于等于23天,或者是奖金为200元的
- 最近有Win10用户咨询小编,自己无意中安装了2345王牌输入法,这该如何删除?下面小编就给大家介绍一下Win10删除2345王牌输入法的方
- Excel2010给表格自定义中心辐射填充背景方法操作步骤1、首先打开一份原始的工作表,选中整个表格所在的单元格,单击“开始”选项卡,在“单
- 电脑出现问题,如何把屏幕录起来,快速分享给高手帮忙呢?今天要跟大家分享Berrycast这款屏幕录制工具非常特别,除了基本的屏幕录制功能外,
- 我们都知道在wps中可以使用快捷键来对表格调整,使用快捷键可以很快的调整表格,其实还有更加快捷的方法,那就是直接使用鼠标拖动,下面就让小编告
- 使用excel制作一些像问卷调查类的表格时,我们都会插入选择按钮,选择按钮是如何制作的呢。下面让小编为你带来excel2007插入选择按钮的
- 在mac中插入一款硬盘设备后发现硬盘无法显示在mac中,导致mac无法读取设备,遇到这种问题时需要如何解决?首先,硬盘不能正常在mac上显示
- 在用电脑进行公式编辑的时候,通常都会使用到绝对值符号。其实,绝对值的打法其实很简单,下面就由脚本之家小编为大家分享在word文档中如何输入绝
- PPT是一款十分便捷的演示文档制作软件,并且PPT自带的动画选项,但每次只能添加一种动画,那么如果想要在一个形状上添加多种动画又应该如何去操
- 在wps文字中,有个smartart功能,不知道大家会不会使用,或许有些朋友完全没有听过吧,下面就让小编告诉大家怎样使用wps文字smart
- 在Win10系统的电脑中,我们打开任务管理器时会发现系统空闲进程进程非常占用CPU,那么这个系统空闲进程能不能关闭掉呢?下面就和小编一起来看
- 我们的日常工作生活已经处处充满了wps演示的痕迹,下面小编就为你介绍wps ppt如何添加备注的方法啦!!wps ppt添加备注的方法:方法