У меня задача запуска разных макросов в разных документах.Я беру имена файлов и список макросов для каждого пути из конфига.Есть ли в Word такая функция, как ExecuteLine в Visio.Суть этой реализации в том, что нет необходимости прописывать Activate перед каждым документом.
...
//This is an implementation for Visio.
//office_classes is list of visio classes from R.O.T
if (office_classes[i].FullName == filename)
{
foreach (var item in macro)
{
//item is macro name
office_classes[i].ExecuteLine(item);
}
}
...
...
//This implementation that I use now
Word.Application oXL;
try
{
oXL = (Word.Application)Marshal.GetActiveObject("Word.Application");
}
catch (Exception)
{
Console.WriteLine(string.Format("ERROR: NOT FOUND - {0}", filename.Replace("\\\\", "\\")));
return;
}
int count = oXL.Documents.Count;
Console.WriteLine(count);
oXL.Documents[1].Activate();
int i = 0;
foreach (var zzz in oXL.Documents)
{
i++;
if (oXL.Documents[i].FullName == filename)
{
Console.WriteLine(filename);
Console.ReadKey();
oXL.Documents[i].Activate();
foreach (var item in macro)
{
Console.WriteLine(item);
Console.ReadKey();
oXL.Run(item);
}
}
}
...