Взаимодействие с макросами Word из приложения - C#
Формулировка задачи:
У меня макросы с word есть мне нужно ее прикрутить к C#. Как это сделать?
Решение задачи: «Взаимодействие с макросами Word из приложения»
textual
Листинг программы
using System;
using Word = Microsoft.Office.Interop.Word;
using VBIDE = Microsoft.Vbe.Interop;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var wordApp = new Word.Application();
wordApp.Documents.Add("C:\\1.docm");
var doc = wordApp.Documents[1];
VBIDE.VBComponent oModule = doc.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
string sCode =
"public sub VBAMacro()\r\n" +
" msgbox \"VBA Macro called\"\r\n" +
"end sub";
// Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode);
RunMacro(wordApp, new Object[]{"VBAMacro"});
wordApp.Visible = true;
}
public static void RunMacro(object oApp, object[] oRunArgs)
{
oApp.GetType().InvokeMember("Run",
System.Reflection.BindingFlags.Default |
System.Reflection.BindingFlags.InvokeMethod,
null, oApp, oRunArgs);
}
}
}