在很多場(chǎng)合,我們都能看到這樣的效果,當(dāng)鼠標(biāo)移動(dòng)到某個(gè)元素上面時(shí),該元素會(huì)變成另外一種顏色,達(dá)到強(qiáng)調(diào)的效果。下面,我們來(lái)實(shí)現(xiàn)當(dāng)鼠標(biāo)移動(dòng)到用戶(hù)窗體按鈕上時(shí),會(huì)使用顏色高亮顯示,讓用戶(hù)窗體更生動(dòng),如下圖1所示。

圖1
其實(shí),你在圖1中看到的按鈕并不是用戶(hù)窗體內(nèi)置的傳統(tǒng)命令按鈕,而是使用圖像控件來(lái)制作的。由于圖像是靜態(tài)的,在運(yùn)行時(shí)不能更改顏色,因此每個(gè)按鈕都由兩個(gè)圖像組成,一個(gè)圖像代表鼠標(biāo)懸浮在按鈕上的狀態(tài),另一個(gè)圖像代表鼠標(biāo)未懸浮在按鈕上的狀態(tài)。然后,使用VBA代碼來(lái)根據(jù)鼠標(biāo)的位置切換這兩個(gè)圖像的可見(jiàn)性,從而實(shí)現(xiàn)按鈕的動(dòng)態(tài)變化。
在Excel工作表中創(chuàng)建按鈕圖像
使用文本框在Excel中創(chuàng)建按鈕圖像。本例中,將使用綠色和白色/灰色格式來(lái)指示用戶(hù)是否將鼠標(biāo)懸停在特定按鈕上。下圖2是我制作的用于按鈕圖像的文本框。

圖9
將這些按鈕分別命名,以方便在代碼中使用:
白色確定按鈕:OKButtonInactive
綠色確定按鈕:OKButton
白色取消按鈕:CancelButtonInactive
綠色取消按鈕:CancelButton
編寫(xiě)代碼
使用MouseMove事件來(lái)響應(yīng)鼠標(biāo)的動(dòng)作,這個(gè)事件當(dāng)鼠標(biāo)移動(dòng)到特定控件中時(shí),執(zhí)行其中的代碼。
下面是確定按鈕的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
當(dāng)鼠標(biāo)移動(dòng)到確定按鈕上時(shí),綠色按鈕顯示,白色按鈕隱藏。
下面是取消按鈕的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
當(dāng)鼠標(biāo)移動(dòng)到取消按鈕上時(shí),綠色按鈕顯示,白色按鈕隱藏。






