如果我在Visual Studio中开发Excel应用程序,是否会失去macroslogging的好处?

我过去使用以下开发stream程编写了大量的Excelmacros:

  1. logging一个macros。
  2. 打开VBA编辑器。
  3. 编辑macros。

我现在正在试验一个Visual Studio 2008“Excel 2007加载项”项目(C#),我想知道是否必须放弃这个开发过程。

问题:

  1. 我知道我仍然可以使用Excel录制macros,但有没有办法在Visual Studio中访问生成的代码? 或者我只需要复制和粘贴,然后C# – 大小呢?

  2. 我的“个人macros工作簿”会发生什么? 我可以使用C#中存储的macros吗? 或者有什么方法将它们转换为C#?

  3. 如果在Visual Studio中打开和编辑VBAmacros的某些支持,可以提供一个非常简短的工作原理摘要或指向我的一个很好的参考?

  4. 你有没有其他的技巧可以从使用Excel的内置编辑器在VBA中编写macros来编写macros,用Visual Studio编写C#代码?

如果您想将VBAmacros移植到C#,那么您将处于一个受到伤害的世界。 如果他们是复杂的,我只会重写他们在Visual Studio中或保留在Excel中。

而且,尽pipe我很难说这个,VB.net现在是办公室开发的更好的select。 VB.net支持缺less的参数,这些参数对于具有zillion参数的Excel方法将派上用场。 这个支持将被添加到.NET 4.0的C#中。

你应该能够从.NET调用VBA方法。 看看这个: http : //msdn.microsoft.com/en-us/library/bb608609.aspx

你也可以看这篇关于codeproject的文章: http : //www.codeproject.com/KB/office/extending_excel.aspx

(免责声明:我开发了Excel-DNA库。)

你应该看看Excel-DNA – http://exceldna.codeplex.com 。 该库允许用C#,VB.NET或F#编写的pipe理程序集通过Excel的本地.xll接口将高性能的用户定义函数(UDF)和macros展示给Excel。 该项目是开源的,可以自由地商业使用。

用你的VBA背景,首先使用VB.NET转移到.NET是有意义的。 一旦你完成了这个转换,开始使用C#将会变得更容易,你可以交叉引用在VB.NET和C#中编写的程序集,而不会有问题。

一些像ReSharper这样的插件工具和免费的.NET IDE SharpDevelop甚至可以自动将代码从VB.NET转换为C#。 当然,对于使用C#中的COM自动化接口,您希望使用.NET 4。

Mike Staunton在这里有一个讨论VBA – > VB.NET通过Excel-DNA技术的video: http : //www.thalesians.com/finance/index.php/Events/Seminars/Seminar27#Video 。