我对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"});
}
任何帮助将不胜感激。谢谢