如何从C#VSTO加载项运行Word VBA宏

时间:2019-02-22 17:38:19

标签: c# ms-word vsto office-addins

我对C#和VBA编码还很陌生,所以请忍着我不知道什么是必要的信息,什么不是。无论如何,我试图在Visual Studio中使用C#为Word创建VSTO加载项,该加载项实质上具有一些单击时可运行VBA宏的按钮。我一直在寻找解决方案,但是大多数解决方案都适用于excel,而且似乎无法完全解决我的问题,我可以找到的最接近的是上一个问题(How-to: Run existing Word VBA Macros from C# Ribbon Addin),但是解决方案无法解决我的问题。

因此,我在文档中有宏,如果直接从文档中运行它,该宏将按预期工作(宏代码没有参数)。我创建了按钮,并且在打开Word实例时出现了附加功能区。我的addin.cs文件中还有以下方法:

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

和以下方法作为对一个按钮(例如Button1)的onAction调用

    public void OnButton1(Office.IRibbonControl control)
    {
        RunMacro(Globals.ThisAddIn.Application, new object[] {"Button1Macro"});
    }

任何帮助将不胜感激。谢谢

0 个答案:

没有答案