このマスター…何ページに使われてるの?を解決
InDesign 1ファイルで1,000件以上ある名刺のデータで、更にマスターが10種類とかあったりすると、「あれ、このマスターって何ページで使われてるの?」ってことがよくありまして。それを解決するスクリプトを考えてみました。
下の画面で何番目のマスターが適用されているページを調べたいのかを入力します。
ここでドキュメントのマスターの数より大きい数値を入力すると、「○番目のマスターは存在しません」と表示されます。
番号を入力するとそのマスターが適用されたページをすべて表示してくれます。
適用されているページが1ページもない場合は「指定されたマスターは使用されていません」と表示されます。
かるくおふざけ。
var doc = app.activeDocument; var mt = Window.prompt("何番目のマスターが適用されているページを探しますか?", "1"); var masNum=(mt-1); var arr = []; //空の配列を用意 if(mt){ //OKが押されたときのみ実行 if(mt>app.activeDocument.masterSpreads.length){ //入力された数字がマスターの数より大きかったとき alert(mt+"番目のマスターは存在しません"); exit(); } for(var i=0; i<doc.pages.length; i++){ try{ if(doc.pages[i].appliedMaster ==app.activeDocument.masterSpreads[masNum]){ // i 番目のマスターが指定したマスターだったとき arr.push(i+1); //格納していく } }catch (e) {} } if(arr.length==0){ alert("指定されたマスターは使用されていません"); }else{ alert("指定されたマスターは\r"+arr+"\rページで使用されています"); } }
本当はドロップダウンリストで「ドキュメントのマスターをすべて表示してそこから選ぶ」ってやりたかったのですがわからず断念…。
あとは表示されたページの中で先頭のページにジャンプしますか?イエスで飛びます!みたいにしたいですが、もうちょっと調べてからやってみたいと思います。