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

Photoshopスクリプト(jsx)│グループのレイヤーマスクを一括で有効・無効にする方法

PhotoshopでグループのマスクだけをON/OFFするスクリプトを紹介します。

個別のレイヤーマスクを残したまま、グループマスクだけを一括管理できます。

ただし、掲載のコードはグループのマスクを無効にするだけで、ベクトルマスクは対象になりません。

Photoshop 2026で実際に動かした結果は、後半の「Photoshop 2026で実行した結果」にまとめています。

目次

グループのマスクをON/OFFするメリット

  • すべてのグループマスクを一括でON/OFFできる
  • 個々の通常レイヤーのマスクと、グループのベクトルマスクは変更しない
  • 手作業でのON/OFF切り替えの手間を削減できる
スポンサーリンク

スクリプトの導入方法

STEP.1 スクリプトをダウンロード・格納

  1. 下記のコードをメモ帳などに貼り付けて保存

Photoshopのほかの操作は、まとめからご覧いただけます。

CGM_ToggleGroupMasks.jsx

disableGroupMasks(app.activeDocument);

function disableGroupMasks(parent) {
    for (var i = 0; i < parent.layerSets.length; i++) {
        try {
            closeClippingMask(parent.layerSets[i].id);
        } catch (e) {}
        disableGroupMasks(parent.layerSets[i]);
    }
}

function closeClippingMask(layerId) {
    var idsetd = charIDToTypeID("setd");
    var desc19 = new ActionDescriptor();
    var idnull = charIDToTypeID("null");
    var ref1 = new ActionReference();
    var idLyr = charIDToTypeID("Lyr ");
    var idOrdn = charIDToTypeID("Ordn");
    var idTrgt = charIDToTypeID("Trgt");
    ref1.putIdentifier(idLyr, layerId);
    desc19.putReference(idnull, ref1);
    var idT = charIDToTypeID("T   ");
    var desc20 = new ActionDescriptor();
    var idUsrM = charIDToTypeID("UsrM");
    desc20.putBoolean(idUsrM, false);
    var idLyr = charIDToTypeID("Lyr ");
    desc19.putObject(idT, idLyr, desc20);
    executeAction(idsetd, desc19, DialogModes.NO);
}

次の設定をtrueにすると、グループのレイヤーマスクを一律でONにします。元々のON/OFFを記録して戻す処理ではないため、意図して無効にしていたマスクもONになります。混在状態を残したい場合は、実行前にPSDを複製してください。

desc20.putBoolean(idUsrM, false);

上のコードでは、この行は25行目のdesc20.putBoolean(idUsrM, false);です。

行番号は保存時の改行によって変わるため、desc20.putBoolean(idUsrM, false);を探し、この行の値だけを変更してください。

  1. CGM_ToggleGroupMasks.jsxを以下のフォルダに保存します。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\

Photoshop 2026(Windows)では、同じ役割のフォルダーはC:\Program Files\Adobe\Adobe Photoshop 2026\Presets\Scripts\にあります。

Program Filesの中なので、ファイルを置くには管理者の権限が要ります。

フォルダーに置かずに試すときは、STEP.2の代わりに[ファイル]→[スクリプト]→[参照…]でこのファイルを選び、[読み込み]を押しても実行できます。

  1. Photoshopを再起動します。

STEP.2 スクリプトを実行

  1. [ファイル] → [スクリプト] → [CGM_ToggleGroupMasks]を選択します。
  2. グループのマスクだけが一括で無効(OFF)になることを確認します。

Photoshop 2026で実行した結果

2026-10-19に、Photoshop 2026(27.11.0)とWindows 11 Pro(10.0.26200)で確かめました。

2026年10月20日に、コードを直しました。

「下のレイヤーを選択」をくり返して進んでいたため、閉じているグループの中のグループが飛ばされる不具合がありました。

この節の2026-10-19の結果は、直す前のコードで確かめたものです。

直す前の記事のコードを書き換えずに保存し、[ファイル]→[スクリプト]→[参照…]から実行しています。

スクリプトフォルダーに置いてメニューから選ぶ方法(STEP.1・2)は試していません。

練習用に、900×480 pxのファイルへ、次の表のレイヤーとグループをスクリプトで用意しました。

グループのマスクは、それぞれの列の上半分だけを表示するように作っています。

レイヤー実行前直す前のコード(1回目の実行後)直したコード(2026-10-20)
A 紫(グループの外のレイヤーマスク)有効有効のまま有効のまま
G1 開いたグループのマスク有効無効無効
G1の中の 赤 のレイヤーマスク有効有効のまま有効のまま
G1の中のグループ G1-1 のマスク有効無効無効
G2 閉じたグループのマスク有効無効無効
G2の中のグループ G2-1 のマスク有効有効のまま無効
G3 マスクの無いグループなしなし(エラーの表示も出ない)なし(エラーの表示も出ない)
G4 ベクトルマスクだけのグループ有効有効のまま有効のまま
実行前はグループのマスクで下半分が隠れていたカンバスが、実行後は橙の四角が現れ、レイヤーパネルのグループのマスクに赤い×が付いた比較
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。上が実行前、下が直す前の掲載コードを[参照…]から1回実行した後。パネルは上下にスクロールして2回撮ったものを点線でつないだ。G1・G1-1・G2のマスクに赤い×が付き、Aと赤のレイヤーマスク、G4のベクトルマスクはそのまま。

グループのマスクだけが無効になる

1回目の実行で、グループ「G1」「G1-1」「G2」のマスクが無効になり、レイヤーパネルのマスクのサムネールに赤い×が付きました。

グループの外の「A」と、グループの中の「赤」のレイヤーマスクは、有効のまま残りました。

カンバスでは、G1のマスクで隠れていた橙の四角が全部見えるようになり、紫と赤は左半分だけのままです。

マスクの無いグループ「G3」では、エラーの表示は出ずに、そのまま次のレイヤーへ進みました。

グループのベクトルマスク(G4)は対象外で、有効のまま残りました。

ヒストリーには、無効にしたグループの数だけ「レイヤーマスクを使用しない」が残ります(今回は3つ)。

直す前のコードでは、実行後に一番上のレイヤー「A」が選ばれた状態になりました(実行前は「背景」を選んでいました)。

直す前のコードは、閉じたグループの中のグループが対象にならなかった

閉じたグループ「G2」の中にあるグループ「G2-1」のマスクは、有効のまま残りました。

開いているグループ「G1」の中のグループ「G1-1」は無効になったので、閉じているグループの中だけが飛ばされていました。

カンバスの緑の四角が左半分しか見えないのは、G2-1のマスクが残っているためです。

レイヤーパネルでG2の三角を押して開き、もう一度実行すると、G2-1のマスクも無効になりました。

2回目にヒストリーに増えたのは「レイヤーマスクを使用しない」の1つだけで、すでに無効のマスクには何も起きていません。

閉じていたグループG2の中のG2-1のマスクだけ有効のまま残り、G2を開いて2回目を実行するとG2-1にも赤い×が付いて緑の四角が全部見えた比較
2026-10-19撮影。Adobe Photoshop 2026 (27.11.0)、Windows 11 Pro (10.0.26200)。上は1回目の実行後にG2の三角を押して開いた画面で、G2-1のマスクは有効のまま。下はG2を開いたまま2回目を実行した後で、G2-1のマスクも無効になった。

直す前のコードは「下のレイヤーを選択」をくり返して進んでいたので、閉じているグループの中には入りませんでした。

直したコードは、ドキュメントの中のグループを、グループの中のグループまで順にたどり、レイヤーを選び直さずにマスクを無効にします。

2026年10月20日に、直したコードを同じ練習ファイル(G2は閉じたまま)で実行しました。

別のスクリプトから実行して確かめています([参照…]からは実行していません)。

G1・G1-1・G2・G2-1の4つのマスクが無効になり、AとG1の中の赤のレイヤーマスク、G4のベクトルマスクは有効のまま残りました。

ヒストリーには「レイヤーマスクを使用しない」が4つ残り、選ばれているレイヤーは実行前の「背景」のままでした。

続けてもう一度実行しても、ヒストリーは増えませんでした。

G1を非表示にしたファイルでも同じ4つのマスクが無効になり、G1は非表示のまま残りました。

無効にするだけで、ON/OFFを入れ替えるわけではない

このコードは、グループのマスクを無効にする(falseを入れる)だけです。

もう一度実行しても、無効になったマスクが有効に戻ることはありませんでした。

有効に戻すときは、25行目のfalseをtrueにした別のファイルを用意します。

直す前のコードで、この1か所だけを書き換えたファイルを同じ手順で実行すると、G1・G1-1・G2・G2-1の4つのマスクがすべて有効に戻り、ヒストリーには「レイヤーマスクを使用」が4つ残りました。

このときはG2を開いたままにしていました。

直したコードの25行目を同じように書き換えたファイルでは、G2を閉じたままでも、G2-1を含む4つのマスクがすべて有効に戻りました(2026年10月20日、別のスクリプトから実行)。

関数の名前はcloseClippingMaskですが、無効にしているのはクリッピングマスクではなく、グループのレイヤーマスクです。

確かめていないこと

スクリプトフォルダーに置いてメニューから実行する方法は、管理者の権限が要るため試していません。

ロックしたグループ、アートボードがあるファイルでの動きは確かめていません。

Macや、Photoshop 2026以外の版でも試していません。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

レイヤーを操作するスクリプトは、ほかにもあります。

スポンサーリンク

まとめ

  • グループのマスクのみを一括でON/OFFできる
  • 個々の通常レイヤーのマスクと、グループのベクトルマスクは変更しない
  • データ整理や作業効率の向上に役立つ

スクリプトを活用して、グループマスクの管理を効率化してみてください。

よくある質問:グループのマスクだけを一括でON/OFFする

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

Photoshopで、グループのマスクだけを一括で無効(OFF)にできます。

コードの1か所をtrueに書き換えたファイルを使えば、一括で有効(ON)に戻せます。

個別のレイヤーマスクを残したまま、グループマスクだけをまとめて管理できます。

レイヤーマスクにも影響しますか?

変更するのはグループに付いたレイヤーマスクです。個々の通常レイヤーのマスクと、グループのベクトルマスクは対象外です。

どんなメリットがありますか?

すべてのグループマスクを一括でON/OFFできます。手作業で1つずつ切り替える手間を減らせるので、データ整理や作業効率の向上に役立ちます。

ONとOFFはどうやって切り替えますか?

記事のコード内に、trueに設定するとグループのマスクが一括でONになる設定があります。ONにしたいかOFFにしたいかに合わせて、この設定を確認してから実行してください。

スクリプトはどのように導入しますか?

記事のコードをメモ帳などに貼り付けてCGM_ToggleGroupMasks.jsxとして保存し、記事で案内しているフォルダに配置します。配置後にPhotoshopを再起動してください。

どうやって実行しますか?

[ファイル] → [スクリプト] → [CGM_ToggleGroupMasks] を選択します。

実行後、グループのマスクだけが一括で無効(OFF)になっていることを確認してください。

スクリプトのコードはどこで確認できますか?

記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

メニューの表示や名称が記事と違う場合はどうすればよいですか?

Photoshopのバージョンによってメニューの名称や配置が変わることがあります。最新の操作手順は、Adobeの公式情報で確認してください。

閉じたグループの中にあるグループのマスクが無効になりません

2026年10月19日までのコードでは、閉じているグループの中のレイヤーやグループが飛ばされていました。

2026年10月20日にコードを直し、閉じているグループの中のグループのマスクも無効になるようにしました。

もう一度実行してもマスクが有効に戻りません

掲載のコードはマスクを無効にするだけで、有効と無効を入れ替える作りではないためです。

有効に戻すときは、25行目のfalseをtrueにしたファイルを別に用意して実行してください。

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

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

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

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