EXCEL 表單控件與ACTIVEX控件的區別


   近期,有同事非要在EXCEL里實現復選框顯示/隱藏特定數行的功能,在幫助其實現過程中發現,很有必要了解表單控件和ACTIVEX控件的區分。

  首先,要記住一個網址:http://www.excelhome.net/,可能做軟件開發的會覺得這些內容很LOW,確實,我也這樣感覺,因為現在有OA,有DB,有ERP,單純的EXCEL應用時代已經是歷史了。但是,如果有客戶需要,也還是要滿足的,我的同事也是我的工作客戶。下面是一些區分:

  表單控件

    表單控件是與早期版本的 Excel(從 Excel 5.0 版開始)兼容的原始控件。

    適用於:在 XLM 宏工作表中使用。

        在不使用 VBA 代碼的情況下,引用單元格數據並與其進行交互。

        向圖表工作表中添加控件。

    運行:可以將現有宏附加到控件,也可以編寫或錄制新宏。當表單用戶單擊控件時,該控件會運行宏。

        然而,不能將這些控件添加到用戶表單中,不能使用它們控制事件,也不能修改它們以在網頁中運行 Web 腳本。

  ActiveX 控件

    一種控件,向用戶提供選項或運行使任務自動化的宏或腳本。可在 Microsoft Visual Basic for Applications 中編寫控件的宏或在 Microsoft 腳本編輯器中編寫腳本。

    適用於:可用於工作表表單(使用或不使用 VBA 代碼)和 VBA 用戶表單。通常,如果相對於表單控件所提供的靈活性,您的設計需要更大的靈活性,則使用

        ActiveX 控件。ActiveX 控件具有大量可用於自定義其外觀、行為、字體及其他特性的屬性。用戶與控件進行交互時,VBA 代碼會隨之運行以處理針對

        該控件發生的任何事件。並非所有 ActiveX 控件都可以直接用於工作表;有些 ActiveX 控件只能用於 Visual Basic for Applications (VBA) (Visual Basic

        for Applications (VBA):Microsoft Visual Basic 的宏語言版本,用於編寫基於 Microsoft Windows 的應用程序,內置於多個 Microsoft 程序中。) 用戶表單

        如果您嘗試向工作表中添加這些特殊 ActiveX 控件中的任何一個控件,Excel 都會顯示消息“不能插入對象”。

        無法從用戶界面將 ActiveX 控件添加到圖表工作表。

        無法將其添加到 XLM 宏工作表。

        不能像在表單控件中一樣指定要直接從 ActiveX 控件運行的

  主要區別

      表單控件可以和單元格關聯,操作控件可以修改單元格的值,所以用於工作表,而

      ACTIVEX控件雖然屬性強大,可控性強,但不能和單元格關聯,所以用於表單Form。


                    

      
以組合框為例

      外觀上,他們是不一樣的,創建完畢后如下圖所示

      

    
  ActiveX 控件  在設計模式下可以看到屬性(如控件名,CAPTION),而表單控件的屬性窗口和用戶表單看到的是一樣的,沒有控件名之類設計用屬性。

      在代碼方面,表單控件和ActiveX 控件引用的路徑不一樣。

      

      

    1.   
    2.   Sub 表單控件()
    3.       Sheet1.Shapes("下拉框 1").ControlFormat.ListFillRange = "Sheet1!$F$2:$F$20"
    4.   End Sub
    5.   Sub ActiveX控件()
    6.       Sheet1.ComboBox1.List = [{1,2,3,4,5}]
    7.   End Sub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM