公開日:2017年3月23日
try{
var selObj = app.activeDocument.selection[0];
//インデント指定
var pr=prompt("インデントする長さを入力","");
//全角数字だったら半角に置換
prrep = pr.replace(/[A-Za-z0-9]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
var prnum=Number(prrep);
for (i=0; i < selObj.paragraphs.length; i++)
{
selObj.paragraphs[i].leftIndent=prnum;
} }
catch(e){
alert("処理は中断されました")
}
テキストを選択してスクリプトを実行すると、入力フォームが表示されます。そこに入力した数値分※だけ、選択した段落をインデントします。
※単位はInDesignの環境設定に依存しています。
このスクリプトでやることはほぼInDesignの通常操作です。ただ、
・突発的に、段落スタイルに登録してないインデント幅が発生した場合、「ここだけだしスタイル作るのめんどくさい…」(その後また出てくるかもしれないけど)
・「段落パネルやコントロールパネルまでフォーカスするのめんどくさい…」(入力欄小さいし)
・単位をうっかり重ね打ちしたときの「無効な数値です」がUZAI
そんなときに少しだけ時間が短縮できるかもしれません。
プログラマー社長の「日々発見」| javascript で英数字の 全角⇔半角 変換
/*選択している段落に入力した数値の分だけ突き出しインデント
*/
try{
var selObj = app.activeDocument.selection[0];
//インデント指定
var pr=prompt("インデントする長さを入力","");
//全角数字だったら半角に置換
prrep = pr.replace(/[A-Za-z0-9]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
var prnum=Number(prrep);
var prnummi="-"+prnum;
for (i=0; i < selObj.paragraphs.length; i++){
selObj.paragraphs[i].leftIndent=prnum;
selObj.paragraphs[i].firstLineIndent=prnummi;
}
}
catch(e){
alert("処理は中断されました")
}