怎么处理用户窗体右上角的X按钮?

Q:经常有人会问,如何隐藏VBA用户窗体右上角的X关闭按钮?
A:使用API可以禁用或者移除用户窗体右上角的关闭按钮,但既然它已经存在,我们何不合理地利用它呢 。
默认情况下,单击用户窗体右上角的X(关闭)按钮后,将卸载该用户窗体并从内存中清除 。这样,其它代码将无法再与该用户窗体进行交互 。此时,我们可以略微更改关闭按钮的功能,当用户单击该按钮时,隐藏用户窗体而不是彻底卸载它 。
用户窗体模板如图1所示 。

怎么处理用户窗体右上角的X按钮?

文章插图
图1
代码如下:
Private SubbtnOK_Click()
Me.Hide
End Sub
Private SubbtnCancel_Click()
Me.Hide
End Sub
Private SubUserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
【怎么处理用户窗体右上角的X按钮?】If CloseMode = vbFormControlMenu Then
‘取消X按钮的默认行为
Cancel = True
Info
btnCancel_Click
End If
End Sub
Private SubInfo()
MsgBox “本用户窗体将被隐藏而不是被卸载,因此不会影响与本窗体相交互的代码.”
End Sub

    推荐阅读