如何创建特定于Excel的工作簿添加

Ank*_*kit 5 com vba vsto excel-2007 excel-vba

我想创建一个excel添加,在其中创建一些额外的工具栏和菜单按钮.但我希望只在打开特定工作簿时加载此插件.如果任何其他工作簿打开,我不想加载Addin.

我想知道解决这个问题的可能方法是什么,以及实现这个Add in(XLA或VSTO或COM Addin)的最佳方法是什么.

我不希望用户知道我的Addin路径,加载/初始化插件所需的VbA代码.

Mat*_*ias 8

对于VSTO Document项目来说,这听起来是个好例子; 与扩展整个应用程序的加载项不同,因此适用于任何打开的文档,VSTO文档项目是特定文档的自定义,附加了额外的代码.


cod*_*ife 5

在开始处创建工具栏,但是将工具栏的可见性设置为false。使用AddIn.Application.WorkbookOpen事件的事件处理程序捕获正在打开的工作簿,并确定该工作簿是否是您想要的特定工作簿。此时,您可以设置工具栏的可见性。

如果活动工作簿不是特定的工作簿,您还可以捕获AddIn.Application.WorkbookActivate事件并再次隐藏工具栏。

记住要在ThisAddIn级别声明一个成员变量,以保留对工具栏的引用!