Excel OLE – 当embedded到应用程序中时,.NET COM AddIn的行为不同

我有一个.NET(C#)插件,它使用COM Shim DLL将自己加载到Excel中。 当Excel正常运行时,插件可以正常工作,没有任何问题。 插件在Excel中显示自己的自定义工具栏,用于执行不同的命令。

当我将Excelembedded到另一个应用程序(例如DSOFramer等)时,外挂程序开始行为奇怪。 看来,如果我禁用其工具栏上的button,那么设置Visible属性后,它不会再启用。 另外,由于Application :: Selection对象是NULL,所以在Excel正常运行时永远不会发生,所以我得到了一堆“对象引用未设置”错误。 有时我也会在调用Application :: GetAddIns()方法时遇到权限错误。

我不知道这里发生了什么,我找不到一篇文章解释了当Excelembedded到其他应用程序中时Excel COM Addins的行为。

我不得不承认我对dSOFramer不太了解,但我确实碰到过以下几个项目。 我不知道这些是否有帮助。

链接文本

链接文本

我就这个问题联系了Microsoft Professional,并发现微软现在不鼓励embedded式办公应用程序。 我被build议要么停止将Excelembedded到应用程序中,要么只使用具有function区UI的Excel 2007。 据MS介绍,Ribbon UI没有这些问题。

CommandBars的问题是只能在OnConnection期间进行协商,之后不能进行更改。