将Excel加载项存储在现有的工作簿中

我目前正在使用Excel-DNA库开发一个Excel加载项。 可悲的是我需要序列化加载项以某种方式到工作簿,所以如果打开工作簿,可能会执行加载项的代码。

之前,我曾经使用VBA和Excelmacros,这些macros已经运行很久了,我可以序列化macros并上传工作簿。 一个软件把数据放入它,并提供编辑的工作簿,我只需打开工作簿的macros执行。

我试图用一个加载项(例如加载加载项和保存工作簿),但没有工作,加载项似乎根本没有保存。 是否有任何其他机会序列化加载项到工作簿,以便刚刚拿到工作簿的人可以执行加载项的代码?

您可以在Excel工作簿中包含代码,以便安装该加载项(如果它尚未安装)。 如果您只希望在工作簿打开时安装加载项,也可以将其closures卸载加载项。

查看JKP的名称pipe理器,特别是安装名称pipe理器文件中的代码。

http://www.jkp-ads.com/OfficeMarketPlaceNM-EN.asp

它find加载项,假定它与Setup文件位于同一path中,并将其复制到UserLibrary,这是加载项的默认path。 然后它将Addin.Installed属性设置为True。

JKP的插件是本地Excel插件,而不是Excel的DNA插件,所以可能会有一些差异(我不知道它们是什么)。 但是你可能不得不处理Application.COMAddins而不是Application.Addins。

我了解插件的方式,他们分开坐在一起,他们不能与工作簿绑定在一起。 我理解他们的方式(并使用他们到这一点)是缺乏一个更好的术语,是一个奇怪的“迷你程序”,坐在Excel本身内,而不是在工作簿内 – 你安装它,它有访问到更多的个人电脑资源,加载项甚至登陆Windows程序列表,而不像VBAmacros。

插件解决了很多问题,但是在这个过程中创build了一个新的插件。 即使你创build了一个进程,在启动插件安装,我认为它仍然需要重新启动Excel可以在应用程序内访问,这将是令人沮丧的。 在我看来,插件部署仍然相当笨拙。

我在哪里工作,我们有一个部署过程来提供一个开始菜单项,将打开Excel和正确版本的xll。

我从来没有听说过人们在工作簿中embedded插件。 但是,您可以做相反的事情,您的插件可以与XLA结合使用,或者您可以创build一个Addin菜单项,以便用户打开特定版本的工作簿。 这将工作簿绑定到特定版本的插件,而不是像你问的相反,但它可能对你的目的有用。 你可以使用networking驱动器来进行基本的实现。

这可以通过反转你的逻辑来获得相同的结果。 然而,这对于创build这种基础设施来说是一个昂贵的解决scheme。