Short answer: you're probably fine for a while yet.
Long answer: VB6 (which is what VBA really is) is pretty much a dead, unsupported language, last updated a decade back with an IDE from the same period. It's only still around because it's embedded in Office and there are millions of Office apps that would stop working if VBA was removed or changed. Not to mention millions of mightily annoyed users.
So how to move forward? Can Office be re-implemented in managed code? Does Microsoft want to do that at all? Are they going to make an even bigger backward-compatibility break than the Ribbon and just discard the notion of macro recording and interpreted embedded code? I just can't see my users taking to VB.NET in Visual Studio, using COM Interop and whatnot.
If I had to put money on one outcome (and I wouldn't want to bet much even then) I'd be looking at the Dynamic Language Runtime and the fact that several languages are in various states of preparedness to run on it. Suppose the DLR, with some suitable replacement or wrapper for the Office app COM model, were to replace the VB6 runtime. Further, suppose VBA were implemented as a DLR language. Now legacy VBA will continue to run, just on a different (modern, supported) interpreter and into the bargain, we can program Excel macros in Python, Ruby or whatever other DLR language takes our fancy.
But that's just my best guess - I have no idea whether or not it's anywhere near to waht will actually happen. I'd surely love to be able to program Excel macros in Ruby, though.
Well I'm a experienced .NET programmer. I tried Tools for Office which is a pain to use and it requires you to distribute assemblies (LOL.) There's no way Finance or Delivery is going to use that. We had a good laugh before hitting uninstall.
We tried Google Docs, which was surprisingly flexible, but still not as powerful as Excel macro's. Microsoft has stagnated since 2000, and Google is moving fast, so in a few years the answers might be different. VBA itself is actually less powerful today due to all the security nonsense.
In the end I still got a button in their sheet to do what they want, and they can make minor changes to the code if they like. It's weird that VBA is the way to go for something that I suspect all finance departments in the world use.
I kinda came across the same line of thinking yesterday. What a coincidence. Suddenly the boss at my parttime job was looking for an Excel application I created 3 years ago (left the company in 2007 and came back to them as parttime employee to augment my fulltime job). I remember I had converted that to an MS Access 2003 application; but the app needs to be updated to fulfill newer requirements. Guess what, I think I already forgot VBA. It is not the right time to go back and re-learn things from ground up. I am moving on with C# 2.0/3.0. Rebuilding that MS Access 2003 application with C# 3.0 will be a great learning experience, I'm sure!
@IainMH is right..." it's time for you to dive into .NET"
VBA is worth learning till the time Excel is there because whatever you do in Excel, VBA can automate that to save your time and reduce the error chance. You can simply run code and sit on chair rest task will be done by VBA code. ... With VBA you can learn the SQL and Excel (if you already know then it is too good).
发布评论
评论(6)
简短的回答:你可能还好一段时间。
长答案:VB6(这就是 VBA 的真正含义)几乎是一种已死的、不受支持的语言,最后一次更新是在十年前,由同一时期的 IDE 进行的。 它之所以仍然存在,是因为它嵌入在 Office 中,并且如果删除或更改 VBA,有数百万个 Office 应用程序将停止工作。 更不用说数以百万计的极度恼火的用户了。
那么如何继续前进呢? Office 可以在托管代码中重新实现吗? 微软真的想这么做吗? 他们是否会做出比功能区更大的向后兼容性突破,并放弃宏记录和解释嵌入式代码的概念? 我只是看不到我的用户在 Visual Studio 中使用 VB.NET、使用 COM Interop 等。
如果我必须把钱押在一个结果上(即使那样我也不想下太多赌注),我会考虑 动态语言运行时,以及多种语言处于不同的准备状态以在其上运行的事实。 假设 DLR 以及 Office 应用程序 COM 模型的一些合适的替代品或包装器将取代 VB6 运行时。 此外,假设 VBA 是作为 DLR 语言实现的。 现在,旧版 VBA 将继续运行,只是在不同的(现代的、受支持的)解释器上运行,而且我们可以使用 Python、Ruby 或任何我们喜欢的其他 DLR 语言对 Excel 宏进行编程。
但这只是我最好的猜测——我不知道这是否会真正发生。 不过,我当然希望能够用 Ruby 编写 Excel 宏。
Short answer: you're probably fine for a while yet.
Long answer: VB6 (which is what VBA really is) is pretty much a dead, unsupported language, last updated a decade back with an IDE from the same period. It's only still around because it's embedded in Office and there are millions of Office apps that would stop working if VBA was removed or changed. Not to mention millions of mightily annoyed users.
So how to move forward? Can Office be re-implemented in managed code? Does Microsoft want to do that at all? Are they going to make an even bigger backward-compatibility break than the Ribbon and just discard the notion of macro recording and interpreted embedded code? I just can't see my users taking to VB.NET in Visual Studio, using COM Interop and whatnot.
If I had to put money on one outcome (and I wouldn't want to bet much even then) I'd be looking at the Dynamic Language Runtime and the fact that several languages are in various states of preparedness to run on it. Suppose the DLR, with some suitable replacement or wrapper for the Office app COM model, were to replace the VB6 runtime. Further, suppose VBA were implemented as a DLR language. Now legacy VBA will continue to run, just on a different (modern, supported) interpreter and into the bargain, we can program Excel macros in Python, Ruby or whatever other DLR language takes our fancy.
But that's just my best guess - I have no idea whether or not it's anywhere near to waht will actually happen. I'd surely love to be able to program Excel macros in Ruby, though.
他们正在向下一版本的 Office for the Mac 添加 VBA 支持,所以我怀疑它会存在一段时间。
They are adding VBA support to the next version of Office for the Mac, so I suspect that it'll be around for a while.
我想说,现在是您深入研究 .NET 的时候了。
您可以从 Excel 调用 .NET 库。
http://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel/
I would say it's time for you to dive into .NET.
You can call .NET libraries from Excel.
http://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel/
我是一名经验丰富的 .NET 程序员。 我尝试了 Office 工具,它使用起来很痛苦,并且需要您分发程序集(笑)。财务或交付不可能使用它。 在点击卸载之前我们笑得很开心。
我们尝试了 Google Docs,它非常灵活,但仍然不如 Excel 宏强大。 微软自 2000 年以来一直停滞不前,而谷歌正在快速发展,因此几年后答案可能会有所不同。 由于所有的安全废话,VBA 本身现在实际上不太强大。
最后,我仍然在他们的工作表中找到了一个按钮来执行他们想要的操作,如果他们愿意,他们可以对代码进行微小的更改。 奇怪的是,我怀疑世界上所有财务部门都在使用 VBA。
Well I'm a experienced .NET programmer. I tried Tools for Office which is a pain to use and it requires you to distribute assemblies (LOL.) There's no way Finance or Delivery is going to use that. We had a good laugh before hitting uninstall.
We tried Google Docs, which was surprisingly flexible, but still not as powerful as Excel macro's. Microsoft has stagnated since 2000, and Google is moving fast, so in a few years the answers might be different. VBA itself is actually less powerful today due to all the security nonsense.
In the end I still got a button in their sheet to do what they want, and they can make minor changes to the code if they like. It's weird that VBA is the way to go for something that I suspect all finance departments in the world use.
昨天我也有同样的想法。 真是巧合啊。 突然,我兼职工作的老板正在寻找我 3 年前创建的 Excel 应用程序(2007 年离开公司,作为兼职员工回到他们身边,以补充我的全职工作)。 我记得我已将其转换为 MS Access 2003 应用程序; 但该应用程序需要更新以满足新的要求。 你猜怎么着,我想我已经忘记了 VBA。 现在不是回去从头开始重新学习的合适时机。 我将继续使用 C# 2.0/3.0。 我确信,使用 C# 3.0 重建 MS Access 2003 应用程序将是一次很棒的学习经历!
@IainMH 是对的......“现在是你深入研究 .NET 的时候了”
I kinda came across the same line of thinking yesterday. What a coincidence. Suddenly the boss at my parttime job was looking for an Excel application I created 3 years ago (left the company in 2007 and came back to them as parttime employee to augment my fulltime job). I remember I had converted that to an MS Access 2003 application; but the app needs to be updated to fulfill newer requirements. Guess what, I think I already forgot VBA. It is not the right time to go back and re-learn things from ground up. I am moving on with C# 2.0/3.0. Rebuilding that MS Access 2003 application with C# 3.0 will be a great learning experience, I'm sure!
@IainMH is right..." it's time for you to dive into .NET"
在 Excel 出现之前,VBA 值得学习,因为无论您在 Excel 中做什么,VBA 都可以自动执行,以节省您的时间并减少错误机会。 您只需运行代码即可,坐在椅子上休息任务将由 VBA 代码完成。 ...通过 VBA,您可以学习 SQL 和 Excel(如果您已经知道那就太好了)。
VBA is worth learning till the time Excel is there because whatever you do in Excel, VBA can automate that to save your time and reduce the error chance. You can simply run code and sit on chair rest task will be done by VBA code. ... With VBA you can learn the SQL and Excel (if you already know then it is too good).