VBA会不会很快消失,就像VB6一样?我不应该用VBA开发新的Office应用程序吗?或者我应该使用VSTO开发所有新的Office应用程序?
更新:最近阅读了这篇文章.
Office VSTO提供了大量超过Office VBA的附加功能,虽然我不相信微软已经表示它将终止VBA(事实上,他们已明确表示它将至少在Office 14之前; Office 2007 = Office 12),我认为将您的应用程序移至VSTO以利用额外的灵活性和功能是非常值得的.
我实际上并不认为弃用VBA是可行的,因为相当数量的Office编程是由业务用户在宏观层面进行的,我认为这不会很快消失.这些人通常无法访问支持VSTO的IDE.
VSTO具有新功能,但与VBA相比也存在一些重大缺陷.
首先,代码访问安全性可能使部署VSTO应用程序变得很困难(这是礼貌的).
另一方面,VSTO开发环境远不像VBA那样"高级用户"开发人员可以访问.例如,没有宏录制器可以帮助您入门.
而且一个很大的障碍是.NET与进程外COM对象的互操作不能很好地工作.例如,如果要从Excel VSTO应用程序中操作其他Office应用程序(Word,PowerPoint,Outlook),您将在后台找到这些应用程序的多个副本,原因如此知识库文章中所述.
所有这一切加上对现有VBA应用程序的巨额投资意味着VBA不会很快消失.
微软已声明VBA将在可预见的未来得到支持,但他们也建议新应用程序使用VSTO.
最新的Mac版MS Office不支持VBA,64位Windows以虚拟32位进程外模式运行它.因此,如果您计划使用Office作为平台的新应用程序,VSTO 绝对是可行的方法,但您不应过分担心遗留支持.
正如@cori所指出的那样,对于MS而言,只有大力支持并打破如此多的现有软件才是一个很大的营销禁忌.