条件判断はif( )を使います。
( )の中に条件文を書いて、条件文の結果が真(true)の場合に実行します。
if文を使うことで、「もし(true)ならこの処理」「そうでなければ(false)この処理」というように条件によって処理を分けることができます。
書式は次のようになります。
if ( 条件文 ) 条件文が真の場合に実行する命令
if (app.activeDocument.textFrames.length < 1){ alert("テキストフレームがありません"); }
アクティブドキュメントにテキストフレームがひとつもない場合に「テキストフレームがありません」と表示します。
条件を満たさない場合も併せて書くときにはelseを使います。
if (app.activeDocument.textFrames.length < 1){ alert("テキストフレームがありません"); }else{ alert("テキストフレームがあります"); }
else ifを使うと、2つ目以降の条件文を追加できます。else ifはいくつでも使えます。
var doc = app.activeDocument; var txtObj = doc.textFrames; if (txtObj.length < 1){ alert("テキストフレームがありません"); }else if (txtObj.length > 1){ alert("テキストフレームは1つにしてください"); }else{ txtObj[0].fillColor = doc.swatches.itemByName("Black"); }
アクティブドキュメントにテキストフレームがひとつもない場合に「テキストフレームがありません」と表示します。そうでない場合で、アクティブドキュメントにテキストフレームが2つ以上ある場合は「テキストフレームは1つにしてください」と表示します。
どちらにも当てはまらない場合、つまり、アクティブドキュメントにテキストフレームが1つの場合のみ、そのテキストフレームを黒く塗りつぶします。
if文を入れ子にすることもできます。
var doc = app.activeDocument; var txtObj = doc.textFrames; if (txtObj.length < 1){ alert("テキストフレームがありません"); }else if (txtObj.length > 1){ alert("テキストフレームは1つにしてください"); }else{ if (confirm("テキストフレームを削除しますか?")){ txtObj[0].remove(); } }
confirm( )はメッセージと[Yes] [No]のボタンのあるダイア ログを表示します。Yesでtrueを、Noでfalseを返します。
テキストフレームが1つの場合、それを削除するか尋ね、Yesなら削除します。
複合条件を指定することもできます。左辺と右辺の条件を満たした場合のみ処理するには、&&を使います。
var doc = app.activeDocument; var txtObj = doc.textFrames; if ((txtObj.length == 1)&&(txtObj[0].fillColor == doc.swatches.itemByName("Black"))){ txtObj.add({ geometricBounds:[10, 10, 35, 110], fillColor: doc.swatches[6] }); }
アクティブドキュメントにテキストフレームが1つのみで、かつ、塗りが黒の場合、Y:10, X:10の位置に H25, W100のスウォッチパネルの7番目の色を塗りに設定したテキストフレームを追加しなさい。
左辺と右辺の条件のうち、どちらかが成立した場合に処理するには、&&ではなく、||を使います。