公開日:2017年8月4日
SOSを出すほど切迫した作業でもないですが、スニペットに書き出すのは「[書き出し]メニューから書き出す」「選択したオブジェクトをドラッグ&ドロップでInDesignの欄外に出す」など、1つのオブジェクトを扱うにしては地味に面倒です。このめんどくささを少しでも解消することを意図に作成したスクリプトです。
ちなみに何が「SOS」なのかというと、このスクリプトを保存したときに付けた名前が「SelectObjectSnippet」だったからです。略して「SOS」。「ttt」でもいいかも。
//選択したオブジェクトをスニペットに
//スニペットは、開いているInDesignと同階層に保存されます。
//フォルダパス取得
var DocPath = app.activeDocument.filePath;
var count=app.activeDocument.selection.length;
for (var i=0; i < count; i++){
var selobj = app.activeDocument.selection[i];
//オブジェクトのidを取得
var ObjID=selobj.toSource();
var ObjIDrev = ObjID.split("@id=").reverse().join("")//オブジェクトのSourceを区切る
result = ObjIDrev.indexOf("]")//ID番号までの文字数を取得
var Objname=ObjIDrev.substr(0,result)//ID番号を取得
try{
// 書き出しパス
folderRef = new Folder (DocPath+"/"+"Snippet"+Objname+".idms");//保存するフォルダ(ファイルパスを指定)
selobj.exportFile(1936617588,folderRef);
}
catch(e){
alert("オブジェクトが選択されていません");
}
}
alert(count+"個のスニペットが書き出されました");