ActiveX 控件和表單控件的組件看上去都差不多,二者到底有什么區別呢?
表單控件我寫過很多,比如我在 VBA 的案例教程中幾乎每次都會使用表單控件。表單控件還有個常見用途是控制動態圖表。以下是部分表單控件的教程,大家可以學習一下。
上述案例如果用 ActiveX 控件來做,將會更加簡單,因為 ActiveX 可以直接返回文本,而表單控件只能返回數值,還需要通過公式匹配出數值對應的文本。
今天我要教大家用 ActiveX 控件制作一個頗具個性化的下拉菜單,這恰恰是 ActiveX 控件的優勢,因為表單控件無法自定義外觀。
開始案例教學前,先了解一下表單控件和 ActiveX 控件分別能做什么,不能做什么。
可以:
不可以:
可以:
不可以:
請注意:并非所有 ActiveX 控件都可以直接用于工作表;有些 ActiveX 控件只能用于 VBA 用戶表單。 如果向工作表中添加這些特殊 ActiveX 控件的話,Excel 會顯示消息“不能插入對象”。
用 ActicveX 控件在 F2 單元格制作姓名下拉菜單,篩選姓名,即可出現對應的分數。效果如下圖 2 所示。
1. 選擇菜單欄的“開發工具”-->“插入”--> 選擇“ActiveX 控件”區域的“組合框”
2. 在 F2 單元格勾勒出下拉框的大小
3. 選中 ActiveX 組合框 --> 右鍵單擊 --> 在彈出的菜單中選擇“屬性”
4. 在彈出的“屬性”對話框中進行以下設置:
5. 選擇菜單欄的“開發工具”--> “控件”區域中的“設計模式”,退出設計模式。
現在點擊下拉框旁邊的小箭頭,就會出現姓名列表。
從前面對 ActiveX 控件的介紹中可以知道,它有別于表單控件的一點是:可以直接返回文本內容,而表單控件只能返回數字。
從下圖可以看出,選中 F2 單元格,即控件值所鏈接的單元格,其內容就是下拉菜單中的文本。
這正是 ActiveX 控件的優勢之一,也因此使得接下來的分數查詢變得很簡單,只需使用大家非常熟悉的 vlookup 即可。
6. 在 G2 單元格中輸入以下公式,向右拖動復制公式:
=VLOOKUP($F,$A:$D,COLUMN(B1),0)
請注意單元格的絕對和相對引用。
至此,ActiveX 控件下拉菜單就制作好了。
前面介紹過,ActiveX 控件的靈活之處在于可以自定義外觀,所以接下來我們還可以做一些美化。
7. 選擇菜單欄的“開發工具”--> “控件”區域中的“設計模式”,啟用設計模式。
8. 選中 ActiveX 控件 --> 右鍵單擊 --> 在彈出的菜單中選擇“屬性”
9. 在彈出的“屬性”對話框中,點擊 BackColor 最右邊的小箭頭 --> 選擇所需的背景色
10. 點擊 Font 最右邊的按鈕
11. 在彈出的“字體”對話中設置所需的字體、字形和大小等,比如本例中我將字體改為中文常用的“微軟雅黑”--> 點擊“確定”
12. 設置完畢后關閉“屬性”對話框 --> 再次選擇菜單欄的“開發工具”--> “控件”區域中的“設計模式”,退出設計模式,一個極具個性化的下拉菜單就制作完成了。
以下就是實際演示效果。
很多同學會覺得 Excel 單個案例講解有些碎片化,初學者未必能完全理解和掌握。不少同學都希望有一套完整的圖文教學,從最基礎的概念開始,一步步由簡入繁、從入門到精通,系統化地講解 Excel 的各個知識點。
現在終于有了,以下專欄,從最基礎的操作和概念講起,用生動、有趣的案例帶大家逐一掌握 Excel 的操作技巧、快捷鍵大全、函數公式、數據透視表、圖表、打印技巧等……學完全本,你也能成為 Excel 高手。
前面的課程里,咱們給大家詳細的介紹過標簽控件,文本框控件,窗體控件,這次咱們給大家說一下VBA的另外常用控件,命令按鈕(Commandbutton)控件.
命令按鈕控件的實質作用其實就是一種VBA代碼觸發的起動機制,即通過以左鍵單擊的方式來執行相關的代碼.在這里所說的起動機制是單擊,而單擊也是最常見的方法(或者叫做動作),但并不局限于單擊,雙擊也是可以的,鼠標右鍵的單擊亦然,但最常見的是左鍵的單擊,即Click事件的觸發方式.
命令按鈕相比于其它的ActiveX控件來說,要修改的屬性可能是最少的.
1.caption屬性.
命令按鈕的caption屬性一般是提示該命令的功能,這個有些類似于標簽(lable)屬性,其實我們可以稱命令按鈕為有單擊功能的標簽,其實標簽也是有單擊事件的,但用得比較少,而命令按鈕則是設計來專門用于點擊的控件.
如果我們把命令按鈕的caption修改為"點擊更新數據",則顯示在命令按鈕上的字符即為"點擊更新數據".
常用代碼如:commandbutton1.caption="點擊更新數據"
2.height與width屬性.
修改height與width兩個屬性,可以改變命令按鈕的寬度與高度.
我們可以在三個位置修改該屬性,一個是控件的屬性欄里,直接在height與width兩個位置修改,第二個方法是直接在窗體里拖拽命令按鈕本身來修改其高度與寬度,第三個方法可能會比較少見,但同樣可以起到作用,就是在窗體的初始化過程里設定該參數的值.
代碼如:commandbutton1.height=90:commandbutton1.width=28
3.font屬性
在font屬性里,我們可以修改命令按鈕用來顯示的字符的大小,字型,顏色等.但比較常用的修改是修改字號,即字符的大小.
4.enabled屬性與locked屬性.
enabled屬性與locked屬性有什么區別呢?
當命令按鈕的Enabled屬性設定為false時,如,commandbutton1.enabled=false時,在正常的工作過程中,該命令按鈕顯示為灰色,不可點擊.
當命令按鈕的Locked屬性修改為true時,如,commandbutton1.locked=true,在正常的工作過程中該命令按鈕顏色顯示正常,不可點擊.
1.通過別的VBA代碼對命令按鈕進行設定
如在窗體初始化過程中,我們可以設定命令按鈕1的caption為"點擊更新".
private sub userform1.initialize()
commandbutton1.caption="點擊更新"
end sub
2.通過命令對其它對象進行設定.
private sub commandbutton_click()
with sheets("測試")
.range("b5")=range("b3")+range("b4")
end with
end sub
這段代碼執行的結果就是:工作表"測試"的B5單元格的值=B4+B3的值.
三,命令按鈕與Excel設計.
在Excel的二次開發里,即VBA里,命令按鈕有兩個地方用處最多.一個是在工作表里,一個是在窗體的控件的設計里.
無論是哪一種情況,命令按鈕的出現一般就是通過點擊的方式來執行代碼.
當然,咱們的這種介紹是比較簡單的,僅僅是介紹一下最常用的屬性,如果想了解更多的關于VBA的知識,可以多我學習一下.
腦提示ActiveX部件不能創建對象怎么辦?近日有用戶反映在使用電腦時,一直出現ActiveX無法創建對象的問題,該如何解決?請看下文具體操作。
1、按win+r打開運行窗口,輸入cmd,如圖所示:
2、在窗口中,輸入 regsvr32 “c:windowssystem32scrrun.dll”,回車執行即可,如圖所示: