Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│レイヤーから特定の文字を除去する方法

Photoshopのデータ整理やLive2Dの素材分けに役立つ、レイヤー名から特定の文字を除去する方法を解説します。

複数レイヤーの名前を一括で変更できるため、作業効率化に役立ちます。

2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで記事のコードを実行し、レイヤー名がどう変わるかを確かめました。

結果は「Photoshop 2026で実行した結果」にまとめています。

目次

スクリプトを使用するメリット

  • 選択したレイヤーの名前を一括変更できる
  • 不要な拡張子(.png など)を一括で削除できる
スポンサーリンク

レイヤーから特定の文字を除去する方法

Photoshopの関連する操作手順は、まとめ記事でも確認できます。

  1. このコードは指定文字だけでなく、最初に現れた指定文字から後ろをすべて切り落とします。実行前に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 は消えません。

  1. 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月の確認では、このフォルダーへの配置と再起動は試していません。

  1. Photoshopを再起動。

STEP.2 スクリプトを実行

  1. [ファイル] → [スクリプト] → [RemoveLayerText] を選択。
  2. 名前の最初の指定文字と、それより後ろの文字列が削除されます。

実行する前に、名前を変えたいレイヤーをレイヤーパネルで選んでおきます。

Scriptsフォルダーに置かなくても、[ファイル]→[スクリプト]→[参照…]で保存したファイルを選べば実行できました。

Photoshopのファイルメニューでスクリプトを開き、サブメニューの一番下に参照がある画面
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。[ファイル]→[スクリプト]→[参照…]。保存したスクリプトのファイルを選んで実行する。

確認した実行では通知は出ず、対象の名前が変わりました。元の複数選択も失われるため、続けて作業するときは対象を選び直してください。また、コードはレイヤー選択時のエラーを通知せず、その後の改名へ進みます。選択に失敗した場合は直前のアクティブレイヤーを改名する可能性があるため、対象外の名前も元PSDと比較してください。この例外時の動作は実機では確かめていません。

さらに便利に使う方法(ショートカット設定)

  1. [編集] → [キーボードショートカット] を開く。
  2. 対象を[アプリケーションメニュー]にし、[ファイル]内の[RemoveLayerText]を探す。先にScriptsフォルダーへ配置して再起動し、通常のメニューに表示されることを確認する。
  3. ショートカット欄にキーを入力し、既存の割り当てと競合しないか確認する。競合先の操作も使う場合は別のキーを選ぶ。
  4. 変更したショートカットセットを保存し、複製したPSDで実行して改名前後の名前を確認します。

Photoshop 2026で実行した結果

2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで、上のコードを書き換えずにRemoveLayerText.jsxとして保存し、[ファイル]→[スクリプト]→[参照…]から2回実行しました。

練習用のファイルと、レイヤーを複数選んだ状態は別のスクリプトで用意したので、その部分は確認に含めていません。

レイヤー名・選択・ヒストリーは、実行の前後にスクリプトで読み取って比べました。

「.png」から後ろの文字がすべて消える

レイヤーパネルの実行前と実行後を並べた画像。photo.pngがphoto、icon.png のコピーがicon、face.png.pngがface、グループparts.pngがpartsに変わり、hair_front、eye.PNG、keep.pngは変わらない
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。背景レイヤーのある文書で、背景とkeep.png以外の7つを選んで実行した前後のレイヤーパネル。パネルに全行が入らないので2回撮って点線でつないだ。実行後に選ばれているのはグループのpartsだけ。

背景レイヤーのある文書で、背景と「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つ分になるので、元に戻すときはその数だけさかのぼります。

背景レイヤーが無い文書でも、一番下のレイヤーまで変わる

背景レイヤーが無い文書のレイヤーパネルの実行前と実行後。body.pngがbody、arm.pngがarmに変わり、名前が.pngだけのレイヤーとlegは変わらない
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。背景レイヤーが無い文書で、4つのレイヤーをすべて選んで実行した前後のレイヤーパネル。名前が「.png」だけのレイヤーは変わらなかった。

背景レイヤーが無い文書で、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の公式情報で確認してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次