1

我想从 VBA 项目中获取例程列表,然后运行用户选择的宏。

下图显示了本机“宏”框。我想将此功能扩展到跨多个文档的多个宏。
在此处输入图像描述

我发现这个链接解决了问题的第一部分。现在我有了列表,如何按名称运行选定的例程?

4

1 回答 1

1

您好,欢迎来到 SO

下面是代码示例如何使用代码执行 VBA 宏。您需要添加一些表单来选择要执行的文档和宏。这取决于您的实施。


Sub RunMacroUsingCode()
    Dim vbaProjectName As String
    vbaProjectName = "InventorVBA"
    
    Dim vbaModuleName As String
    vbaModuleName = "m_Tests"
    
    Dim vbaMacroName As String
    vbaMacroName = "RunMultipleMacrosTestCall"
    
    Dim vbaProject As InventorVBAProject
    For Each vbaProject In ThisApplication.VBAProjects
        If vbaProject.name = vbaProjectName Then Exit For
    Next
    
    Dim vbaModule As InventorVBAComponent
    For Each vbaModule In vbaProject.InventorVBAComponents
        If vbaModule.name = vbaModuleName Then Exit For
    Next
    
    'Using result is optional
    Dim result As Variant
    Call vbaModule.InventorVBAMembers(vbaMacroName).Execute(result)
    
End Sub

Function RunMultipleMacrosTestCall()
    Call MsgBox("TEST")
    RunMultipleMacrosTestCall = True
End Function

于 2021-11-09T08:11:14.937 回答