var myDocument = app.activeDocument; var dialog = new Window("dialog", "枠線", [100, 100, 480, 245]); dialog.okButton = dialog.add("button", [180, 100, 180+50, 100+25], "実行", { name: "ok" }); dialog.cancelButton = dialog.add("button", [260, 100, 260+50, 100+25], "閉じる", { name: "cancel" }); var width = 0.25; dialog.widthlabel = dialog.add("statictext", [20, 10, 20+130, 10+25], "罫線の幅(pt)"); dialog.width = dialog.add("edittext", [160, 10, 160+35, 10+25], width.toString()); dialog.okButton.onClick = function() { var color = new CMYKColor(); color.black = 100; borderBox(dialog.width.text, color); dialog.close(); } dialog.cancelButton.onClick = function() { dialog.close(); } dialog.show(); /** * 選択された1つ以上のオブジェクトを罫で囲む * @param {Nuber] width 罫線の幅(pt) * @param {CMYKColor} color 色 */ function borderBox(width, color) { var backunit = myDocument.rulerUnits; myDocument.rulerUnits = myDocument.rulerUnits.Points; for (var i = 0; i < myDocument.selection.length; i++) { var obj = myDocument.selection[i]; var unit =obj.geometricBounds; var box = myDocument.pathItems.rectangle(unit[1], unit[0], Math.abs(unit[2] -unit[0]), Math.abs(unit[3] - unit[1])); box.filled = false; box.stroked = true; box.strokeWidth = width; box.strokeColor = color; } myDocument.rulerUnits = backunit; }