トップページ » InDesign » 【InDesign】ガイドを削除/削除する際のfor文
公開日:2017年12月6日 最終更新日:2019年6月8日
現在のドキュメントからガイドを削除するスクリプトです。
var guObj=app.activeDocument.guides;
var gucount=guObj.length;
for(var i=gucount-1; i > -1; i--){//ガイドを減らしていくので後ろから繰り返し
guObj[i].remove();
}
何かを削除するスクリプトを初めて(じゃないような気もするけど)書いたんですが、いつものfor文(i++するやつ。インクリメント)ではちゃんと動きません。処理対象が1つずつ減っていくため、「該当オブジェクトの個数分繰り返す」が成り立たなくなるためです。
これをなんとかするには「対照オブジェクトの個数を取得して、0になるまで繰り返す」のように逆順で処理します(デクリメント)。
3行目のvar i=gucount-1;
で配列の数を定義します。オブジェクト数から-1しているのはJavaScriptでは配列が0から始まるためで、個数をそのままiに代入すると存在しないものを参照してしまいエラーになります。
続いて、i>-1
で「iが-1より大きくなるまで(つまり0になるまで)」、i--
で繰り返します。
例えば、ガイドがドキュメントに10本引かれている場合だと、guObj.length
は10、ガイドの配列は[0]~[9]、ガイド[9]から削除していき、ガイド[0]を削除するまで繰り返す、という順番での処理になります。
(ググったらJavaScriptでは結構初歩的なことだったというこの…)
【Illustrator】塗りブラシツールなどのブラシサイズを素早く変更するショートカット 22832 views
【InDesign/Illustrator/グレースケール画像】なぜ色がつかない? 10604 views
【InDesign】オブジェクトの位置をササッと入れ替える操作 9338 views
【InDesign】ベースライングリッド/カスタムベースライングリッドを設定 8770 views
【InDesign】InDesignタグを使うときの覚え書き 7671 views
【InDesign/Illustrator】配置したグレースケールpsdファイルも着色できるが、いくつか注意が必要 7298 views
【Illustrator/InDesign】それぞれの[パスファインダー]パネルでできること、できないこと 7286 views
【InDesign/CEP】InDesignの画像書き出しは結構優秀。画像/スニペット書き出しエクステンション「assetterEX」 7117 views
InDesign、Illustrator、Acrobatそれぞれの分版プレビュー方法 7044 views
【Illustrator/Acrobat】マルチアートボードから、まとめてpng/jpgで保存する方法あれこれ 6730 views
【InDesign】「拡大/縮小」に関わるショートカット 6638 views
【Illustrator】通常のレイヤーとサブレイヤーでは、オブジェクトのロック/表示の挙動が異なる 6284 views
【Illustrator】[段組設定]を使った長方形の分割→結合→再分割 6202 views
【InDesign】[検索と置換]で文字をアンカー付きオブジェクトに一括置換 6105 views
ツイート