12

With the new 2007 versions of MS-Office, Microsoft started to "threaten" VBA with VSTA. Since VBA is pretty commonly used, what do you believe its future is in terms of scripting development for the next 3-5 years?

Or, will it be killed suddenly, like VB6?

Autodesk also dropped it (kind of) upon hearing news from MS.

pnuts
  • 58,317
  • 11
  • 87
  • 139
Rook
  • 60,248
  • 49
  • 165
  • 242
  • 7
    VBA is still the only meaningful way to program MSACCESS. – Robert Harvey Jul 11 '09 at 00:05
  • @John: Its funny. Nobody wants VSTA for that matter. VBA came from microsoft which is used effectively. Non-developers could also use it with some ease. Why would people ask for VSTA, when it uses COM interop at the end of the day? – shahkalpesh Jul 11 '09 at 00:06
  • That's why someone might _need_ VBA, not why someone might _want_ it. If Office 2010 used VSTA instead of VBA, would anyone be sad? – John Saunders Jul 11 '09 at 00:06
  • COM Interop? What do you mean? It gives you direct access to all of .NET. – John Saunders Jul 11 '09 at 00:07
  • I am sure it will take quite sometime before they throw COM out. Even if you/I will use .net (VSTA), we will be dealing with COM indirectly. VBA or VB is still the better way to deal with COM. What do you think? – shahkalpesh Jul 11 '09 at 00:09
  • @John Saunders - there are a lot of people out there who invested time and money in VBA, and don't appreciate it being here one moment, gone the next. Heard of backward compatibility and grace periods ? – Rook Jul 11 '09 at 00:11
  • .net brings in its framework which could be a big thing for office development. By COM interop, I mean - office libraries will be available in form of COM DLLs & there will be .net wrappers around it. – shahkalpesh Jul 11 '09 at 00:11
  • I don't know what you're getting at. VSTA gives you full access to the .NET Framework. Of course if you're dealing with an Automation API, you'll still be doing COM. But for everything else, you'll have the complete .NET Framework at your disposal. – John Saunders Jul 11 '09 at 00:12
  • 3
    @ldigas: I'm sure VBA will disappear just as quickly as VB6 did. Oh, wait, you mean VB6 is still around? Maybe VBA will be as well. – John Saunders Jul 11 '09 at 00:13
  • 3
    .net framework at your disposal doesn't come for free. It comes with its own complexity. It takes time, money & learning on part of developers/companies to upgrade to something just because MS will drop support. I mean - if people are having working solutions with limited set of functionality - why in the world they need to care for .net framework? – shahkalpesh Jul 11 '09 at 00:15
  • @shahkalpesh - my thought exactly. Not to mention the sudded productivity drop over a certain time period just to reach the same functionality which you had before the switch. – Rook Jul 11 '09 at 00:22

4 Answers4

6

I'd suggest that VB6 wasn't killed suddenly. Official MS support, perhaps, but still the community is alive for both VB6 and VBA here on SO.

As with any technology with a WIDE user/customer/3rd party vendor base, it will take a long time for VBA as a scripting technology to fade away. I would imagine that it will take years for its successor to fully overtake VBA.

Community
  • 1
  • 1
p.campbell
  • 98,673
  • 67
  • 256
  • 322
  • Yes, but with the new OS's coming slowly, it's going for the final kill. I don't know anyone who succesfully merged their VB6 stuff to Vista from XP, and has it running reasonably well, without thinking of just switching to .NET and rewriting the whole thing. – Rook Jul 11 '09 at 00:12
  • Smart people. Running a little late, but smart. – John Saunders Jul 11 '09 at 00:15
  • I hope you don't mean that I am an idiot ;) – shahkalpesh Jul 11 '09 at 00:18
6

Agree with Dick Kusleika about deployment

The problems with deprecating VBA are:

  1. Ease of deployment
  2. Visual Studio - another IDE to learn
  3. For the huge base of working, business-critical VBA apps, where nothing will be added by .NET, why would one want to spend the effort and time migrating?
  4. With VBA, non-developers can knock up quick useful applications within Excel/Word etc. You can't do this with .NET/VSTO.
RBT
  • 24,161
  • 21
  • 159
  • 240
Ian Digby
  • 61
  • 1
  • 1
3

It will die, IMO, but not suddenly. Excel used to have a macro language called XLM - basically a keyboard playback on steroids. XLM is still supported, and there's easily a dozen people who use it. That's why I think VBA will be around for quite a while. It won't be updated, supported, and maybe not even acknowledged, but it will be available.

Sooner or later MS will integrate .NET with Office apps and fewer people will care about VBA. Right now, I can put some VBA in an Excel spreadsheet, send it to a client, and deployment is done. I can tell the IT department it's an Excel workbook with macros, and they don't feel threatened because they don't know any better. When .NET has deployment options that simple, I'll use it instead. That day will come and VBA will slowly start fading away.

Dick Kusleika
  • 32,673
  • 4
  • 52
  • 73
  • 1
    Yes, you're right. But .xlm, now a little outdated, was a, how to put it, local to Excel. VBA, at least in my case, is spread through several applications, and we use it lot for interconnecting those applications (for example, tables and coordinates from excel to autocad). That's another aspect of that change - even if you change it (MS), all the other vendors still have to make the change as well. – Rook Jul 12 '09 at 21:56
2

The language has changed & the way things were done (i.e. drag/drop form, create a macro, modify a few line & you are done) will also change.

It won't remain a tool, which a non-developer will find easy to use.

Object model should remain same for basic stuff (Workbook, Worksheet, Range) etc.
New set of things will get added & that will change the object model & hence new learning (e.g. Ribbon Interface)

Not to forget, .net brings in its own concepts/complexity.

shahkalpesh
  • 33,172
  • 3
  • 63
  • 88
  • 1
    Yes, I agree. Why is it that always when you find a concept that non-developers find easy to use, then you deside to change it. VB6 and VBA were great productive things because of that reason (some others as well, but this one was major). – Rook Jul 11 '09 at 00:14