在很多場合,我們都能看到這樣的效果,當鼠標移動到某個元素上面時,該元素會變成另外一種顏色,達到強調的效果。下面,我們來實現當鼠標移動到用戶窗體按鈕上時,會使用顏色高亮顯示,讓用戶窗體更生動,如下圖1所示。
圖1
其實,你在圖1中看到的按鈕并不是用戶窗體內置的傳統命令按鈕,而是使用圖像控件來制作的。由于圖像是靜態的,在運行時不能更改顏色,因此每個按鈕都由兩個圖像組成,一個圖像代表鼠標懸浮在按鈕上的狀態,另一個圖像代表鼠標未懸浮在按鈕上的狀態。然后,使用VBA代碼來根據鼠標的位置切換這兩個圖像的可見性,從而實現按鈕的動態變化。
在Excel工作表中創建按鈕圖像
使用文本框在Excel中創建按鈕圖像。本例中,將使用綠色和白色/灰色格式來指示用戶是否將鼠標懸停在特定按鈕上。下圖2是我制作的用于按鈕圖像的文本框。
圖9
將這些按鈕分別命名,以方便在代碼中使用:
白色確定按鈕:OKButtonInactive
綠色確定按鈕:OKButton
白色取消按鈕:CancelButtonInactive
綠色取消按鈕:CancelButton
編寫代碼
使用MouseMove事件來響應鼠標的動作,這個事件當鼠標移動到特定控件中時,執行其中的代碼。
下面是確定按鈕的MouseMove事件代碼:
Private SubOKButtonInactive_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,ByVal X As Single, ByVal Y As Single) ? ?Me.CancelButtoninactive.Visible = True ? ?Me.OKButtonInactive.Visible = FalseEnd Sub
當鼠標移動到確定按鈕上時,綠色按鈕顯示,白色按鈕隱藏。
下面是取消按鈕的MouseMove事件代碼:
Private SubCancelButtoninactive_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,ByVal X As Single, ByVal Y As Single) ? ?Me.CancelButtoninactive.Visible = False ? ?Me.OKButtonInactive.Visible = TrueEnd Sub
當鼠標移動到取消按鈕上時,綠色按鈕顯示,白色按鈕隱藏。