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

Photoshop JSXで最下位レイヤーを選択する|末尾の添字・背景・グループ

Photoshopの文書直下で最下位にあるレイヤーまたはグループを選ぶJSXです。指定はdoc.layers[doc.layers.length - 1]です。グループ内の子まで自動で掘り下げず、表示・非表示にかかわらず、このコレクションの端を対象にします。反対側の端は最上位の選択を参照してください。

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

文書直下の一番下の1つが選ばれ、一番下がグループのときは中の子ではなくグループ自体が選ばれました。

背景のある文書では、選ばれるのは背景です。

また、一番下のレイヤーが非表示だと、選ばれると同時に表示に変わります。

コードはレイヤーの移動・名前変更・保存を呼びませんが、選択状態と、この場合の表示状態は変わります。

アートボード、1要素だけの文書、Mac版は確かめていないので、自作の文書で試してから使ってください。

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

目次

配列の並び順とグループの扱い

AdobeのScripting Guideは、レイヤーパネルの先頭をスクリプトの先頭として扱うと説明しています。JavaScriptの先頭は0で、末尾はlength−1です。レイヤー名の「レイヤー1」と配列の添字1は別です。Action ManagerのitemIndexや背景による番号差とも混同しません。

文書直下のコレクション先頭末尾
doc.layers(グループを含む)doc.layers[0]doc.layers[doc.layers.length - 1]
doc.artLayers(グループを含めない)doc.artLayers[0]doc.artLayers[doc.artLayers.length - 1]
選択するもの文書直下で先頭の要素文書直下で末尾の要素

最下位がグループなら、そのグループ自体を選びます。doc.artLayersへ置き換えるとグループは候補から外れ、文書直下のArtLayerの末尾を選ぶことになります。グループ内の子を含む文書全体の最下位ArtLayerを探す処理とは異なります。背景がある場合もDOMの添字を独自に1ずらしません。

スポンサーリンク

文書直下の最下位を選択する全体コード

新しい全体コードをUTF-8の.jsxとして保存し、ファイル→スクリプト→参照から実行します。旧コードへ追記せず、別ファイルとして1回実行してください。メニューへの登録は動作を確認した後に行います。

#target photoshop
(function () {
    if (app.documents.length === 0) { alert("文書を開いてください。"); return; }
    try {
        var doc = app.activeDocument;
        if (doc.layers.length === 0) { alert("文書直下にレイヤーがありません。"); return; }
        var target = doc.layers[doc.layers.length - 1];
        doc.activeLayer = target;
    } catch (error) {
        alert("読取または選択で中断: " + error.message + "\n行: " + error.line);
    }
}());

対象範囲を変える場合

文書直下のArtLayerだけに限定する場合は、コード内の空件数検査・length・添字の参照をすべてdoc.artLayersへ揃えます。文書直下がグループだけならartLayersは0件となるため、0件検査を残します。layersとartLayersのlengthを混ぜると、存在しない添字や別の対象を参照します。

グループ直下の端を選びたい場合は、名前配列でグループを指定する方法で対象を取得し、LayerSetであることを確認してから、そのgroup.layersを使います。activeLayer.parentを無条件で使うと、文書直下のレイヤーではDocumentになり、グループ選択時には選んだグループの親になります。対象グループを明示してから参照してください。

確認用の配置と期待値

自作文書の条件この例の最下位選択
上から「CGM_Top」「CGM_Group」「CGM_Bottom」CGM_Bottom(背景が無い場合。背景があれば背景が選ばれた)
文書直下の最下位がグループグループ自体。内部の子を自動で選ばない。
1要素の文書その1要素。先頭と末尾は同じ。
端が非表示またはロック候補からは除外しない。選ばれると同時に表示に変わり、ロックは残った。
文書なし・読取/選択の例外先に停止し、エラーを不在と決めつけない。

確認時は実行前後のレイヤーパネルを撮影し、端の行が選択されたことと、レイヤー数・順序・名前・表示状態を比較します。選択は重ね順の移動や画素の選択範囲作成とは別です。元の複数選択全体の自動復元を含めていないため、実行前の選択も記録してください。

Photoshop 2026で実行した結果

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

練習用の文書は、別のスクリプトで5つ作りました。

上から「CGM_Top」「CGM_Group」「CGM_Bottom」「背景」の文書、同じ並びで背景の無い文書、一番下が「CGM_Group」の文書、一番下の「CGM_Bottom」を非表示にしてすべてロックした文書、背景を非表示にした文書です。

文書を開く操作と、実行前に選んでおくレイヤーもスクリプトで用意したので、その部分は確認に含めていません。

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

背景のある文書では、背景が選ばれる

レイヤーパネルを4つ並べた画像。CGM_Topを選んで実行すると背景が選ばれ、CGM_TopとCGM_Child_Aの2枚を選んで実行しても背景の1枚だけが選ばれている
2026-10-19〜20撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。背景のある文書で実行した前後のレイヤーパネル。1枚選択からでも2枚選択からでも、一番下の背景だけが選ばれた。

「CGM_Top」を選んで実行すると、一番下の「背景」が選ばれました。

「CGM_Top」と「CGM_Child_A」の2枚を選んだ状態で実行しても、選択は「背景」の1枚だけに置き換わりました。

背景も文書直下の末尾に数えられるので、背景のすぐ上の「CGM_Bottom」は、このコードのままでは選べません。

元の2枚の選択は戻らないので、必要なら実行前に控えておきます。

レイヤーの数・順序・名前・表示は変わらず、ヒストリーも「開く」のままでした。

背景が無ければ一番下のレイヤー、グループならグループ自体

レイヤーパネルを4つ並べた画像。背景の無い文書ではCGM_Bottomが選ばれ、一番下がグループの文書ではCGM_Group自体が選ばれている
2026-10-20撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。背景の無い文書と、一番下がグループの文書で実行した前後のレイヤーパネル。グループは中の子ではなくグループ自体が選ばれた。

同じ並びで背景の無い文書では、一番下の「CGM_Bottom」が選ばれました。

一番下が「CGM_Group」の文書では、中の「CGM_Child1」「CGM_Child2」ではなく、グループ自体が選ばれました。

グループは開いたままでした。

一番下が非表示だと、選ぶと同時に表示される

レイヤーパネルを4つ並べた画像。非表示でロックしたCGM_Bottomと、非表示の背景が、実行後に選ばれて目のアイコンが付いている
2026-10-20撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。一番下が非表示の文書で実行した前後のレイヤーパネル。選ばれると同時に表示に変わり、ロックは残った。

一番下の「CGM_Bottom」を非表示にしてすべてロックした文書で実行すると、「CGM_Bottom」が選ばれ、同時に目のアイコンが付きました。

ロックは付いたままで、ヒストリーには何も積まれず「開く」のままでしたが、文書には未保存の印「*」が付きました。

背景を非表示にした文書でも同じく、背景が選ばれると同時に表示に変わりました。

非表示のレイヤーを表示に変えたくない場合は、このコードをそのまま使わないでください。

文書を開いていないときは止まる

「文書を開いてください。」と表示されたスクリプト警告の窓
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。文書を開いていない状態で実行したときの警告。

ホーム画面で文書を1つも開いていない状態で実行すると、「文書を開いてください。」と出て、何もせずに止まりました。

確かめていないこと

1要素だけの文書、アートボード、catchで中断する場合の表示は確かめていません。

Scriptsフォルダーへの登録、ショートカットの割り当て、Mac版と他の版も試していません。

旧説明から修正した点

旧コードは「一番下」と説明しながらdoc.layers[0]を指定していました。

これは文書直下の先頭を参照するため、今回の最下位の例はdoc.layers[doc.layers.length - 1]へ修正しています。

旧本文のartLayers推奨と掲載コードのlayersも食い違っていたため、グループを含む場合と含めない場合を分けています。

旧コードと過去の画面(参照用)

以下は誤った方向の説明を含む旧コードです。参照用に保持し、新しい全体コードと混ぜて実行しないでください。旧画像は編集画面だけで、対象の選択結果や文書の構成を確認できません。

// 現在のドキュメントを取得
var doc = app.activeDocument;

// レイヤーが存在するか確認
if (doc.layers.length > 0) {
    // 一番下のレイヤーを取得してアクティブにする
    doc.activeLayer = doc.layers[0];
} else {
    alert("レイヤーが存在しません。");
}
旧記事のコード編集画面。下部にArtLayer 背景が表示されていますが、文書の最下位が選ばれたことを示すレイヤーパネルは写っていません。
旧記事のコード編集画面。下部にArtLayer 背景が表示されていますが、文書の最下位が選ばれたことを示すレイヤーパネルは写っていません。 過去の掲載画像で、撮影日・Photoshopの詳細版は未確認です。

参照資料と確認範囲

Adobe Photoshop Scripting Guide 2020の38〜39ページ(並び順・レイヤーセット)、JavaScript Scripting Reference 2020のDocument、ArtLayers、Layers、LayerSetを参照しています。2020年版のExtendScript資料で、現在のPhotoshopで実機確認した記録ではありません。

Adobeのレイヤー選択手順ではパネルでの選択と、サムネールからのピクセル選択を区別しています。UXPのLayers資料は別の実行環境です。このJSXを.psjsに改名するだけでは移行できません。UXPスクリプトの実行方法で分担を確認してください。

旧配布と関連する手順

旧配布はGitHubの元コードに残しています。公開フォルダーの01.jsは今回の新しい例へ更新していません。実行する場合は、このページの新しい全体コードを別の.jsxとして保存してください。

スポンサーリンク

よくある質問:文書直下の最下位のレイヤーを選択する

このスクリプトでは何ができますか?

Photoshopの文書直下で、最下位にあるレイヤーまたはグループを選ぶJSXです。グループ内の子まで自動で掘り下げず、表示・非表示にかかわらず、このコレクションの端を対象にします。反対側の端は、最上位の選択の記事を参照してください。

「最下位」はどのレイヤーですか?

AdobeのScripting Guideは、レイヤーパネルの先頭をスクリプトの先頭として扱うと説明しています。JavaScriptの先頭は0で、末尾はlength−1です。文書直下のコレクション(グループを含む)の末尾の要素が、最下位です。

最下位がグループだった場合はどうなりますか?

そのグループ自体を選びます。内部の子を自動で選ぶことはありません。doc.artLayersへ置き換えるとグループは候補から外れ、文書直下のArtLayerの末尾を選ぶことになります。グループ内の子を含む文書全体の最下位ArtLayerを探す処理とは異なります。

レイヤー名の「レイヤー1」と配列の添字は同じですか?

いいえ。レイヤー名の「レイヤー1」と配列の添字1は別です。Action ManagerのitemIndexや背景による番号差とも混同しないでください。背景がある場合も、DOMの添字を独自に1ずらしません。

端のレイヤーが非表示やロックされていると、どうなりますか?

候補からは除外しません。

2026年10月19日〜20日にPhotoshop 2026(27.11.0)で確かめたところ、非表示ですべてロックした一番下のレイヤーも選ばれ、選ばれると同時に表示に変わりました。

ロックは付いたままでした。

非表示の背景も、選ばれると同時に表示に変わりました。

1要素だけの文書なら、その1要素が先頭でも末尾でも対象になります。

文書を開いていない場合は「文書を開いてください。」と出て止まります。

読取・選択で例外が出た場合は先に停止し、エラーを不在と決めつけません。

旧コードからどこを修正しましたか?

旧コードは「一番下」と説明しながらdoc.layers[0]を指定していました。

これは文書直下の先頭を参照するため、今回の例はdoc.layers[doc.layers.length - 1]へ修正しています。

旧本文のartLayers推奨と掲載コードのlayersも食い違っていたため、グループを含む場合と含めない場合を分けています。

旧コードは参照用で、新しい全体コードと混ぜて実行しないでください。

このコードはPhotoshopで動作確認されていますか?

はい。

2026年10月19日〜20日に、Photoshop 2026(27.11.0)とWindows 11 Proで、[ファイル]→[スクリプト]→[参照…]から実行して確かめました。

確かめたのは、背景のある文書(1枚選択・2枚選択)、背景の無い文書、一番下がグループの文書、一番下が非表示でロックされた文書、背景が非表示の文書、文書を開いていないときの7通りです。

コードはレイヤーの移動・名前変更・保存を呼びませんが、選択状態は変わり、一番下が非表示なら表示に変わります。

アートボード、1要素だけの文書、Mac版の挙動は確かめていないので、自作の文書で確認してください。

確認するときは何を比較すればよいですか?

上から「CGM_Top」「CGM_Group」「CGM_Bottom」と並べた背景の無い文書では、実機でもCGM_Bottomが選ばれました。

同じ並びでも一番下に背景があると、選ばれるのは背景です。

実行前後のレイヤーパネルを見て、端の行が選択されたことと、レイヤー数・順序・名前・表示状態を比較します。

元の複数選択全体の自動復元は含めていないため、実行前の選択も記録してください。

最新の仕様は、Adobeの公式情報で確認してください。

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

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

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

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