我需要从Excel 2007调用一些.NET代码,我正在寻找最好的方法。
官方的“微软认可”方法似乎涉及Visual Studio 2008 Professional,但我没有。我有VS2005,但加上VSTO 2005 SE只能做应用程序级加载项,而不是文档级宏。
问题涉及一些.NET程序集的分析代码;我想通过更改Excel工作表中的某些单元来操作它。
还有其他想法吗?
答案 0 :(得分:3)
您可以将.net对象公开为COM对象,然后从VBA中调用它们......
此链接的最后一篇文章包含一些代码:
http://bytes.com/groups/ms-access/205532-calling-c-net-dll-vba
答案 1 :(得分:2)
您可以使用Excel-DNA - 一个独立的开源项目,将.NET集成到Excel中。它允许使用托管代码创建Excel加载项,包括高性能的用户定义函数。它只需要.NET 2.0或更高版本,因此你的VS 2005就可以了。
(免责声明:我是Excel-DNA的开发者。)
答案 2 :(得分:1)
您可以(轻松)从VBA调用任何COM组件;你也可以(不那么容易)调用其他DLL等 - 甚至系统DLL。
如果为.NET DLL创建COM包装器,则可以从VBA调用它们。你可以用VS2005做到这一点,但涉及的工作量将取决于DLL的API的复杂性。