Visual studio 使用Visual Studio而不是内置的VBA编辑器

Visual studio 使用Visual Studio而不是内置的VBA编辑器,visual-studio,excel,vsto,text-editor,vba,Visual Studio,Excel,Vsto,Text Editor,Vba,我正在寻找一个解释,说明我能做什么,不能做什么,以及用Visual Studio代替Excel中的内置文本编辑器进行编码的优缺点。从开发语言来看,Excel编辑器是VBA,VS是C#/VB.NET。如果你有一个轻功能,你可以直接使用VBA,如果你有一个大的要求,.NET/VSTO将是合适的,它将方便地管理你的代码在VS,.NET.VSTO是托管代码,它的性能优于VBA。使用VSTO,您可以自定义Office UI。在分发项目时,需要在启用宏的情况下复制office文件。您可以使用ClickOnc

我正在寻找一个解释,说明我能做什么,不能做什么,以及用Visual Studio代替Excel中的内置文本编辑器进行编码的优缺点。

从开发语言来看,Excel编辑器是VBA,VS是C#/VB.NET。如果你有一个轻功能,你可以直接使用VBA,如果你有一个大的要求,.NET/VSTO将是合适的,它将方便地管理你的代码在VS,.NET.VSTO是托管代码,它的性能优于VBA。使用VSTO,您可以自定义Office UI。在分发项目时,需要在启用宏的情况下复制office文件。您可以使用ClickOnce或Windows installer来分发.net/VSTO解决方案

从我的角度看

如果需要,请使用VBA编辑器(VBE)

  • 为自己、朋友开发临时应用程序
  • 你是唯一一个在项目上工作的人
  • 主要使用Office对象模型-不与系统、Web、数据库等通信
  • 不要使用源代码管理(注意:如果您这样做,这里将提供帮助)
  • 不要在参考表单中包含太多DLL
  • 不想学习新平台(.NET)
注意,我做了以上所有的工作,我可以长期使用VBA而不会出现太多问题,并且在一些方面VBA比VSTO好得多,例如在调试方面(这里我的意思是,在调试VBA时,您几乎可以更改所有内容,并且您仍然可以继续,在VSTO中没有办法做到同样的事情)

如果需要,请使用VSTO

  • 希望更好地支持系统、Web、XML和数据库任务。净是 更好,尤其是当我们谈论网络或数据库时 东西

  • 希望对版本控制有更好的支持(有时是现成的) (GIT、SVN、TFS、Perforce)

  • don't将不会有依赖性问题(这可能是 (实际上也很痛苦)

  • 是否要使用新的VSTO对象,如incl.events

  • 想学习新平台吗

我记得几年前,当我想到VSTO将一些新的东西移植到Office对象模型中时,如果不计算VSTO对象,情况就不会如此。因此,如果您大量使用Excel对象模型(处理范围、工作表、工作簿、计算),您仍然可以只使用VBA。 我还记得,使用VSTO,您无法轻松地(自定义功能)

看起来微软也不会在添加/更新/改进VSTO方面投入太多精力,他们更关注Office API

感谢您的提问,Ben,我们已经公开宣布,我们不会在下一版本的Office中关闭VSTO或VBA。我们所有的新投资都在Office应用程序和SharePoint应用程序上,使Office 365 API更加强大我们未来不会对VSTO或VBA进行任何投资

看起来我可能反对VSTO,但我不是,我已经每天使用它超过4年了,并且返回VBA只是为了快速测试或快速项目


希望这对您有所帮助

如果您正在编写在excel中运行的VBA代码,请使用excel VB编辑器。如果您正在编写.NET/VSTO代码来自动化Excel,那么请使用Visual Studio。