Excel表格中插入一下OLE控件,可以提高表格的应用自动化操作,是办公自动化操作的必修课,本节就介绍一下,如何利用VBA代码自动创建和删除OLE控件对象。

如下图所示,列出了一些常用OLE控件标识符,根据列表框选择可以任意创建控件。

其实,这一步在VBE编辑器里操作十分方便,问题是操作添加之后,并不知道其代码都做了什么,本节内容将揭示出新建控件代码的一些方式。

新建控件实际上就是根据一些字符串来通过一个一函数进行一些代码处理,最后在表格中实现添加控件。

这个过程中,Excel vba自定义了一些控件,如标签、按钮、文本等等。

定义这些控件就用一些特定的字符,相当于是这些控件的专属编号,通过一个Add方法就可以新建相应的控件。

如代码:

Set xobj = Me.OLEObjects.Add("Forms.Label.1")

上述代码就是实现在工作表中新一个标签的方法,其中,me代码当前工作表,OLEObjects是一个对象,Add是这个对象的方法,Forms.Label.1就是标签控件的标识符,表示要在当前工作表中新建一个标签控件,然后定义给xobj变量,那么变量xobj就表示新建之后的标签对象。之后再对xobj进行属性设置和方法、事件编程操作就可以了。

控件标识符

重点要对控件标识符有一个清楚认识,不一定要记住,但要知道哪个代表什么控件,编程的时候查表即可,如果记忆好,英语也好,记住也不是十分困难的事情。

代码

实现自动化过程,必须用到编程,不然没有意义。

重点看一下本示例代码,如下图所示:

Option Explicit Private Sub 新建控件() On Error Resume Next Dim xobj As Object Set xobj = Me.OLEObjects.Add(Me.ListBox1.Value) '新建控件 With xobj '设置控件格式 .Top = 20 .Left = 500 .Height = 25 .Width = 120 End With MsgBox "新建了一个对象:" & VBA.vbCrLf & TypeName(xobj) Set xobj = Nothing End Sub

应用上述代码要在工作表中创建一个ListBox列表框对象,赋值控件标识符,才能正常使用。

删除控件

Private Sub CommandButton2_Click() Dim xobj As Object For Each xobj In Me.OLEObjects xobj.Delete '删除控件 Next xobj Set xobj = Nothing End Sub

删除控件就简单多了,应用OLEObjects对象的Delete方法,实现对控件的删除操作。

欢迎关注、收藏

---END---