【VBA研究】如何防止用户关闭窗体
2016-01-18 16:45
253 查看
iamlaosong文
VBA开发中经常用到窗体,这样界面可以做的漂亮一点,我们甚至可以关闭Excel应用窗口,只保留我们自己的窗口,只需要启动时增加关闭应用显示语句。虽然Excel应用窗口不显示,但不影响工作表的使用,依然可以在工作表中读写数据。启动窗体语句如下:
显示自己的窗口后,一般不希望用户点击“X”直接关闭窗体,而是希望用户点击指定的按钮关闭,因为常常需要在关闭系统请做一些数据处理。
当用户点击“X”直接关闭窗体时,会激发UserForm_QueryClose事件,可以在这个事件中阻止窗体关闭,代码如下:
Closemode的值为0(vbFormControlMenu)表示用户在 UserForm上选择“控制”菜单中的“关闭”命令。----就是点击右上角的叉的情况。
Closemode的值为1(VbFormCode)表示由代码调用 Unload 语句关闭窗体。----知道 userform.show么?有show方法也有卸载窗口的unload语句,在用unload userform1来卸载窗口的时候 closemode的值为1。
此外,Closemode的值还有2(vbAppWindows)当前窗口操作环境对话正在结束;3(vbAppTaskManager)“任务管理器”窗口正在关闭应用程序;4(vbFormMDIForm)一个MDI子窗体因为MDI窗体正在关闭而关闭。
Cancel 参数是个Integer值(整数值),在VBA里面0值表示False 非零值表示True,当Cancel值为True的时候表示当前关闭操作被终止,也就是说窗口是不被允许关闭的。
注意:Cancel=True表示不允许用户关闭。
VBA开发中经常用到窗体,这样界面可以做的漂亮一点,我们甚至可以关闭Excel应用窗口,只保留我们自己的窗口,只需要启动时增加关闭应用显示语句。虽然Excel应用窗口不显示,但不影响工作表的使用,依然可以在工作表中读写数据。启动窗体语句如下:
Private Sub Workbook_Open() Application.Visible = False UserForm1.Show End Sub
显示自己的窗口后,一般不希望用户点击“X”直接关闭窗体,而是希望用户点击指定的按钮关闭,因为常常需要在关闭系统请做一些数据处理。
当用户点击“X”直接关闭窗体时,会激发UserForm_QueryClose事件,可以在这个事件中阻止窗体关闭,代码如下:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then Cancel = 1 End Sub
Closemode的值为0(vbFormControlMenu)表示用户在 UserForm上选择“控制”菜单中的“关闭”命令。----就是点击右上角的叉的情况。
Closemode的值为1(VbFormCode)表示由代码调用 Unload 语句关闭窗体。----知道 userform.show么?有show方法也有卸载窗口的unload语句,在用unload userform1来卸载窗口的时候 closemode的值为1。
此外,Closemode的值还有2(vbAppWindows)当前窗口操作环境对话正在结束;3(vbAppTaskManager)“任务管理器”窗口正在关闭应用程序;4(vbFormMDIForm)一个MDI子窗体因为MDI窗体正在关闭而关闭。
Cancel 参数是个Integer值(整数值),在VBA里面0值表示False 非零值表示True,当Cancel值为True的时候表示当前关闭操作被终止,也就是说窗口是不被允许关闭的。
注意:Cancel=True表示不允许用户关闭。
相关文章推荐
- 提高VBA程序效率的技巧
- VBA 通过timer计时
- VB.NET中lambda的写法
- vb.net——通过邮箱动态发送验证码实现完美注册
- VB.net操控網頁整理加實戰篇
- VB6 codesmart 出现问题解决
- vb.net 读写ini文件
- VB学习要点2----VB常用函数小节
- MaskedTextBox中对IP信息输入的处理
- 在Win8.1 X64下安装VB6及后续补丁的正确方法
- VBA组合框
- 【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线-直线VB模拟软件实现
- VB学习要点1----日期型数据作算术运算
- VB.NET 实现DataGridView CheckBox列状态变更触发事件,获取其状态值
- 2016/01/15 VBA 学习10
- vb.net 读取配置文件
- vb.net 将excel文件转换为PDF文件
- VBA 16进制转2进制
- VBS中Run和Exec的区别
- vb sendmessage 详解