4月 26, 2008

Excel書類にAppleScript/Automator Workflowを埋め込んで実行

office_package.jpg今年のはじめに発売されたOffice:mac 2008では、天と地がひっくり返るような変更が行われました。作業の自動化に使われていたVBAが廃止され、自動化についてはAppleSctriptで行うことになりました。すでに、1年以上前に発表され、MSの開発者Blog上でも発表されていた事実なのですが、日本国内ではその事実を知る人は少なかったようです。

この出来事については発表とほぼ同時にキャッチしていたため、いろいろと情報収集など準備を進めてきました。

 

ただ、普通にVBAからAppleScriptないしAutomatorのWorkflowに置き換える作業は……できなくはないのですが、あくまでも「作業」の域を超えるものではありません。また、置き換えてみたのはいいけれど、VBAよりも運用するのが面倒なポイントを幾つも抱えており、それを解決する必要があると思われました。

 

xlas2.jpg

 

そこで開発したのが、「XLAS」(仮称)というアプリケーション。まだ、正式な名前ではないので「(仮称)」付きだったり、読み方が「えくらす」「えくさらす」と一定していなかったりしますが、モノは確実に存在しています。

 

 

xlas_scrn1.jpg

 

このXLASは、Excel書類の中にAppleScriptやAutomator Workflowを埋め込んでおき、ExcelのScriptメニューから呼び出して実行できるようにするアプリケーションです。埋め込み用のアプリケーション1本と、埋め込まれたScript/Workflowを実行するメニュー用AppleScriptが1本のペアで運用します。一般ユーザーには実行メニュー用のAppleScriptのみ配布すれば、あとはScript/Workflowを埋め込んだExcel書類を渡すだけです。

 

xlas_scrn2.jpg 

 

当初は、Webサーバー上にScriptを暗号化して置いておき、それを読み込んで実行するという方向で検討・試作を行っていました。ScriptのWebホスティングを行う、というアイデアです。ただ、このやり方だと、Excel書類とScriptのひもづけが「切れて」うまく動かなくなるケースが多かったのです。しかも、インターネットへの接続が行えない環境下ではまったく実行できません。これでは困ります。

 

「Excel書類の中に埋め込む」というアイデアは、実はかなり初期の段階で放棄したものでした。理由はいろいろありますが……Webサーバー上に置いておいたほうが、一括バージョンアップやExcel書類が漏洩したときの対策を行いやすいというのが最大の理由でした。

 

その後、Webホスティング案が行き詰まった末に「Excel書類の中に埋め込む」案について再検討したところ……それまで抱えていたいくつもの問題を解決できそうでした。

 

従来のExcel VBAについては、ウィルスの温床になるなどマイナスのイメージが色濃く漂うものでしたが、そもそもVBAそのものに罪はありませんし、Excelの書類に埋め込むという機能が悪いわけでもありません。

 

誰にでも実行できるとか、特定の(悪意のある)スクリプトの埋め込みを禁止できないといった問題点が解決されず、放置されていた状況そのものがVBAを苦境に追いやった、と考えることができます。さらに、VBAがIntel版のOfficeに移植されなかったことについて、MSの悪意によるものと評する向きもありますが、事実はかなり異なるようです。

 

かくして、さまざまなセキュリティに対する配慮を行いつつ、Excel書類にAppleScript/Automator Workflowを埋め込む「XLAS」が誕生。今後、このソフトがどのように育っていくのか、作った本人も興味深く見守っていきたいと思います。(N)

Leave a comment