有没有可能从Excel 2007中调用.NET代码?

我需要从Excel 2007中调用一些.NET代码,并且正在寻找最佳方法。

官方的“微软认可”方法似乎涉及Visual Studio 2008 Professional,但我没有。 我有VS2005,但加上VSTO 2005 SE只能做应用程序级的加载项,而不是文档级的macros。

这个问题涉及一些.NET程序集分析代码。 我想通过更改Excel工作表中的某些单元格来操作它。

任何其他的想法?

您可以将您的.NET对象作为COM对象公开,然后从VBA中调用它们。

这个链接的最后一篇文章有​​一些代码:

http://bytes.com/groups/ms-access/205532-calling-c-net-dll-vba

您可以使用Excel-DNA – 一个独立的开源项目来将.NET集成到Excel中。 它允许使用托pipe代码创buildExcel加载项,包括高性能的用户定义函数。 它只需要.NET 2.0或更高版本,所以你的VS 2005将会很好。

(免责声明:我是Excel-DNA的开发者。)

您可以(轻松地)从VBA调用任何COM组件; 你也可以(不那么容易)调用其他的DLL等 – 甚至系统DLL。

如果你为你的.NET DLL创build一个COM包装器,你可以从VBA中调用这些包装器。 你可以用VS2005来完成,但是涉及的工作量取决于DLL的API的复杂性。