从Excel 2007中调用Visual Studio Excel加载项
问题描述:
我是一个非常新的Visual Studio(刚刚下载的版本2010 Professional),但我相信这是在Excel中执行Web服务的正确方法。从Excel 2007中调用Visual Studio Excel加载项
在Visual Studio中创建了一个名为TestAPI的Excel 2007插件,该插件仅包含一个类ThisAddIn,2个默认的启动和关闭过程以及我自己编写的2个函数,如f1和f2。
当我启动Excel 2007并检查Excel选项时,我可以看到它作为COM添加进来,但是如何在VBA中看到这两个函数?任何对ThisAddIn或TestAPI或f1或f2的引用都会失败,但如果我将某些东西放入StartUp函数中,则每当我启动Excel时都会自动执行此操作,而这确实令我感到很烦恼。看起来COM加载项在Excel级别打开/关闭,但似乎无法在引用(我可以根据Excel工作表根据需要选中或取消选中它)列表上的任意位置找到TestAPI。
我可能缺少一个(或多个)点。
答
Paul Stubbs提供了一些关于在his blog上从VBA调用VSTO UDF的信息。
或者,您可以尝试为Excel创建一个更加香草的COM加载项,如Eric Carter所述。
我个人偏好创建用户定义的功能是使用ExcelDna。
答
您是否宣布F1和F2公开?在的ThisAddIn
Public Shared Function F1(x as Object) as Object
Return x*2
End Function
类(我不知道,如果在共享VSTO是必须的,我使用外接快递,VSTO是这样的痛)
谢谢,提出基于上面的一些进步(关键位是添加ComVisible),所以我现在可以看到并使用这些函数。仍然不知道如何公开用户定义的类型(类或结构)。试图镜像函数的东西不适用于vba(甚至不会编译),因为一切似乎都是在运行时通过对象完成的。 – Rob 2010-12-01 10:53:22
以上是非常有用的链接。我发现,为了我的目的,我最好创建一个类库dll并在需要时添加为参考。 – Rob 2010-12-01 17:21:56