InDesignの表を使って表計算を行います(計算は数値計算のみです)。計算にはJavaScriptを使用しているので、四則演算以外にもJavaScriptのMath関数も使えます。
計算式設定と計算実行のプログラムを分けています。これによって数値を変更した時の負担を軽くしています。
また、表中の数値の表示方法を統一することもできます。
InDesign CS2のみで動作します。
スクリプトはJavaScriptで記述しているのでMacintosh版でも使用できます。
各設定値はセルのスクリプトラベルに書き込まれています。そのため、セルのスクリプトラベルに書き込むスクリプトとは併用できません。
また、不用意にスクリプトラベルを編集すると正しく動作しなくなります。
計算式の設定時に、表の中に結合されたセルが存在するとエラーになります。計算実行時にはこの制限はありません。
表示されるダイアログウィンドウの中で体裁が揃っていない部分がありますが、これはInDesignの仕様です。
扱える表の最大サイズは、横25列です。縦(行)方向の制限は設けていません。しかし、あまり大きいと、表示されるダイアログウィンドウが、画面の表示領域を超えてしまい、入力できません。これは仕様です。
実際の計算はInDesign JavaScriptに委ねています。数値であるべきセルに数値化できない文字がある場合などの基本的なチェックは行っていますが、0での除算、桁あふれなどはチェックしていません(下の「計算エラーについて」を参照)。
計算式に全角文字を使用していた場合、半角文字に変換できる場合は半角へ変換、変換できない文字は削除するようにしています。
このプログラムでの計算結果は保証しません。たとえ計算結果が正しくなく、損害を被ったとしても作者は一切の責任をとりません。このことに同意した上でご使用ください。
ファイルはzip形式で圧縮してあります。ダウンロードはこちらからお願いします。
ダウンロードした「idjscalc.zip」ファイルを解凍すると「calc1set.jsx」「calc2exe.jsx」の2つのファイルが作られます。これらのファイルをScriptフォルダに入れてください。
計算式を設定したい表を1つ選択した状態で、スクリプトパレットからcalc1set.jsxを実行します。
計算式の設定は4つのダイアログウィンドウを使用して行われます。
詳細は別ページになります。こちらをご覧ください。
計算を実行したい表を1つ選択した状態で、スクリプトパレットからcalc2exe.jsxを実行します。
数値を変えて再計算を行いたい場合は、calc2exe.jsxのみを実行します。
なんらかの理由で計算が続行できない場合、次のようなメッセージを表示します。
この場合、計算式が正しいか確認してください。
(循環参照とは次のようなものです)
(セルA1の設定)B1 * 2 + C1 (セルB1の設定)A1 + A2
この場合セルA1とセルB1がお互いを参照しているため、答えが出せない
また、参照しているセルが計算式であるという連鎖が10以上の場合も打ち切られます。
(セルA2の設定)A1 + 1 (セルA3の設定)A2 + 1 (セルA4の設定)A3 + 1
(セルA5の設定)A4 + 1 (セルA6の設定)A5 + 1 (セルA7の設定)A6 + 1
(セルA8の設定)A7 + 1 (セルA9の設定)A8 + 1 (セルA10の設定)A9 + 1
(セルA11の設定)A10 + 1 (セルA12の設定)A11 + 1 この場合はエラーになる
各設定値はセルのラベルに書き込まれています。この値はスクリプトラベルパレットから参照・編集できます。
(ちなみに、セルがラベルを持つことができるようになったのはCS2からです。従ってこれより古いバージョンでは動作させることができません。なお、各設定値をテキストに書き出すなり、非表示のレイヤーを作ってそこに書き込むなどの工夫をすれば、他のバージョンでも同様のことができるようになるはずです)
ラベルには#を区切り文字として4つの設定値が書き込まれています。
例) C4#計算式#-0,000.00#Math.round ( b2 / c3 )
設定値1 | セルの番地 |
設定値2 | 文字列または数値または計算式 |
設定値3 | 値の書式。変更しない場合および文字列は------ |
設定値4 | 計算式。数値またはセル番地と、 演算子との間には半角スペースが入ります。 |
ある程度慣れてくればこの設定値を直接書き込んで計算させることもできます。