Я застрял на несколько часов с этой проблемой:
Я занимаюсь разработкой надстройки PowerPoint в C # и хочу использовать макрос из другой надстройки, которая представляет собой файл PPAM.Файл PPAM установлен и включен.
В справочнике по приложениям я обнаружил, что мне нужно использовать метод Application.Run
, но я не могу заставить его работать ( ничего не происходит ) ... Вот мой код:
Globals.ThisAddIn.Application.Run("PPspliT.ppam!PPspliT.PPspliT_main", null);
PPspliT.ppam
- это установленная надстройка (, которая находится здесь: C:\Users\XXXX\AppData\Roaming\Microsoft\AddIns\PPspliT\
)
Модульв котором вызывается макрос PPspliT_main
с именем PPspliT
.
Еще одна вещь, которую я нахожу странной, заключается в том, что Run требует двух аргументов, даже если у макроса нет аргументов (, поэтомуЯ поставил null в качестве второго аргумента ).
Я также попытался программно установить AddIn, используя это:
String addinPath = @"C:\Users\XXXXX\AppData\Roaming\Microsoft\AddIns\PPspliT";
var macroFilePath = Path.Combine(addinPath, "PPspliT.ppam");
var addins = Globals.ThisAddIn.Application.AddIns.Add(macroFilePath);
if (!(addins.Registered == MsoTriState.msoTrue && addins.Loaded == MsoTriState.msoTrue))
{
addins.Registered = MsoTriState.msoTrue;
addins.Loaded = MsoTriState.msoTrue;
}
var app = Globals.ThisAddIn.Application;
string macroToInvoke = string.Format("{0}!{1}", "PPspliT.ppam", "PPspliT.PPspliT_main");
Globals.ThisAddIn.Application.Run(macroToInvoke, null);
Спасибо за вашу помощь!Acacio