Practice makes Perfect !

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

実験008_2022.9-1

このマスター…何ページに使われてるの?を解決

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ページで使用されています");
}
}


本当はドロップダウンリストで「ドキュメントのマスターをすべて表示してそこから選ぶ」ってやりたかったのですがわからず断念…。
あとは表示されたページの中で先頭のページにジャンプしますか?イエスで飛びます!みたいにしたいですが、もうちょっと調べてからやってみたいと思います。