VSTO Add-in
我有Microsoft Word
,我希望嵌入一个宏,以便所有VBA项目或其他VSTO加载项全局可用。
这可能吗?如果是这样,怎么办呢?
我希望可以在不需要Trust access to the VBA project object model
(info)的情况下完成,因为我不想让我的客户这样做。
我知道可以从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"})
oApp
是Word.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
"嵌入式"我在这里问的宏,应该以相同的方式执行,以最大限度地与第三方兼容。