近期,有同事非要在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