Practice makes Perfect !

ExtendedScript素人です。同じ境遇の方、一緒に脱素人を目指しましょう!

条件判断

条件判断は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番目の色を塗りに設定したテキストフレームを追加しなさい。

左辺と右辺の条件のうち、どちらかが成立した場合に処理するには、&&ではなく、||を使います。