我以前使用以下开发过程编写了大量Excel宏:
我现在正在尝试使用Visual Studio 2008“Excel 2007加载项”项目(C#),我想知道是否必须放弃此开发过程。
问题:
我知道我仍然可以使用Excel录制宏,但有没有办法在Visual Studio中访问生成的代码?或者我只需要复制并粘贴C#-ize it?
我的“个人宏工作簿”会怎样?我可以在C#中使用我存储在那里的宏吗?或者有没有办法将它们转换为C#?
如果支持在Visual Studio中打开和编辑VBA宏,您能否提供一个非常简短的工作原理摘要或指向我的参考资料?
对于使用Excel内置编辑器在VBA中编写宏以及使用Visual Studio在C#中编写宏,是否还有其他提示?
答案 0 :(得分:6)
如果您想将VBA宏移植到C#,那么您将面临一个受伤的世界。如果它们很复杂,我只需在Visual Studio中重写它们或将它们保存在Excel中。
另外,尽管我很难说这一点,但VB.net目前是办公室开发的最佳选择。 VB.net支持缺少参数,这些参数对于具有大量参数的Excel方法非常有用。此支持将添加到C#for .NET 4.0。
您应该能够从.NET调用VBA方法。看看这个: http://msdn.microsoft.com/en-us/library/bb608609.aspx
您还可以在codeproject上查看这篇文章:http://www.codeproject.com/KB/office/extending_excel.aspx
答案 1 :(得分:0)
(免责声明:我开发了Excel-DNA库。)
你应该看一下Excel-DNA - http://exceldna.codeplex.com。该库允许使用C#,VB.NET或F#编写的托管程序集通过Excel的本机.xll接口向Excel公开高性能用户定义函数(UDF)和宏。该项目是开源的,可以自由地进行商业用途。
使用VBA背景,首先使用VB.NET迁移到.NET可能是有意义的。一旦你完成这个转变,开始使用C#会更容易,你可以交叉引用用VB.NET和C#编写的程序集,没有问题。
一些加载项工具,如ReSharper和免费的.NET IDE SharpDevelop,甚至可以自动将代码从VB.NET转换为C#。当然,对于使用C#的COM自动化接口,您希望使用.NET 4。
迈克斯汤顿有一个关于VBA谈话讨论的视频 - > VB.NET通过Excel-DNA技术在这里:http://www.thalesians.com/finance/index.php/Events/Seminars/Seminar27#Video。