2009-01-13 111 views
8

我工作的公司在Excel工作表上运行。其中几张表格嵌入了某种形式的VBA代码。我正在对它们进行一些维护,但感觉真的过时了。Office VBA会发生什么?

Office VBA会发生什么情况?

为什么Microsoft没有发布用于Office的嵌入式.NET宏语言?

+3

”在Excel工作表上运行的公司“......让我猜,你在银行工作吗?作为承包商,我总是很惊讶地看到世界级的千兆银行在xl表上运行。 – 2010-04-08 19:24:48

回答

9

简短的回答:你可能罚款一会儿呢。

长篇回答:VB6(这是VBA的真正用处)几乎是一种死的,不受支持的语言,最近一次使用同一时期的IDE更新了十年。它只是仍然存在,因为它嵌入在Office中,并且有数百万Office应用程序在VBA被删除或更改时会停止工作。更不用说数以百万计的恼人用户了。

那么如何前进呢? Office可以在托管代码中重新实现吗?微软想要这样做吗?他们是否会做出比Ribbon更大的向后兼容性突破,并放弃宏观录制和解释嵌入代码的概念?我只是无法看到我的用户使用COM Interop和whatnot在Visual Studio中使用VB.NET。

如果我不得不把钱投入到一个结果上(而且我甚至不想赌多少),我会查看Dynamic Language Runtime以及几种语言处于准备运行状态的事实。假设DLR(用于Office应用程序COM模型的一些合适的替换或包装)将取代VB6运行时。此外,假设VBA被实现为DLR语言。现在,传统的VBA将继续运行,只是在一个不同的(现代的,受支持的)解释器和交易中,我们可以使用Python,Ruby或任何其他DLR语言编程来编程Excel宏。

但是,这只是我最好的猜测 - 我不知道它是否接近真正会发生。不过,我一定喜欢能够在Ruby中编程Excel宏。

+0

在Windows 7发布5年之后,再加上5年后,它将“按原样”支持。 – 2009-04-23 13:01:36

1

昨天我有点碰到同样的想法。真是巧合。突然间,我在兼职工作的老板正在寻找我3年前创建的Excel应用程序(2007年离开公司,作为兼职员工回来加强我的全职工作)。我记得我已经将它转换为MS Access 2003应用程序;但应用程序需要更新以满足更新的要求。猜猜看,我想我已经忘记了VBA。现在是不适合回去重新学习东西的时候了。我正在继续使用C#2.0/3.0。用C#3.0重建MS Access 2003应用程序将是一次很好的学习体验,我敢肯定!

@IainMH是正确的......“是时候让你潜入.NET”

2

那么我是一个有经验的.NET程序员。我尝试了Office的工具,这是一个痛苦的使用,它需要你分发程序集(LOL)。财务或交付将无法使用它。在卸载之前,我们笑了起来。

我们尝试了Google Docs,这个功能非常灵活,但仍不如Excel宏的功能强大。微软自2000年以来停滞不前,Google正在快速发展,所以在几年内答案可能会有所不同。由于所有的安全废话,VBA本身实际上是较少强大。

最后,我仍然在他们的工作表中找到了一个按钮来执行他们想要的操作,如果他们喜欢,他们可以对代码进行较小的更改。奇怪的是,VBA是我怀疑世界上所有财务部门都在使用的东西。 “