Photoshopのデータ整理やLive2Dの素材分けに役立つ、レイヤー名から特定の文字を除去する方法を解説します。
複数レイヤーの名前を一括で変更できるため、作業効率化に役立ちます。
2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで記事のコードを実行し、レイヤー名がどう変わるかを確かめました。
結果は「Photoshop 2026で実行した結果」にまとめています。
スクリプトを使用するメリット
- 選択したレイヤーの名前を一括変更できる
- 不要な拡張子(.png など)を一括で削除できる
レイヤーから特定の文字を除去する方法
Photoshopの関連する操作手順は、まとめ記事でも確認できます。

- このコードは指定文字だけでなく、最初に現れた指定文字から後ろをすべて切り落とします。実行前にPSDを複製し、対象の名前を確認してください。背景レイヤーを含む選択は今回未確認のため、背景は選択から外して試します。そのうえで下記のコードをテキストエディタに貼り付けて保存します。
RemoveLayerText.jsx
//@target photoshop;
app.bringToFront();
if (documents.length) {
var deleteStr = ".png"
var selLayers = getSelectedLayersIdx();
for (var a in selLayers) {
selectLayerByIndex(selLayers[a]);
activeDocument.activeLayer.name = activeDocument.activeLayer.name.split(deleteStr)[0];
}
}
function selectLayerByIndex(index, add) {
var ref = new ActionReference();
ref.putIndex(charIDToTypeID("Lyr "), index);
var desc = new ActionDescriptor();
desc.putReference(charIDToTypeID("null"), ref);
if (add) desc.putEnumerated(stringIDToTypeID("selectionModifier"), stringIDToTypeID("selectionModifierType"), stringIDToTypeID("addToSelection"));
desc.putBoolean(charIDToTypeID("MkVs"), false);
try {
executeAction(charIDToTypeID("slct"), desc, DialogModes.NO);
} catch (e) {}
};
function getSelectedLayersIdx() {
var selectedLayers = new Array;
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var desc = executeActionGet(ref);
if (desc.hasKey(stringIDToTypeID('targetLayers'))) {
desc = desc.getList(stringIDToTypeID('targetLayers'));
var c = desc.count
var selectedLayers = new Array();
for (var i = 0; i < c; i++) {
try {
activeDocument.backgroundLayer;
selectedLayers.push(desc.getReference(i).getIndex());
} catch (e) {
selectedLayers.push(desc.getReference(i).getIndex() + 1);
}
}
} else {
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("ItmI"));
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
try {
activeDocument.backgroundLayer;
selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")) - 1);
} catch (e) {
selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")));
}
var vis = app.activeDocument.activeLayer.visible;
if (vis == true) app.activeDocument.activeLayer.visible = false;
var desc9 = new ActionDescriptor();
var list9 = new ActionList();
var ref9 = new ActionReference();
ref9.putEnumerated(charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
list9.putReference(ref9);
desc9.putList(charIDToTypeID('null'), list9);
executeAction(charIDToTypeID('Shw '), desc9, DialogModes.NO);
if (app.activeDocument.activeLayer.visible == false) selectedLayers.shift();
app.activeDocument.activeLayer.visible = vis;
}
return selectedLayers;
};消す文字は、コードの4行目 var deleteStr = ".png" で決まっています。
ほかの文字を消したいときは、この行の .png の部分を書き換えて保存します。引用符の中を空にしないでください。空文字でsplitすると文字単位に分割されるため、掲載コードの[0]では名前の先頭だけを残す処理になります。Photoshopで空指定した場合の動作は実機では未確認です。
大文字と小文字は区別されるので、このままでは .PNG は消えません。
RemoveLayerText.jsxを 以下のフォルダに保存。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\上のパスは古い版の表記です。
Photoshop 2026(Windows)では、C:\Program Files\Adobe\Adobe Photoshop 2026\Presets\Scripts にこのフォルダーがあります。
2026年10月の確認では、このフォルダーへの配置と再起動は試していません。
- Photoshopを再起動。
STEP.2 スクリプトを実行
- [ファイル] → [スクリプト] → [RemoveLayerText] を選択。
- 名前の最初の指定文字と、それより後ろの文字列が削除されます。
実行する前に、名前を変えたいレイヤーをレイヤーパネルで選んでおきます。
Scriptsフォルダーに置かなくても、[ファイル]→[スクリプト]→[参照…]で保存したファイルを選べば実行できました。

確認した実行では通知は出ず、対象の名前が変わりました。元の複数選択も失われるため、続けて作業するときは対象を選び直してください。また、コードはレイヤー選択時のエラーを通知せず、その後の改名へ進みます。選択に失敗した場合は直前のアクティブレイヤーを改名する可能性があるため、対象外の名前も元PSDと比較してください。この例外時の動作は実機では確かめていません。
さらに便利に使う方法(ショートカット設定)
- [編集] → [キーボードショートカット] を開く。
- 対象を[アプリケーションメニュー]にし、[ファイル]内の[RemoveLayerText]を探す。先にScriptsフォルダーへ配置して再起動し、通常のメニューに表示されることを確認する。
- ショートカット欄にキーを入力し、既存の割り当てと競合しないか確認する。競合先の操作も使う場合は別のキーを選ぶ。
- 変更したショートカットセットを保存し、複製したPSDで実行して改名前後の名前を確認します。
Photoshop 2026で実行した結果
2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで、上のコードを書き換えずにRemoveLayerText.jsxとして保存し、[ファイル]→[スクリプト]→[参照…]から2回実行しました。
練習用のファイルと、レイヤーを複数選んだ状態は別のスクリプトで用意したので、その部分は確認に含めていません。
レイヤー名・選択・ヒストリーは、実行の前後にスクリプトで読み取って比べました。
「.png」から後ろの文字がすべて消える

背景レイヤーのある文書で、背景と「keep.png」以外の7つ(グループとその中のレイヤーを含む)を選んで実行しました。
「photo.png」は「photo」、「mouth.png」は「mouth」になり、グループの「parts.png」も「parts」になりました。
「icon.png のコピー」は「icon」になり、「.png」の後ろにあった「のコピー」も一緒に消えました。
「face.png.png」は「face」になりました。
このコードは、名前を「.png」で区切った最初の部分だけを残すので、「.png」より後ろの文字はすべて消えます。
「.png」を含まない「hair_front」と、大文字の「eye.PNG」は変わりませんでした。
選んでいない「keep.png」も変わりません。
実行後は、選んでいたうちの一番上のレイヤーだけが選ばれた状態になる
実行後は、選んでいたレイヤーのうちパネルで一番上にあったもの(この例ではグループの「parts」)だけが選ばれた状態になりました。
続けて同じレイヤーに別の操作をするときは、選び直してください。
ヒストリーには、名前が変わったレイヤーの数だけ「名前の変更」が積まれました(この例では5つ)。
名前が変わらなかったレイヤーの分は増えませんでした。
1回の実行がヒストリーの5つ分になるので、元に戻すときはその数だけさかのぼります。
背景レイヤーが無い文書でも、一番下のレイヤーまで変わる

背景レイヤーが無い文書で、4つのレイヤーをすべて選んで実行しました。
一番下の「body.png」も「body」になり、「arm.png」は「arm」になりました。
名前が「.png」だけのレイヤーは、名前が変わらず「.png」のままでした。
このときもエラーの表示は出ませんでした。
確かめていないこと
Scriptsフォルダーへの配置と再起動、メニューに出るスクリプト名、ショートカットの割り当て、deleteStr を書き換えた場合、レイヤーを1つだけ選んだ場合、Shiftキー・Ctrlキーのクリックで選んだ状態からの実行、Mac版と他の版は確かめていません。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
レイヤーを操作するスクリプトは、ほかにもあります。




まとめ
- 選択したレイヤー名の、最初の指定文字以降を削除できる
- Live2DやPhotoshopでのデータ整理を効率化できる
- ショートカットを設定すれば、さらに素早く作業できる
Photoshopでのレイヤー管理を効率化するために、本スクリプトの活用をお試しください。
よくある質問:レイヤー名から特定の文字を除去する
このスクリプトでは何ができますか?
Photoshopで、選択したレイヤー名を、最初に現れた指定文字の直前までに切り詰めます。指定文字より後ろの文字列もまとめて削除します。データ整理やLive2Dの素材分けに役立ちます。
どんなメリットがありますか?
選択したレイヤーの名前を一括変更できます。不要な拡張子(.png など)を一括で削除できるので、複数レイヤーの名前を手作業で直す手間を省けます。
どのレイヤーが対象になりますか?
選択したレイヤーが対象です。実行すると、名前の最初の指定文字と、それより後ろの文字列が削除されます。除去する文字の指定方法は、記事に掲載しているコードで確認してください。
消す文字は、コードの var deleteStr = ".png" の行で決まっています。
2026年10月19日の確認では、グループとグループの中のレイヤーも、選んでいれば名前が変わりました。
「.png」より後ろの文字もすべて消えるので、「icon.png のコピー」は「icon」になります。
スクリプトはどのように導入しますか?
記事のコードをテキストエディタに貼り付けてRemoveLayerText.jsxとして保存し、記事で案内しているフォルダに保存します。保存後にPhotoshopを再起動してください。
どうやって実行しますか?
[ファイル] → [スクリプト] → [RemoveLayerText] を選択します。名前の最初の指定文字と、それより後ろの文字列が削除されます。
2026年10月19日には、[ファイル]→[スクリプト]→[参照…]から選んで実行できることを確かめました。
Scriptsフォルダーへの配置と再起動は試していません。
ショートカットキーで実行できますか?
Scriptsフォルダーへの配置と再起動後、[編集]→[キーボードショートカット]で対象を[アプリケーションメニュー]にし、[ファイル]内の[RemoveLayerText]へキーを割り当てます。競合を確認してセットを保存してください。[参照]で一度実行するだけではメニューに登録されません。
2026年10月の確認では、ショートカットの割り当ては試していません。
スクリプトのコードはどこで確認できますか?
記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
実行した後、レイヤーの選択はどうなりますか?
元の複数選択は復元されず、最後に処理したレイヤーだけが選ばれます。今回の確認では、パネルで一番上の対象が残りました。
2026年10月19日に7つ選んで実行したときも、残ったのは一番上のグループだけでした。
メニューやショートカットの表示が記事と違う場合はどうすればよいですか?
Photoshopのバージョンやキーボード設定によって、メニューの名称や配置、ショートカットが変わることがあります。最新の操作手順は、Adobeの公式情報で確認してください。
