在VSTO加载项中嵌入VBA宏

时间:2017-02-27 08:44:51

标签: vba ms-word vsto word-vba

VSTO Add-in我有Microsoft Word,我希望嵌入一个宏,以便所有VBA项目或其他VSTO加载项全局可用。

这可能吗?如果是这样,怎么办呢?

我希望可以在不需要Trust access to the VBA project object modelinfo)的情况下完成,因为我不想让我的客户这样做。

我知道可以从VSTO like this

执行宏
  

您定义了一个函数RunMacro

private void RunMacro(object oApp, object[] oRunArgs)
{
    oApp.GetType().InvokeMember("Run",
        System.Reflection.BindingFlags.Default |
        System.Reflection.BindingFlags.InvokeMethod,
        null, oApp, oRunArgs);
} 
     

然后像这样调用你的宏:

RunMacro(oApp, new object[] {"NameOfMyMacro"}) 
     

RunMacro(oApp, new object[] {"NameOfMyMacro", "some", 3, "parameters"})
     

oAppWord.Application对象,我确信它可以在Word加载项的某个位置使用。

也可以从VBA like this执行宏 (意译)

Sub AppRun_AddIn_NoArg()
    Application.Run "ModuleName.MethodName1"
End Sub
     

并附带论据:

Sub AppRun_AddIn_WithArg()
    Application.Run "ModuleName.MethodName2", "ArgumentValue"
End Sub

"嵌入式"我在这里问的宏,应该以相同的方式执行,以最大限度地与第三方兼容。

0 个答案:

没有答案