如何用vba在工作表中创建添加表单控件、窗体控件、 ActiveX控件? 您所在的位置:网站首页 excel无法增加新的工作表vba 如何用vba在工作表中创建添加表单控件、窗体控件、 ActiveX控件?

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

#如何用vba在工作表中创建添加表单控件、窗体控件、 ActiveX控件?| 来源: 网络整理| 查看: 265

如何用vba在工作表中创建添加表单控件、窗体控件、 ActiveX控件? 2019年4月15日 作者:水星Excel 10,132 次浏览 暂无评论

如下图所示

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

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

ActiveX控件可以响应事件。

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

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

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

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

Sub QQ1722187970() Dim oListBox As Shape '先删除之前的表单控件 For Each oListBox In Sheet1.Shapes If oListBox.Type = msoFormControl Then oListBox.Delete End If Next '添加表单控件 Set oListBox = Sheet1.Shapes.AddFormControl(xlListBox, 0, 0, 100, 100) '设置表单控件的属性 With oListBox.ControlFormat .AddItem "1" .AddItem "2" .LinkedCell = "e1" End With End Sub

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

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

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

Sub QQ1722187970() Dim oListBox As Shape '先删除之前的控件 For Each oListBox In Sheet1.Shapes If oListBox.Type = msoOLEControlObject Or oListBox.Type = msoFormControl Then oListBox.Delete End If Next '添加ActiveX控件 Set oListBox = Sheet1.Shapes.AddOLEObject(ClassType:="Forms.ListBox.1", Left:=10, Top:=10, Width:=100, Height:=200) '设置ActiveX控件的属性 With oListBox.OLEFormat Debug.Print .progID .Verb xlVerbOpen End With End Sub 其它相关文章推荐:如何用vba设置表单控件、窗体控件的各种属性?如何在excel中显示“开发工具”选项卡?如何在vba中访问PPT中幻灯片的文本框等控件?如何在excel工作表中插入圆形?如何用vba遍历所有的excel加载项?如何在excel工作表中插入半圆? 分类 :  VBA , 窗体、控件 标签 :  ActiveX控件 , AddFormControl , AddOLEObject , ControlFormat , OLEFormat , type , 属性 , 添加 , 窗体控件 , 表单控件        

声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有