Методика, описанная в MS KB, статья 306683 - в частности, определенная там функция RunMacro
- должна позволять вам вызывать макрос VBA из кода C #: вы определяете функцию RunMacro
private void RunMacro(object oApp, object[] oRunArgs)
{
oApp.GetType().InvokeMember("Run",
System.Reflection.BindingFlags.Default |
System.Reflection.BindingFlags.InvokeMethod,
null, oApp, oRunArgs);
}
и затем назовите ваш макрос следующим образом:
RunMacro(oApp, new object[] {"NameOfMyMacro"})
или
RunMacro(oApp, new object[] {"NameOfMyMacro", "some", 3, "parameters"})
oApp
- это объект Word.Application
, который, я уверен, доступен где-то в надстройке Word.