打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA 窗体右上角的关闭按钮事件 UserForm_QueryClose
[JOSS:一般关闭事件都写的Workbook_BeforeClose中,但如果使用了窗体控件,以下这个事件还是很有用的!]

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    'CloseMode参数表明事件发生的原因
    If CloseMode = vbFormControlMenu Then
        MsgBox "你准备退出当前窗口了!"
'这里写点了关闭之后的代码     写Cancel = True 代表不允许关闭!!
    End If
End Sub

---------------------------------------------------------------------------------------------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'CloseMode参数表明事件发生的原因
'若其值等于vbFormControlMenu则意味着用户单击了X图标按钮
If CloseMode = vbFormControlMenu Then
MsgBox "请单击""退出程序""按钮关闭本窗体"
Cancel = True
End If
End Sub
附:注释
vbFormControlMenu 0 用户在 UserForm.上选择“控制”菜单中的“关闭”命令。----就是点右上角的叉的情况,这个时候参数closemode的值为0


VbFormCode 1 由代码调用 Unload 语句。----知道 userform.show么?有show方法也有卸载窗口的unload语句,在用unload userform1来卸载窗口的时候 closemode的值为1


vbAppTaskManager 3 Windows 的“任务管理器”正在关闭这个应用。(仅用于Visual Basic 5.0 。) ---就是在用任务管理器关闭excel的时候

cancel 参数是个Integer值(整数值),你应该知道在VBA里面0值表示False 非零值表示True
当cancel值为false的时候是窗口是不被允许关闭的。

作为一个事件过程,它发生在当用户或者代码试图关闭窗口userform的时候,这个事件一般用来控制窗体userform的关闭,比方说:我不希望用户用点击右上角的叉叉来关闭userform就可以这样来写
Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
   if closemode =0 then '判断是否用电击叉叉来关闭窗口
cancel=0 '如果是,就不允许其关闭
end if

end sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel QueryClose事件的疑问,CloseMode <> 1 Then Cancel = 1
VBA窗体事件 | VBA实例教程
为窗体和控件编写事件
窗体及控件的常用事件
VBA Excel登陆窗体 补充
vbaCommandButton 常用属性+方法记录:
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服