Не удается найти все надстройки, загруженные из папки XLStart в VSTO

У меня есть файлы xla и xll в папке XLStart. В С# я хотел бы узнать, какие надстройки загружены в данный момент.

Эти надстройки недоступны с помощью Globals.ThisAddIn.Application.AddIns, но я нашел это Globals.ThisAddIn.Application.VBE.VBProjects на странице здесь. Проблема с использованием Globals.ThisAddIn.Application.VBE.VBProjects заключается в том, что он не перечисляет все мои файлы xla и xll.

Любые идеи, чтобы перечислить все надстройки, загруженные из папки XLStart?


person Kiru    schedule 06.06.2012    source источник


Ответы (1)


Любой файл Excel, включая надстройки, загруженный из каталога XLSTART, по умолчанию НЕ будет частью коллекции Addins.

Файл надстройки, загруженный из XLSTART, будет виден в VBE, но, поскольку это надстройка, файл не отображается в Excel и не может быть пронумерован в коллекции Workbooks.

Перечисление проектов VBE — это один из подходов, но он требует, чтобы VBE был доступен в настройках безопасности пользователя Excel, а при проверке проекта вам необходимо знать проекты, которые сохранены/несохранены, защищены/незащищены, а также те, которые являются проектами. на которые ссылаются другие проекты.

Однако тот факт, что коллекция Workbooks не будет перечислять невидимые надстройки, не означает, что их нет в коллекции Workbooks.

Если вы знаете название надстройки, которую ищете, вы можете использовать:

ThisAddIn.Application.Workbooks.get_Item("MyAddin.xlam")

Итак, если вы перечислите имена файлов в каталоге XLSTART, а затем убедитесь, что:

ThisAddIn.Application.Workbooks.get_Item(addinName).FullName == addinFullName

Для каждого файла вы будете знать, какие файлы XLSTART загружены.

person ThunderFrame    schedule 18.09.2016