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

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

在这里输入图像描述

他们有什么区别?

Google充满了这方面的信息 。 正如Hans Passant所说, 表单控件是内置到Excel中的,而ActiveX控件是分开加载的。

通常你会使用Forms控件,它们更简单。 ActiveX控件允许更加灵活的devise,当作业不能用基本的Forms控件完成时应该使用。

许多用户的电脑在默认情况下不会信任 ActiveX ,并且会被禁用; 这有时需要手动添加到信任中心。 ActiveX是一个基于微软的技术,据我所知,在Mac上不支持。 如果你(或者任何你提供工作簿的人)决定在Mac上使用它,你必须考虑这一点。

要知道一个重要的区别是,ActiveX控件显示为可以在代码中使用的对象 – 尝试将ActiveX控件插入到工作表中,调出VBA编辑器(ALT + F11),您将能够访问控制编程。 你不能用表单控件做这个(macros必须被明确地分配给每个控件),但是表单控件更容易使用。 如果你只是做一些简单的事情,你使用什么并不重要,但是对于更高级的脚本,ActiveX有更好的可能性。

ActiveX也是更可定制的。

要小心,在某些情况下,单击一个窗体控件或Active X控件将给同一个macros的两个不同的结果 – 不应该如此。 我发现Active X更可靠。