それでは簡単なプログラムでInDesign CS2を制御してみましょう。まず、Windowsであればメモ帳(NOTEPAD.EXE)、MacOS Xならばテキストエディットを起動します。テキストエディットの場合には最初にファイルメニューから環境設定を選択し、標準テキストを選択しておく必要があります。
それでは準備ができたら以下のように入力してください。
alert(123);
入力が終わったら保存します。この時に重要なのが拡張子です。ファイル名の最後に付くのが拡張子です。.jsまたは.jsxを付けて保存する必要があります。ここでは
sample1.jsx
として保存します。拡張子が.jsまたは.jsxになっていないとInDesign CS2から選択し実行することができません。CS2ではJavaScriptのファイルの拡張子は.jsxに統一されているので.jsxにするのが安全です。ただし、InDesign CSでも動作させたい場合には.jsにする必要があります。
保存したらInDesign CS2の入っているフォルダを開いてください。Presetsというフォルダがあります(場合によってはプリセットになっているかもしれません)。Presetsフォルダを開きます。Scriptsフォルダ(場合によってはスクリプトになっているかもしれません)に、今作成したスクリプトのファイルを入れます。このようにしないとInDesign CS2でスクリプトを呼び出して利用することができません。また、InDesign CS2を起動している場合でも追加したり入れ替え、削除ができます。ただし、この場合には一度スクリプトパレットを再表示しないと内容が書き変わらないことがあります。
これで準備ができたのでInDesign CS2を起動しましょう。起動したらスクリプトパレットに表示されているsample1.jsxをダブルクリックしましょう。すると画面上に警告ダイアログが表示され、そこに123と数字が表示されます。先ほど作成したプログラムのalert(123);の123の数字を変えて再度実行してみてください。設定した数字が表示されるはずです。
これでInDesign CS2からJavaScriptを実行させる最初の段階を越えました。あとは、プログラムを作成して試行錯誤していく事になります。
もう少し先に進みましょう。さきほどは数字を表示させましたが、文字列も表示させることができます。以下のように入力し、先ほどと同様に保存しInDesign CS2から実行してみてください。
alert("InDesign CS2");
警告ダイアログにInDesign CS2という文字が表示されたはずです。文字列を表示する場合には"と"で表示させたい文字を囲みます。日本語も表示させることができます。
alert("日本語です");
日本語を表示させる場合には文字コードが問題になる場合があります。InDesign CSではスクリプトファイルの文字コードはUnicode (UCS-2)にする必要がありましたが、InDesign CS2ではUnicode, UTF8, SHIFT JISのいずれでも動作します(EUC, JISコードはサポートしていません)。
それでは次に簡単な足し算を行ってみましょう。JavaScriptでは多くの演算記号がありますが、まずは足し算を行わせます。以下のプログラムを入力し実行させてください。
alert(12+34);
警告ダイアログには46と表示されるはずです。これは12と34を足した結果が表示されています。JavaScriptでは値を足したい場合には+記号を使います。これは小学校で勉強した四則演算の記号と全く同じです。整数値だけでなく小数値も計算できますし、複数の足し算もできます。
alert(2.5+4+1.5);
ただし、小数値の計算を行わせると若干の演算誤差が発生します。どうしても期待通りの数値にならない場合は演算誤差が発生している可能性があります。
足し算以外に引き算や、掛け算、割り算も計算できます。それぞれ以下のように対応しています。
処理 算数の計算記号 JavaScriptでの計算記号
足し算 + +
引き算 - -
掛け算 × *
割り算 ÷ /
例えば2×4は
alert(2*4);
のように書きます。12/6であれば
alert(12/6);
となります。足し算や掛け算が混ざっている場合には掛け算、割り算が優先され、その後に足し算、引き算が行われます。これは小学校で習った算数と全く同じです。
場合によっては計算の順序を変えたい場合があります。このような場合は()を使って先に計算させたいところを囲みます。例えば
alert((1+2)*3);
とすると1+2が先に計算されてから3との掛け算が行われます(結果は9)。
計算ばかりしていては面白くないでしょうから、次はInDesign CS2で新規にドキュメントを開くプログラムを作成してみましょう。