我工作的公司是在Excel工作表上运行的。其中一些工作表嵌入了某种形式的VBA代码。我正在对它们进行一些维护,但感觉真的过时了。
Office VBA会发生什么?
为什么Microsoft没有为Office发布嵌入式.NET宏语言?
答案 0 :(得分:9)
简短的回答:你可能已经很好了一段时间了。
答案很长:VB6(VBA真的是这个)几乎是一种死的,不受支持的语言,最后几年用同一时期的IDE更新了。它仍然存在,因为它嵌入在Office中,并且有数百万个Office应用程序在VBA被删除或更改时将停止工作。更不用说数以百万计的受害者了。
那么如何前进?可以在托管代码中重新实现Office吗?微软是否想要这样做?它们是否会比功能区实现更大的向后兼容性中断,只是放弃了宏录制和解释嵌入代码的概念?我只是看不到我的用户使用COM Interop等等在Visual Studio中使用VB.NET。
如果我不得不把钱投入到一个结果上(我甚至不想多打赌)我会看Dynamic Language Runtime以及几种语言处于各种准备状态的事实跑吧。假设使用Office应用程序COM模型的一些合适的替换或包装器的DLR将替换VB6运行时。此外,假设VBA被实现为DLR语言。现在传统的VBA将继续运行,只是在一个不同的(现代的,支持的)解释器和讨价还价,我们可以用Python,Ruby或任何其他DLR语言编程Excel宏。
但这只是我最好的猜测 - 我不知道它是否真的会发生。我当然希望能够在Ruby中编写Excel宏。
答案 1 :(得分:3)
他们是adding VBA support to the next version of Office for the Mac,所以我怀疑它会存在一段时间。
答案 2 :(得分:2)
我想说你是时候深入了解.NET。
您可以从Excel调用.NET库。
答案 3 :(得分:2)
我是一名经验丰富的.NET程序员。我尝试使用Tools for Office,这很难使用,它需要你分发程序集(LOL。)财务或交付无法使用它。在点击卸载之前,我们笑得很开心。
我们尝试了Google文档,这种文档非常灵活,但仍然没有Excel宏那么强大。微软自2000年以来一直停滞不前,谷歌正在快速发展,因此几年后答案可能会有所不同。由于所有安全性无意义,VBA本身实际上 强大。
最后,我的表单中仍然有一个按钮可以执行他们想要的操作,如果他们愿意,他们可以对代码进行微小的更改。令人感到奇怪的是,VBA是我怀疑世界上所有财务部门都在使用的东西的方式。
答案 4 :(得分:2)
在出现Excel之前,VBA值得学习,因为无论您在Excel中做什么,VBA都能自动执行此操作以节省时间并减少出错的机会。您可以简单地运行代码并坐在椅子上,由VBA代码完成任务。 ...使用VBA,您可以学习SQL和Excel(如果您已经知道,那就太好了。)
答案 5 :(得分:1)
@IainMH是对的......“现在是时候深入了解.NET”