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

Photoshopの文字レイヤーをJSXで一括置換|プレビューと複製で確認

文字レイヤーの「2025」を「2026」へ置き換えるJSXです。

初期状態では一致数を表示するだけで、文字は変更しません。

置換を有効にしても元文書を残し、未保存の複製へ変更を加えます。

画像化された文字やスマートオブジェクト内部の文字は対象外です。

目次

標準の検索と置換・データセットとの使い分け

表示されている文字の検索・置換を画面で操作する場合は、標準の[編集]→[検索と置換]も候補です。Adobeの説明では、非表示やロック中の文字レイヤーは検索対象になりません。このJSXは非表示でも完全ロックされていない文字を対象にするため、同じ検索範囲として扱わないでください。

この例は、開いている1文書のグループ内まで検索し、一致数を確認してから複製へ変更する用途です。選択したレイヤーだけの処理、フォルダー内の全PSD、スマートオブジェクトの内部は扱いません。行ごとに異なる文言や画像を入れた複数PSDを作る場合は、CSVを使うデータセットへ進みます。

初めてJSXを使う場合は、JSXの保存と参照実行を確認してください。標準操作の範囲はAdobeの「テキストの検索と置換」を2026年10月3日に照合しています。ここで説明した標準操作も、今回のPhotoshop実機確認ではありません。

練習用PSDと検索文字列の準備

新しい文書に文字レイヤーA「CGM 2025 / 2025」を作ります。

グループ内に文字レイヤーB「CGM 2025」を作り、比較用に「CGM 2024」のレイヤーも追加してください。

PSDをpractice-text.psdとして保存し、原本のコピーも残します。

AとBをロックしない場合、一致するレイヤーは2個、文字列の出現回数は3回です。

コードのFINDが検索文字列、REPLACEが置換後の文字列です。

大文字小文字を区別し、FINDと一致する部分文字列をすべて置換します。文字レイヤー全体の一致や単語単位の一致を判定するものではなく、正規表現も使いません。

FINDを空にすると文字間へ置換文字列が挿入されるため、このコードでは空文字と同じ文字列同士の置換を停止します。

プレビューから始めるJSXコード

#target photoshop
(function () {
    var FIND = "2025";
    var REPLACE = "2026";
    var DRY_RUN = true; // First count matches. Set false only after reviewing the result.
    if (app.documents.length === 0) { alert("Open a practice PSD first."); return; }
    if (!FIND.length || FIND === REPLACE) { alert("Use a non-empty, different search string."); return; }
    var source = app.activeDocument;
    // Changes are confined to an unsaved duplicate; the original stays open.
    var work = DRY_RUN ? source : source.duplicate(source.name + "-text-preview");
    var matchedLayers = 0, occurrences = 0, changedLayers = 0, skipped = 0, errors = [];
    function walk(layers, parentLocked) {
        for (var i = 0; i < layers.length; i++) {
            var layer = layers[i];
            var locked = parentLocked || layer.allLocked;
            if (layer.typename === "LayerSet") {
                walk(layer.layers, locked);
            } else if (layer.typename === "ArtLayer" && layer.kind === LayerKind.TEXT) {
                if (locked) { skipped++; continue; }
                try {
                    var text = layer.textItem.contents;
                    var parts = text.split(FIND);
                    if (parts.length > 1) {
                        matchedLayers++;
                        occurrences += parts.length - 1;
                        if (!DRY_RUN) {
                            layer.textItem.contents = parts.join(REPLACE);
                            changedLayers++;
                        }
                    }
                } catch (e) { errors.push(layer.name + ": " + e.message); }
            }
        }
    }
    walk(work.layers, false);
    alert((DRY_RUN ? "PREVIEW ONLY" : "UNSAVED DUPLICATE") +
        "\nMatched layers: " + matchedLayers + "\nOccurrences: " + occurrences +
        "\nChanged layers: " + changedLayers + "\nLocked text layers skipped: " + skipped +
        "\nErrors: " + errors.length + "\n" + errors.join("\n"));
}());

一致数を確認して複製へ置換する

練習ZIPのarticle-1394.jsxを、Photoshopの[ファイル]→[スクリプト]→[参照]から実行します。

最初はDRY_RUN=trueのまま、PREVIEW ONLY、Matched layers: 2、Occurrences: 3、Changed layers: 0になることを確認してください。

入力を変更した場合は、それに応じて期待する数も変わります。

検索範囲を確認したら、JSXのDRY_RUNをfalseに変更して同じ文書で実行します。

別文書の複製が作られ、Aは「CGM 2026 / 2026」、Bは「CGM 2026」になり、比較用の2024は変わらないことを確認してください。

元文書へ切り替え、2025のままであることも確認します。

スクリプトは複製を自動保存しません。

グループは再帰的にたどります。

非表示でもロックされていない文字レイヤーは対象で、レイヤーまたは親グループが完全ロックされている場合は除外します。

Locked text layers skippedは除外した文字レイヤー数です。

別種類の制限などで文字を書き換えられない場合はErrorsへ記録されます。

保存前の確認と戻し方

完了表示意味
Matched layers検索文字があるレイヤー数。1レイヤーの複数一致は1個
Occurrences検索文字列の出現回数
Changed layers書き換えに成功したレイヤー数。プレビューでは0
Errors文字の読み書きに失敗したレイヤー名と理由

文字全体のcontentsを更新するため、複数の書式が混在した文字レイヤーで書式が保たれることは保証しません。

文字のはみ出し、改行、フォント、文字サイズ、字間を複製側で確認してください。

エラーがある場合は一部だけ変更されている可能性があるため、成功件数だけで完成と判断しません。

結果が正しければ複製を別名のPSDとして保存します。

戻す場合は複製を保存せず閉じ、元文書へ戻ります。

原本の上書きは行わないでください。

複製に必要なメモリが不足する場合はそこで中断し、小さい練習用PSDから確認します。

確認範囲と公式資料

2026年10月3日、AdobeのJSX実行手順を確認しました。

空検索の停止、プレビュー、複製への変更、グループとロック、読み書きエラーの扱いは、2026年10月3日にNode.jsの模擬環境で確認しました。配布ZIPのarticle-1394.jsxが本文のコードと一致することも照合しています。

Photoshop本体での置換、書式保持、複製の保存は未検証です。

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

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

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

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