是否可以使用C#(带有exe)将VBA宏插入到Word 2010中?

时间:2013-12-03 11:56:21

标签: c# vba ms-word word-vba

是否可以使用C#(带有exe)将VBA宏插入Word 2010?我想在我的办公室里为我们的同事部署一个word2010宏。这是围绕这个问题的第2至第3个问题。加载项或模块方法失败。他们很难。我需要一键式exe来将一堆宏设置为normal.dot。 感谢

1 个答案:

答案 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