書いたコード
#targetengine "numberPstyles"
var doc = app.activeDocument;
var pstyles = doc.allParagraphStyles;
var pstylesLen = pstyles.length;
var pstylesNames = [];
for (var i = pstylesLen - 1; i > 1; i--) {
pstylesNames.push(pstyles[i].name)
}
pstylesNames.reverse();
var secondNum = ["なし", "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "99"]
var myDlg = new Window("palette", "段落スタイルに連番ふる");
for (var i = 0; i < pstylesLen - 2; i++) {
var main = myDlg.add("group {alignChildren: 'left', orientation: 'row'}");
var number1 = main.add("statictext", undefined, "0" + (i + 1));
var number2 = main.add("dropdownlist", undefined, secondNum);
var pstylesList = main.add("dropdownlist", undefined, pstylesNames);
}
var start = myDlg.add("button", undefined, "実行");
myDlg.show();
start.onClick = function () {
for (var i = 0; i < pstylesLen - 2; i++) {
if (myDlg.children[i].children[2].selection != null) {
var originalName = myDlg.children[i].children[2].selection.text;
var firstNum = myDlg.children[i].children[0].text;
var secondNum = myDlg.children[i].children[1].selection.text;
for (j = 0; j < pstylesLen; j++) {
if (pstyles[j].name == originalName) {
if (secondNum == "なし") {
pstyles[j].name = firstNum + "_" + originalName
} else {
pstyles[j].name = firstNum + "-" + secondNum + "_" + originalName
}
}
}
}
}
myDlg.close();
alert("完了しました")
}
メモ
分からなかったこと
- ドロップダウンリストをn個作成
paletteにn個ドロップダウンリストやテキストを追加するという処理、for文回してるけど本当にこれでいいのか。
このやりかたでやるとn番目のドロップダウンを取得したいというときに↓みたいな書き方になってまだるっこしい。
var secondNum = myDlg.children[n].children[1].selection.text;
参考