Adobe InDesign JavaScriptでexit()が使えるって誰も知らない?

2017年04月07日

タイトル修正しました。理由は末尾に。


昨日、Photoshop、Illustrator、InDesignのアップデートが出ましたね。私はまだしてないです。Twitter見てたらいろんな情報が出てて皆さん人柱になるのが好きだなー、でも楽しそう。参加しようかな。
ところで今は「初級者から脱出するためInDesignスクリプト講座」の内容を考えているところです。今書き出したところではざっ6~7時間のボリュームになっています。これを1日で行うのか、1~2時間ずつ何回かに分けてやるのか、1時間弱に小分けにして必要なところだけ受けられるようにするのか考えています。でも独りよがりな結論になりそうなので、アンケートを取ります。アンケートの準備ができたTwitterでも告知しますね。


さて本題。講座の中の1項目として「exit()使ってますか」という題名で、「exitでスクリプトを途中で終了させることで入れ子の数を減らしてコードを読みやすくしよう」というテーマで話をしようと思っています。たとえば

if(app.documents.length==0){
    alert("ドキュメントが開かれていません");
}else{
    if(app.selection.length==0){

みたいif文でスクリプトの実行前提を書く場合、

if(app.documents.length==0){
    alert("ドキュメントが開かれていません");
    exit(); //スクリプト終了
}
if(app.selection.length==0){

とすることで入れ子がなくなって読みやすくなるというテクニックです。これは関数の中からも使えるので、いきなりスクリプトを終了したいときに便利です。

そのため、改めexit()について調べようとしたところ、これがどこにも記載がない。ESTKのオブジェクトモデルビューアにもないし「JavaScript exit」で検索しても「JavaScriptでexitはありません」といっWebの話しか出てこない。古旗さんの『Adobe JavaScriptリファレンス』やサイト(JavaScript関係)にも記述がない。

これは一体どういうことなのだろう。私は以前から(少なくても3年以上前だと思う)使っているというのに。もしかして隠し機能だったの?

ということで、Adobe JavaScriptでexit()が使えるのは知ってるよ、とか、○○に記述があるよ、という人は是非是非教えてください。


2017年4月8日 追記

再確認したら、使用できるのInDesignだけのようです。なので、タイトルAdobeInDesignに修正しました。