2012-06-06 93 views
2

我在XLStart文件夾中有一些xla和xll文件。在C#中,我想找出當前加載的插件。找不到所有從VSTO中的XLStart文件夾加載的插件

這些插件無法使用Globals.ThisAddIn.Application.AddIns訪問,但是我發現這個Globals.ThisAddIn.Application.VBE.VBProjectshere。使用Globals.ThisAddIn.Application.VBE.VBProjects的問題是它沒有列出我所有的xla和xll文件。

任何想法列出從XLStart文件夾加載的所有插件?

回答

1

從XLSTART目錄加載的任何Excel文件(包括加載項)默認情況下都不會成爲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文件被加載。

相關問題