InDesign CS3自動化作戦 (InDesign CS3 Automation Operation)

複雑な条件判断を行う

■プログラム説明(ソースコード説明)
 サンプルでは変数n1、n2、n3に入っている値を比較してメッセージを表示します。最初にn1<n2<n3の関係にあるかどうか調べます。一度にn1<n2<n3という条件判断ができないので2つに分けて&&を使って書きます。次の条件判断はn1=n2か、n1=n3の関係にあるかどうか調べます。この場合は||を使って書きます。注意しないといけないのは()で条件を判定する順位を指定しておかない場合は演算子の優先順位に従って処理されるため、思わぬ結果になる場合があります。()を使って明確に条件を指定してください。

■ソースコード
n1 = 1;
n2 = 3;
n3 = 5;
if ((n1 < n2) && (n2 < n3))
{
alert("n1<n2<n3です");
}
if ((n1 == n2) || (n1 == n3))
{
alert("n1とn2かn3が同じ値です");
}

■ポイント
 それぞれの条件の意味は以下のようになります。

A && B AかつB
A || B AまたはB
!A Aではない

 例えば

if ((a == 1) && (b == 1)) 処理

は変数aとbの値が1の場合に以後の処理を実行します。

if ((a == 1) || (b == 1)) 処理

は変数aまたはbの値が1の場合に以後の処理を実行します。

if (!(a==11))

 これは変数aが11以外の場合に以後の処理を実行します。

if (!a) 処理

 これは変数aがfalseの場合またはnullの場合に以後の処理を実行します。

 変数が未定義かどうかを調べるにはtypeof()を使って以下のように調べます。

vType = typeof(a);
if (vType == "undefined") alert("aは未定義です");

■実際のスクリプトをダウンロード(sample.jsx.zip)

写真素材 PIXTA