VBA VS. VSTO有什么区别,我应该升级吗?

我是KISS原则(保持简单)和Excel用户很长一段时间的VBA的狂热粉丝。 但是,我可以在VBA和VSTO(Visual Studio Tools for Office)上find的所有文章看起来都非常复杂。

首先,我厌倦了Excel中内置的非常差的IDE,我正在寻找一个新的IDE。 使用Visual Studio作为IDE的VSTO似乎是唯一的select。

所以我想了解VBA和VSTO之间的区别是否值得我学习使用VSTO?

你使用哪个工具集主要是个人喜好的问题,但是这里有一些需要考虑的事情:
1.性能:对于大多数与Excel相关的任务,由于额外的Interop层,与VBA相比,VSTO的执行速度非常缓慢。
2. UDF:VSTO不支持UDF
3.对象模型:使用VSTO的Excel对象模型比使用VBA更难,因为没有.NET Macro录制器给你提示。
4. IDE:使用VSTO,您可以访问最新的Visual Studio IDE(假设您拥有Visual Studio许可证)
5.Net Framework:VSTO使您可以访问非常丰富和强大的.NET框架
6.学习曲线:VB.NET与VBA是不同的语言,.NET框架和对象模型的差异意味着过渡并不像过去那么简单。
7.如果你想要去Visual Studio / .NET路线,我build议你看看Addin Express或者XLDNA,而不是VSTO:这两个都比VSTO

Excel中的VBA为您提供了编辑代码和运行代码之间快速结果的优势 。 因为你是一名优秀的VBA程序员,所以你可以没有Visual Studio的超级特性(intellisense,try-catch-fanally,inheritance,每个.NET对象,multithreading……)

VSTO是一种在一个非常好的IDE(Visual Studio)中工作的方法,但是我担心你会浪费很多时间在VB.NET和你的Excel之间切换。 不像你的Excel里的VBA那么直接。

如果你编程的主要目的是留在你的Excel文件中,那么使用VBA。 如果你真的需要在你的excel文件外面玩,或者如果你想做一些不需要的东西取决于你的excel文件,也许你可以考虑VSTO。 除此之外,VSTO相当新颖,文档可能不是天才。

如果我是你,我会留在VBA。 这是我的HU OP之词。 我写了一个VBA和VB.NET(VSTO)之间的比较:这里是VB.NET和VBA之间的区别 !