是否可以使用C#(带有exe)将VBA宏插入Word 2010?我想在我的办公室里为我们的同事部署一个word2010宏。这是围绕这个问题的第2至第3个问题。加载项或模块方法失败。他们很难。我需要一键式exe来将一堆宏设置为normal.dot。 感谢
答案 0 :(得分:2)
是的,您可以创建一个新的VBA模块,插入代码并运行它。我使用它,因为宏在某些情况下比C#代码更快(是的,难以置信,但是真的;我不知道为什么)。这是一个例子:
//creating a new VBA module (must be a reference to Microsoft.Vbe.Interop)
Microsoft.Vbe.Interop.VBComponent vbaModule =
docComp.VBProject.VBComponents.Add(
Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule);
//insert VBA macro code
vbaModule.CodeModule.AddFromString(string_with_your_vba_code);
//run the macro
Microsoft.Office.Interop.Word.Application.GetType().InvokeMember("Run",
BindingFlags.Default | BindingFlags.InvokeMethod,
null,
Microsoft.Office.Interop.Word.Application,
new Object[] { "name_of_your_main_sub" });
运行宏的神奇之处在于here。