とあるDTPオペレーターのInDesignスクリプト備忘録

デザイナー上がりですがいまはDTP命。InDesign用スクリプトの解説などを綴っています。読者登録して戴けると励みになります。

[InDesignスクリプト]特定のレイヤー上のオブジェクトのみ処理対象にしたいの巻

一年前にスクリプトの勉強を始めた頃に、いきなりつまづいた部分を書いてみる。
for使ったりif使ったりしてみるもうまく行かず……答えは至ってシンプルだった。
itemByNameでレイヤーさえ指定してしまえばこっちのもん。
同じ場所でつまづくかもしれない、未来の初心者のために。
※「レイヤー 2」という名前のレイヤーがないとうまく動かないので注意。

var myDoc = app.activeDocument; //アクティブなドキュメントが対象

////////////処理したいレイヤー名を代入。以降変数名でレイヤー指定ができて楽。
var targetLay = myDoc.layers.itemByName ("レイヤー 2"); //ターゲットレイヤーを変えたい場合はここを変える。

for (var i=0; i<targetLay.allPageItems.length; i++) {
     //ここにこんな風に処理を書けば指定したレイヤー上のオブジェクトのみ対象になる。
        targetLay.allPageItems[i].select (SelectionOptions.addTo)//選択でもしてみる
    }