[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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。