Активировать Excel ComAddin из кода C # - PullRequest
0 голосов
/ 10 февраля 2012

На самом деле у меня запущено приложение на C #.
При запуске он запускает экземпляр Excel и сохраняет его в переменной:
excelApp = new Excel.Application();

Затем я перебираю каждый из надстроек в Excel, чтобы найти свое собственное добавленное:

    private void getAddin()
    {
        const string addinName = "myAddInName";

        foreach (Office.COMAddIn addin in excelApp.COMAddIns)
            if (addin.Description.ToUpper().Contains(addinName.ToUpper()))
            {
                myAddin = addin;
                return;
            }
    }

Проблема в том, что мой плагин может быть в списке деактивированных элементов. (Из-за какой-то аварии)

Тогда я должен перейти к (в кадре Excel):
File >Options >AddIns >Manage >Deactivated elements >Achieve >"myAddin" >Activate
чтобы мой аддин снова заработал (после перезапуска Excel) ...

Я попытался использовать свойство аддина для его повторной активации, но в этом случае приложение может снова вылетать.

            myAddin.Connect = loadAddin;

Кто-то имеет представление о том, как решить его / автоматически активировать отключенный плагин с помощью C #?

1 Ответ

3 голосов
/ 15 мая 2012

Это должно помочь http://msdn.microsoft.com/en-us/library/aa662931(v=office.11).aspx

Я считаю, что вам нужно сделать

if(!myAddin.Connect)
{
     myAddin.Connect =true;
}
...