Excel 2010中的“表单控件”和“ActiveX控件”有什么区别?

时间:2013-03-16 21:58:19

标签: excel excel-vba excel-2010 activex form-control vba

使用Microsoft Excel 2010,我注意到可以插入到文档中的两种控件:表单控件 ActiveX控件

enter image description here

他们之间有什么区别?

4 个答案:

答案 0 :(得分:84)

Google is full of information on this。正如Hans Passant所说,表单控件内置于Excel中,而 ActiveX 控件则单独加载。

通常,您将使用Forms控件,它们更简单。 ActiveX控件允许更灵活的设计,并且应该在使用基本Forms控件无法完成作业时使用。

许多用户的计算机default won't trust ActiveX,它将被禁用;这有时需要手动添加到信任中心。 ActiveX是一种基于微软的技术,据我所知,Mac上不支持。如果您(或您提供工作簿的任何人)决定在Mac上使用它,您还必须考虑这一点。

答案 1 :(得分:22)

重要的一个重要区别是,ActiveX控件显示为您可以在代码中使用的对象 - 尝试将ActiveX控件插入工作表,调出VBA编辑器(ALT + F11),您将成为能够以编程方式访问控件。您无法使用表单控件执行此操作(必须将宏显式分配给每个控件),但表单控件更容易使用。如果你只是做一些简单的事情,那么你使用哪个并不重要,但对于更高级的脚本,ActiveX有更好的可能性。

ActiveX也更具可定制性。

答案 2 :(得分:1)

注意,在某些情况下,单击Form Control或Active X Control将为同一个宏提供两种不同的结果 - 不应该是这种情况。我发现Active X更可靠。

答案 3 :(得分:0)

同样值得注意的是ActiveX控件仅适用于Windows,而Form控件适用于Windows和MacOS版本的Excel。