找不到从VSTO中的XLStart文件夹加载的所有插件

时间:2012-06-06 11:24:01

标签: c#-4.0 excel-vba vsto excel-addins xla

我在XLStart文件夹中有一些xla和xll文件。在C#中,我想找出当前加载的插件。

使用Globals.ThisAddIn.Application.AddIns无法访问这些插件,但我从here找到了此Globals.ThisAddIn.Application.VBE.VBProjects。使用Globals.ThisAddIn.Application.VBE.VBProjects的问题在于它没有列出我的所有xla和xll文件。

列出从XLStart文件夹加载的所有插件的任何想法?

1 个答案:

答案 0 :(得分:1)

默认情况下,从XLSTART目录加载的任何Excel文件(包括加载项)都不属于Addins集合。

从XLSTART加载的加载项文件将在VBE中可见,但由于它是加载项,因此该文件在Excel中不可见,并且在Workbooks集合中无法枚举。 / p>

枚举VBE项目是一种方法,但它需要在用户的Excel安全设置下访问VBE,并且在检查项目时,您需要知道保存/未保存,受保护/不受保护的项目以及那些项目这是其他项目引用的项目。

但是,仅仅因为Workbooks集合不会枚举不可见的加载项并不意味着它们不是 in {{1}收集。

如果您知道要查找的加载项的名称,可以使用:

Workbooks

因此,如果您枚举XLSTART目录中的文件名,然后检查:

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

对于每个文件,您将知道加载了哪些XLSTART文件。