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。


                    EXCEL 表单控件与ACTIVEX控件的区别_第1张图片

      
以组合框为例

      外观上,他们是不一样的,创建完毕后如下图所示

      EXCEL 表单控件与ACTIVEX控件的区别_第2张图片

    
  ActiveX 控件  在设计模式下可以看到属性(如控件名,CAPTION),而表单控件的属性窗口和用户表单看到的是一样的,没有控件名之类设计用属性。

      在代码方面,表单控件和ActiveX 控件引用的路径不一样。

      EXCEL 表单控件与ACTIVEX控件的区别_第3张图片

      EXCEL 表单控件与ACTIVEX控件的区别_第4张图片

    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

转载于:https://www.cnblogs.com/rb258/p/10535592.html

你可能感兴趣的:(开发工具,设计模式)