近期,有同事非要在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 控件引用的路径不一样。
-
- Sub 表单控件()
- Sheet1.Shapes("下拉框 1").ControlFormat.ListFillRange = "Sheet1!$F$2:$F$20"
- End Sub
- Sub ActiveX控件()
- Sheet1.ComboBox1.List = [{1,2,3,4,5}]
- End Sub