Practice makes Perfect !

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

実験008_2022.9-1-3

「このマスター…何ページに使われてるの?を解決」というタイトルで今月の初めにまとめていましたが、その後、Uske_S (id:uske_S) さんの「ScriptUIを少しだけ簡単に利用するモジュール」を使わせていただいたものが完成したのでまとめます。
uske-s.hatenablog.com

今回のまとめ

①ドキュメント内のマスターページを読み込む
②ドロップダウンリストでマスターページ名を表示し選択できるようにする
③指定したマスターが適用されているページを配列に格納
④適用されているページとそれが全部で何ページなのかをアラートで表示する

①ドキュメント内のマスターページを読み込む

これについては前回書いていますが再度載せておきます

var doc = app.activeDocument;
var myMaster = doc.masterSpreads;
var arr=[];//空の配列を用意
for(var i=0; i<myMaster.length; i++){
	arr.push(myMaster[i].name)
	//配列arrにドキュメントに存在するマスターの名前を格納していく
}

②ドロップダウンリストでマスターページ名を表示し選択できるようにする

ScriptUIについては上にリンクを貼ってますのでそちらよりご確認ください。

③指定したマスターが適用されているページを配列に格納

function myFunc(){
	var arr2 = []; //空の配列を用意
	var masName = mySUI[1].selection.text;
	/*mySUI[1]は使わせていただいたモジュールのコントロールタイプのうち
	2番目にドロップダウンリストを使用しているので、
	それの選択した内容にアクセスするためのものです*/
	var count=0 
	//最終的に指定したマスターが適用されているページの総数も表示する
	for(var j=0; j<doc.pages.length; j++){
	try{
		if(doc.pages[j].appliedMaster.name ==masName){
		//jページのマスターが指定したマスターだったとき		
		arr2.push(j+1); //格納していく
		count++;
		}
    	}catch (e) {}
}

④適用されているページとそれが全部で何ページなのかをアラートで表示する

結果として以下のように表示されます。

自分で作ったスクリプトを仕事で実用できることほどうれしいことはないですね。今後もこれスクリプトでできないかな?みたいなのを思いついたらどんどん作っていきたいと思います。