Next Office:Mac will bring back VBA support
The Mac business users' community was in an uproar two years ago over the removal of a key feature of Office that was created, ironically, for Windows. Now, the company that "listens to its customers" is finding a way to restore it.
Easily Office 2008's most lamented missing feature for Mac users, the lack of support for Visual Basic for Applications -- Microsoft's first, best genuine effort at making its principal application engines cross-platform -- will return in the next edition of the product, according to an announcement this morning by the Mac Business Unit of Microsoft.
"As with [Office 2008] SP1, we are taking your feedback and using it to help us make Office for Mac better," wrote Mac BU general manager Craig Eisler. "We are very clear that Visual Basic for Applications (VBA) is an important feature to certain customers, and we will be bringing support back for VBA in the next version of Office for Mac, along with continuing our support for AppleScript."
For many businesses using Office:Mac, this is a big deal. Although documents created with earlier editions of the applications suite still contain their VBA macros, Office:2008 does not actually execute them, nor does it contain anything that permits them to be edited, favoring AppleScript instead. With the next edition, which has yet to be given an official name, those old macros should become visible again.
The reason for VBA's exit from Office 2008 in the first place was a double-sided sword of irony. For years, Microsoft has wanted to steer clear of VBA in Office in favor of any .NET-based language; and privately, its engineers have told me over those years that the company's goal has been to somehow wean users off of VBA, giving them instead an avenue to true Visual Basic for .NET, or their choice of alternative languages including C#.
One problem there concerns OXML, and the fact that macros are no longer intended to be embedded in documents for portability. Not long ago for its Windows customers, Microsoft touted the inability for embedded macros to be executable from an Open XML-based document as a feature.
But with VBA macros now an intrinsic part of many companies' homemade business logic, the "opportunity" to port that logic to a new language -- and the costs involved with that -- aren't easy to describe as a feature. As a result, VBA may not be going away soon from Office for Windows.
On the Mac side of things, Office 2008's predecessor was originally programmed for the Mac's old PowerPC architecture. So its VBA processor was a PowerPC application.
As one of Office:Mac's engineers, Eric Schwiebert, reluctantly blogged in August 2006 when the feature set for Office:2008 was first being announced, "Some folks might ask, why not just port the Win Office VBA over to the Mac? Well, VBA circa Win Office 97 (which is the closest Windows VBA to what we have on the Mac) doesn't implement their execution engine this way at all. Instead, they have tens of thousands of lines of IA-32 assembly that directly implements all of the opcodes. That assembly does so according to the Windows Intel [Application Binary Interface], which is different from the Mac ABI in several important ways.
"Also, the assembly is in MASM format which is close to but not the same as NASM as supported by GCC [compiler]," Schweibert continued. "So, we'd have to edit the source to be compilable by GCC, and scrub it line-by-line to find and adjust the parts that aren't compliant with the Apple Intel ABI. We'd also end up with two completely different implementations of VBA (PPC state machine and Intel straight assembly) that we'd have to maintain and keep in sync. That would be horribly bug-prone."
So the irony there was that the MacBU team found itself unable to meet the demands of porting what was originally an Intel-based application over to an Intel-based computer, while retaining binary compatibility.
In the intervening period between then and now, Eisler -- the former general manager of AOL Wireless -- was appointed to replace Roz Ho, who moved to Microsoft's Entertainment and Devices Division. Now, Schwiebert finds himself able to at last report on his team's progress on this technically horrendous task, after seeing it surprisingly announced by Eisler.
"When we came to the realization in 2006 that there was no way for us to keep VB in the product and still ship Office 2008 on any semblance of the schedule we wanted, we announced its removal, but kept looking at how to bring it back into the suite even before we shipped," Schwiebert wrote this morning. "Many of the technical challenges I wrote about then still remain, but for a while now I and several others have been working with a group of people who know a heck of a lot about the internals of VB, and once we determined that we could achieve the revival VB in the new schedule for the next version of Mac Office, we locked it into place on the feature list."
What still isn't known is a final release date, though we're given a clue by the fact that such a job would take a few years, by Schwiebert's estimate, and almost a few years have already passed.