如何用vba在工作表中创建添加表单控件、窗体控件、 ActiveX控件?

如下图所示

在excel的“开发工具”选项卡下的“控件”组中可以插入表单控件和ActiveX控件。

表单控件又称为窗体控件,不能响应事件。

ActiveX控件可以响应事件。

在VBA中凡是插入到excel中的对象,不管是表单控件、窗体控件还是 ActiveX控件 都属于Shape 对象。

不同的Shape 对象有不同的Type类型属性,比如表单控件的Type类型属性为msoFormControl(值为8),ActiveX控件的Type类型属性为msoOLEControlObject(值为12)。其它更多的类型,可以查看MsoShapeType枚举常量。

如果要用vba添加表单控件(窗体控件),可以使用Shapes集合对象的AddFormControl 方法,对于创建添加的表单控件(窗体控件),如果要设置它的各种属性,比如它的”数据源区域”、“单元格链接”等,可以使用Shape对象的ControlFormat属性返回对应控件的各种属性设置。

以下代码演示了如何向工作表中添加列表框窗体控件,同时添加列表框窗体控件的项目,以及链接单元格:

如果要删除某个特定类型的窗体控件,比如只删除列表框窗体控件,可以使用使用Shape对象的FormControlType属性进行判断。

如果要用vba创建添加ActiveX控件,可以使用Shapes集合对象的AddOLEObject方法,或者使用OLEObjects集合对象的Add方法创建添加ActiveX控件。如果要设置它的各种属性,激活进入编辑状态,可以使用Shape对象的OLEFormat属性进行设置。

如下代码将添加ListBox ActiveX控件:





       

发表评论