実際に仕事で作成したAppleScriptのうち、アドビのCSアプリケーションに関するものをデモ。CSアプリといっても、InDesignのScript対応度が群を抜いているため、InDesignに関するデモがメインです。
日常的には最新版のMac OS X 10.6(Snow Leopard)を使っていたとしても、Adobe CSアプリをコントロールする仕事はほとんどMac OS X 10.4.11がターゲット。AppleのiWork 09もいまだにMac OS X 10.4.11以上を、Adobe CS4でもMac OS X 10.4をサポートしており、10.4.11が第2の「Mac OS 9.2.2」化しています。実際、当日に会場で手を挙げていただいたところ、Mac OS X 10.4、10.5、10.6でほぼ3割ずつといったところ。10.4環境がまだ相当数残っていることが実感されました。
AdobeのCSアプリはとにかく機能が多いので、大掛かりなプログラムを作るには、プログラム作成を補助するような道具や、一度作ったプログラムを解析するのに便利な道具を併用することになります。
たとえば、ドキュメント上で選択中のオブジェクトの情報を取り出したとしても、そこから必要な情報がどれであるかを確認するためには、設定を変更する「前」と「後」の情報の差分を調べることが必要です。そこで、必要に迫られてオブジェクトの情報(プロパティ)の差分検出を行うdiffツール「ListDiff」を作成し、便利に使っています。一般的なUNIX系のdiffツールはソースコード(テキストファイル)の差分検出に特化したツールで、行単位での差分評価を行うものです。使いやすさで定評があるのが、Mac OS XのDevelopper Toolsに標準搭載されている「FileMerge」。このListDiffはAppleScriptのプロパティ出力に特化して差分を検出します。これなしでは、とても不便でプログラムなんて作れません!(一般的な文章の差分検出には、Jedit Xの差分検出プラグイン「Jdiff X」が便利でしょう)
また、コンテクストメニューから基礎的なAppleScriptの構文を自動入力できるようになっていたり(コンテクストメニュー・アシスタント)、開発したプログラムはすべて再利用しやすいようモジュール化してあったりします(→ AS Hole)。
さらに、AppleScriptのプログラム自体を解析して、モジュール間の依存関係をマインドマップのグラフとして描画するAppleScriptもデモ。大昔に作った巨大なプログラムも、あっという間に丸裸。たとえ内容を忘れても、すぐに変更や改良に着手できます。
InDesignのコントロールについては、カタログ本などの「コマ」をXMLから大量作成するプログラムをデモ。InDesignが途中でクラッシュしても大丈夫な作り(クラッシュ・ディテクション機構採用)になっており、しかも進捗状況をtwitter経由で報告するなど、夜間に放置運転が可能。そのうえ、仕事が終わったら自動でスリープする「エコ機能」を搭載。その場で実際にカタログ・コンテンツを作成してみたら、目にも止まらぬ早技には会場からため息も。
もうひとつのInDesignデモは、大量に作成した「コマ」部品の規格が合っているかどうかを自動でチェックする「印度チェッカー」。しかも、チェック前にコマの見本から書式を自動記憶するようになっており、パラメータの変更はInDesign上でコマ見本の書類を操作するだけでOK。こんなにディープな用途のソフトなのに、「環境チェック」「学習」「チェック」の3つのボタンだけで操作できる簡単オペレーションが自慢です。
……実戦に即し、技術的・業務的に突っ込んだ内容のデモで、すべての方に分っていただけたかどうかは疑問が残りますが、デモ実施時に行ったアンケートの結果を見ると、半分ぐらいの方には満足していただけたようです。今後は、今回のようなハイブロウな内容のほか、基礎的な、日常的にエンジョイできる程度のかる〜いScript講座みたいなものがあってもよいだろうという今日このごろです。あっ、Automatorでもいいですね。
|