Q:經常有人會問,如何隱藏VBA用戶窗體右上角的X關閉按鈕?
A:使用API可以禁用或者移除用戶窗體右上角的關閉按鈕,但既然它已經存在,我們何不合理地利用它呢。
默認情況下,單擊用戶窗體右上角的X(關閉)按鈕后,將卸載該用戶窗體并從內存中清除。這樣,其它代碼將無法再與該用戶窗體進行交互。此時,我們可以略微更改關閉按鈕的功能,當用戶單擊該按鈕時,隱藏用戶窗體而不是徹底卸載它。
用戶窗體模板如圖1所示。
圖1
代碼如下:
Private SubbtnOK_Click()
Me.Hide
End Sub
Private SubbtnCancel_Click()
Me.Hide
End Sub
Private SubUserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
‘取消X按鈕的默認行為
Cancel = True
Info
btnCancel_Click
End If
End Sub
Private SubInfo()
MsgBox “本用戶窗體將被隱藏而不是被卸載,因此不會影響與本窗體相交互的代碼.”
End Sub