如何用vba访问操作vba工程对象VBProject?

vba除了可以访问excel中的内置对象,还可以访问vbe对象。

vbe对象是vba中所有对象的根对象,通过vbe对象可以访问vba工程对象VBProject

如果要顺利的访问vba工程对象需要进行如下的设置

开启“信任对VBA工程对象模型的访问”,如下图所示:

1

经过以上的设置后,就可以开始编写访问VBA工程对象的代码。

以下示例代码将会罗列当前工程中的所有模块的名称:

Sub QQ1722187970()
    Dim oWk As Worksheet
    Set oWk = ActiveSheet
    Dim i
    Dim obj As VBComponent
    For Each obj In Excel.ThisWorkbook.VBProject.VBComponents
        i = i + 1
        oWk.Cells(i, 1) = obj.Name
    Next
End Sub

如果想要在编写vba代码的过程中出现具体的vba工程对象的属性和方法的提示,还需要添加VBE库”Microsoft Visual Basic for Applications Extensibility 5.3″的引用,如下图所示:

2

或者用以下的vba代码自动添加:

Sub QQ1722187970()
    On Error Resume Next
    '添加VBIDE对象
    ThisWorkbook.VBProject.References.AddFromGuid("{0002E157-0000-0000-C000-000000000046}", 5, 3)
End Sub

通过上述的设置或者代码添加,就可以在编写vba代码的过程中直接将变量设置为具体的vba工程对象,然后就可以出现对应的对象的属性和方法的提示了。

       

发表评论