Practice makes Perfect !

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

コレクション、代入、変数

コレクション

オブジェクトを複数まとめて扱うことができるのがコレクションです。InDesignスウォッチやレイヤーなど、複数のオブジェクトに対して一括で処理ができます。
「何番目のレイヤーを非表示にする」とか「何番目のスウォッチを塗に適用する」といった感じです。

Javascriptでは「0」が1番目

app.activeDocument.layers[0];

または

app.activeDocument.layers.item(0);

で、「アクティブドキュメントの一番上のレイヤー」となります。


また「itemByName」を使えばコレクションの中で「○○という名前のもの」という指定もできます。

app.activeDocument.layers.itemByName("背景");

「アクティブドキュメントの"背景"という名前のレイヤー」となります。

代入「=」って何ですか?

「=」は、代入演算子といって、変数に値を代入するために使用されます。JavaScriptでの「=」は数学での等号とは意味合いが違い、右辺にあるデータを左辺に入れるという意味になります。

num = 2;

「変数numに2を入れる」

app.activeDocument.layers[2].name="背景";

「アクティブドキュメントの上から3番目のレイヤー名を『背景』とする」

変数

変数は、数値や文字列、オブジェクトの場所や配列など、様々なデータを入れておく場所(箱のようなもの)です。
変数を使う場合はvarを使います。varのあとの変数名は好きな名前を付けます。

var num = 123;

「変数numに123を入れる」

var num;

初期値をnullにする場合は、このように宣言だけすれば良いです。
nullは「値が存在しない」という意味です。

var num1, num2, num3;

一度varと書けば続けて複数の変数を宣言することも可能です。


先述の

app.activeDocument.layers[2].name="背景";

を以下のように書くこともできます。

var doc = app.activeDocument;
var lay = doc.layers[2];
lay.name ="背景";

varはどこで宣言するかによって、アクセスできる範囲が変わるそうです。
varをつかわないとどこでも使える状態(グローバル変数)になってしまい、不具合の原因になるとか…。私はvarは必ずつけるようにしています。だって、グローバルとかよくわからないんだもん。