選択したオブジェクトを個別にルートレイヤーに分けます。いられるのデフォルト機能である[サブレイヤーに分配]とは処理結果が異なります。個人的に[サブレイヤーに分配]は勘違いしやすいので使って居ません。
Illustratorのサブレイヤーに分配が変? 2026/07/13
// 選択グループ内のパーツを前後関係を維持してレイヤー分割
if (app.documents.length == 0) {
alert("ドキュメントを開いてください");
exit();
}
var doc = app.activeDocument;
if (doc.selection.length != 1) {
alert("グループを1つ選択してください");
exit();
}
var target = doc.selection[0];
if (target.typename != "GroupItem") {
alert("グループを選択してください");
exit();
}
// pageItemsを配列化
var items = [];
for (var i = 0; i < target.pageItems.length; i++) {
items.push(target.pageItems[i]);
}
// IllustratorのpageItemsは前面→背面なので逆順で処理
for (var j = items.length - 1; j >= 0; j--) {
var item = items[j];
var layer = doc.layers.add();
var num = ("000" + (items.length - j)).slice(-3);
layer.name = "Layer_" + num;
item.move(layer, ElementPlacement.PLACEATBEGINNING);
}
alert(items.length + "個のパーツをレイヤー分割しました");
オブジェクトを選択し実行すると・・・
このレイヤー状態は・・・
このパレットが表示されたら完了です。
こんな感じです。
※Illustratorのアップデートで不具合が出る場合があります。気がついた時点でデバッグするように心がけていますが、すぐに対応できないのでご容赦ください。

































