Excel 2008は何年も私を悩ませてきました。アプリを起動するたびに、あのメニュー項目が現れ、私をからかい、クリックするように誘惑するのです。「さあ、クリックしてみなさい」と囁かれます。「きっとクリックしたいんでしょう。今回はうまくいくはずです。本当に、うまくいくんです。」
しかし、Excel 2008で「ツール」→「マクロ」を選択すると( )、マクロメニューが以前のExcel 2004の単なる形骸に過ぎないことを改めて思い知らされるばかりでした。Visual Basic for Applications(VBA)マクロを使い、それに頼っていた私たちを困らせるためだけに存在しているようにしか思えませんでした。確かに、このメニューにはExcel 4.0のマクロ言語で書かれた非常に古いマクロが表示されるかもしれません。しかし、VBAで書かれたマクロは一切表示されません。そして、表示しているシートにVBAマクロが含まれていても、実行されません。

「でも、AppleScriptはどうなの?」と疑問に思うかもしれません。確かに、Excel 2008はOS Xの組み込みスクリプト言語をサポートしていました。しかし、AppleScriptはVBAの機能を置き換えることはできませんでした。例えば、Excelのメニュー構造を変更したり、データ入力フォームを管理したり、スプレッドシートの値をリアルタイムで変更したりすることはできません。これらはすべてVBAなら簡単に実行できます。
現在、Excel 2011 ( ) のリリースにより 、Microsoft は Mac 版 Excel に VBA サポートを復活させており、[ツール] -> [マクロ] メニュー項目が再び便利になっています。
古いものと新しいもの
これまでのテストでは、Excel 2011は古いマクロも問題なく実行できました。1992年に作成したマクロを多用したワークシートをExcel 2011で開いてみたところ、完璧に動作しました。また、Excel 2004のワークシートをいくつか開いてみましたが、いずれもマクロを多かれ少なかれ使用していましたが、期待通りに動作しました。
これまでに記録した新しいマクロはすべて期待通りに動作しました。Visual Basicエディターの作業領域はExcel 2004とほぼ同じですが、いくつか便利な機能が追加されています。例えば、「編集」メニューには、プロパティ、メソッド、定数、パラメータを表示するための新しいオプションが追加されています。「デバッグ」メニューでは、ウォッチ関数を作成できます。ウォッチ関数を使用すると、式を監視し、値が変化したり条件が満たされたりしたときにマクロを停止できます。
MicrosoftのExcel 2011チームは、Mac版マクロをWindows版Excel用に作成されたマクロと互換性を持たせる作業も行いました。Microsoftによると、Mac版Excel 2011はWindows Office VBA環境を完全に移植しており、OS X版とWindows版のVBAはほとんどの場合、互いにミラーリングされています。これには、Office 2011のコアVBAエンジンをVBAバージョン6.5にアップデートし、Mac版Excel 2004では無効化されていたいくつかのコマンド(FormatCurrency、FormatNumber、Replace)を追加することが含まれます。Windows版とOS X版のオブジェクトモデルに違いがあった場合、MicrosoftはMac版をOffice 2010に適合させたと述べています(MacworldはWindows版との互換性をまだ完全にテストできていません)。
全体的に、Excel 2011 のマクロ機能には非常に満足しています。「ツール」->「マクロ」が再び便利な機能を提供するようになったので、ようやく Excel 2004 を廃止できます。