• MacTech Network:
  • Tech Support
  • |
  • MacForge.net
  • |
  • Apple News
  • |
  • Register Domains
  • |
  • SSL Certificates
  • |
  • iPod Deals
  • |
  • Mac Deals
  • |
  • Mac Book Shelf

MAC TECH

  • Home
  • Magazine
    • About MacTech in Print
    • Issue Table of Contents
    • Subscribe
    • Risk Free Sample
    • Back Issues
    • MacTech DVD
  • Archives
    • MacTech Print Archives
    • MacMod
    • MacTutor
    • FrameWorks
    • develop
  • Forums
  • News
    • MacTech News
    • MacTech Blog
    • MacTech Reviews and KoolTools
    • Whitepapers, Screencasts, Videos and Books
    • News Scanner
    • Rumors Scanner
    • Documentation Scanner
    • Submit News or PR
    • MacTech News List
  • Store
  • Apple Expo
    • by Category
    • by Company
    • by Product
  • Job Board
  • Editorial
    • Submit News or PR
    • Writer's Kit
    • Editorial Staff
    • Editorial Calendar
  • Advertising
    • Benefits of MacTech
    • Mechanicals and Submission
    • Dates and Deadlines
    • Submit Apple Expo Entry
  • User
    • Register for Ongoing Raffles
    • Register new user
    • Edit User Settings
    • Logout
  • Contact
    • Customer Service
    • Webmaster Feedback
    • Submit News or PR
    • Suggest an article
  • Connect Tools
    • MacTech Live Podcast
    • RSS Feeds
    • Twitter

Moving from Microsoft Office VBA to AppleScript:
MacTech's Guide to Making the Transition

Introduction  |  Table of Contents

Page Prev and Page Next buttons at bottom of the page.

Would you like a hard copy
or PDF of this Guide?

You can get a hard copy sent to you
AND download a PDF now ($19.95)
, or

... just download a PDF ($9.95).

Either way, you get a complimentary
MacTech Magazine Subscription

courtesy of the
Microsoft Mac Business Unit


 

  Magazine Reg. Price:  $50.00 value  
  Guide Reg. Price:  $40.00 value  
  You Save:  over $80.00!  

April, 2007
Page 1



Converting VBA Macros to AppleScript in Microsoft Office

VBA is going away in Office 2008 for Mac. Learn about the challenges and the benefits.

The Coming Event

Within months, the next version of Microsoft Office for Mac, Office 2008, will be out. (Or perhaps by the time you are reading this, if you are coming to it belatedly, it is already out.) From the information released at the time of writing (March 2007), it‘s clear that there will be good reasons for many to upgrade to the new version, even if you don‘t feel you always have to have the latest of everything.

For one thing, it will be a Universal Binary, running natively (and fast) on Intel, as well as PPC, Macs. It will be able to create files in the new XML file format used by Office 2007 for Windows, so you won‘t be left out of the new features and robustness provided by the new format. (Office 2004 will be able to open and read these files with new converters to be released imminently, but will not be able to save in the new format. You‘ll need Office 2008 for that.)

Microsoft has begun to tell us more about what the new User Interface will look like in Office 2008, previewing the new Elements Gallery at Macworld in January, along with other brand new features in the new Office for Mac. And, there will undoubtedly be much more – perhaps the very feature requests or bug fixes you‘ve been waiting for.

But there is a loss as well: Visual Basic for Applications, the programming language used for macros in Word, Excel and PowerPoint, that functions (with proper precautions taken) cross-platform on both the Mac and in Windows versions of the same Office applications, will be no more. It is being removed from Mac Office 2008.

Why? Why remove something so useful? The reason is that Microsoft needed to re-develop Office 2008 to be a Universal application as Apple has made its move to Intel processors. The VBA compiler was designed for a much earlier PPC Mac, and will not work on Intel Macs. All VBA macro code is compiled at runtime, and needs the compiler. The compiler code (and VB Editor code, and code for VB forms too) could not have been converted without some two years' work, we are told, interrupting development of and most likely seriously delaying the Universal version of Office for Mac.

The Windows version of VBA could not be brought over because it depends on execution of Windows machine assembly. Furthermore, VBA on Windows will also be going away in a few more years (Ed. Note: since the writing of this article, Microsoft has indicated that VBA support will be here for the foreseeable future.) , so doing the conversion would represent a huge investment for a vanishing language. (Many would say there is some hope that some years down the line, whatever replaces VBA – probably some form of .NET technology – can be made thoroughly cross-platform again.) If you are interested, check out the blog post of Erik Schwiebert ("Schwieb"), a Microsoft Macintosh developer, here: <http://www.schwieb.com/blog/2006/08/08/saying-goodbye-to-visual-basic/>. Schwieb gives a number of technical details and other information regarding the decision.

So what is the solution? Well, you could stick with Office 2004, running in Rosetta on Intel Macs, forever and ever. But you‘d thereby miss out on all the new features of Office 2008 (and versions beyond that). Furthermore, macros found in the new "m" file formats of Office 2007 on Windows (.docm, .xlsm, .pptm) will not run nor be converted in Office 2004 (nor 2008, nor any version of Office Mac). And, eventually, Rosetta may disappear in some future Mac OS, as Classic already has done for those on Intel Macs. If that happens, you would have to stick with older, out of date Macs and OS's in order to keep on using Office 2004 and Rosetta. Or, you could investigate alternative automation technologies such as AppleScript – which we will be discussing in this document.

The people who will be affected most by the loss of VBA are those who need cross-platform programmability for Microsoft Office. There may be some options out there for cross platform developers to control Office externally. For example, if cross platform is a necessity, one may want to wait and see whether REALbasic <http://www.realsoftware.com/users/productivity/officeautomation/> will be releasing a version of their Office Automation software that will work with a version of Office that has removed its VBA. But, this and other possible solutions are outside the scope of this document.

Most Mac users will want to convert their macros to AppleScript as there‘s not only rich AppleScript in Office now, with more to come, but also it gives the huge benefit of being able to weave Mac OS X and other non-Microsoft applications into one‘s solutions.

Office 2004 completely revised and introduced enormous new AppleScript implementations for Word, Excel and PowerPoint. (Entourage, which exists only on the Mac, has always had an excellent AppleScript implementation, and has never had VBA support.) AppleScript in Word, Excel and PowerPoint virtually mirrors the VBA Object Model for these applications. That‘s because both languages access ("hook into") a deeper-level framework called OLE Automation.

So virtually everything you could do in VBA, you can do in AppleScript (the few exceptions will be discussed). In addition, AppleScript opens up the whole world of the Mac to you. A lot of other applications on the Mac are also AppleScriptable, so you can set up automated inter-application workflows, sending data from FileMaker Pro to Excel and vice-versa, even PowerPoint to Photoshop, Entourage to Word to InDesign, or whatever. And, you get to take advantage of Apple‘s new Automator technology, which is especially promising as Microsoft has announced it will be supporting Office 2008 with Automator features. The entire Mac world is now your automated oyster.

These articles will introduce you to AppleScript, to its rather individual syntax, with pointers to resources where you can learn more, will review VBA conversion to AppleScript basics applicable Office-wide, then delve a little more deeply into conversions of sample macros in Word, Excel and PowerPoint demonstrating some important elements in action, and end with some examples of integrating the various applications with Entourage.

Why now? If you have a lot of macros, this will take some time, so it‘s best to start converting while your macros are still working in Office 2004. Moreover, don‘t forget that when you upgrade to Office 2008, you‘ll no longer even be able to open or view your macros there! So I recommend keeping Office 2004 around on your computer even after upgrading, for just this purpose. (The two versions should not cause any conflicts. Right now it‘s perfectly possible to keep Office v. X and 2004 – even 2001 on PPC computers with Classic – simultaneously, although it‘s probably not a great idea to have them running at the same time. There are a few tricks needed for using a Script Editor with more than one version of an application, which I will explain below.)

Better yet, get started now in Office 2004, which can display both VBA macros and scripts in Script Editor simultaneously, and be ready when Office 2008 hits the streets to explore whatever new features (and surely some scripting features too) it introduces, with your scripts ready, waiting – and functioning.

For the most part, the following pages will assume you know a bit of VBA – that you‘re the one who either wrote the VBA macros or tinkered with macros designed for Office Windows to adapt them to your Macs. You may or may not yet know some AppleScript as well, but will need to learn now. There are pointers to resources, and tips to how to go about it, below.


About the author

 

Paul Berkowitz is an expert both in AppleScript and on Microsoft Office for Macintosh. He wrote the chapter on AppleScript in Office 2004 for Macintosh: The Missing Manual and was Technical Editor for several books on AppleScript including AppleScript: The Definitive Guide, 1st Edition by Matt Neuburg, AppleScript: The Missing Manual, and others. He is well known for more than 100 AppleScripts he has written and released for Microsoft Entourage, especially those that export and import almost all Entourage data and that sync Entourage to Apple's Address Book and iCal. He is a Microsoft MVP for Macintosh Office, helping out users in the Microsoft newsgroups in his spare time, and wrote the article on 'do Visual Basic' for the Mac Word MVP website. He also has a completely separate life as a classical concert pianist and professor of piano.



< Previous Page Next Page>
 
MacTech Only Search:
Community Search:

 
 
 

 
 
 
 
 
  • SPREAD THE WORD:
  • Slashdot
  • Digg
  • Del.icio.us
  • Reddit
  • Newsvine
  • Generate a short URL for this page:



MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797
MacTech is a registered trademark of Xplain Corporation. Xplain, "The journal of Apple technology", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, Apple Expo, MacTech Central, MacTech Domains, MacNews, MacForge, and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.
All contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon.
 
Nov. 20: Take Control of Syncing Data in Sow Leopard' released
Nov. 19: Cocktail 4.5 (Leopard Edition) released
Nov. 19: macProVideo offers new Cubase tutorials
Nov. 18: S Stardom anounces Safe Capsule, a companion piece for Apple's
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live