Photoshopで複数の画像を一括で1つのドキュメントにレイヤーとして読み込むスクリプトを紹介します。
複数の画像を手動で開く手間を省き、作業を効率化できます。
2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで、この記事の2つのコードを実行して確かめました。
2026年10月20日に、フォルダー用のコードを直しました。
フォルダーに画像以外のファイルがあると、エラーで途中で止まり、空のレイヤーが残る不具合がありました。
読み込んだ結果と、途中で止まる場合は「Photoshop 2026で実行した結果」にまとめています。
スクリプトのメリット
- 選択した画像を一括で1つのドキュメントにレイヤー化
- フォルダ内の画像もまとめて読み込める
- Photoshop上での整理作業を効率化

選択したファイル・フォルダを1つのドキュメントにレイヤー化する方法
STEP.1 スクリプトをダウンロード・格納
- 先に入力ファイルを保存して閉じ、画像のコピーで試してください。コードは読み込んだ文書を保存せずに閉じます。定規の単位はピクセルにし、最初は確認済みの72 ppiのPNG・JPEGで試します。下記のコードをメモ帳などに貼り付けて保存(ファイル用とフォルダ用の2種類あります)
Photoshopのほかの操作は、まとめから確認できます。

CGM_SelectFilesImportLayers.jsx
app.bringToFront();
main();
function main() {
var fileObj = new File();
var fileArray = fileObj.openDlg('ファイルを選択してください:', '', true);
//新規ドキュメント
var newDoc = documents.add(512, 512, 72, 'test', NewDocumentMode.RGB, DocumentFill.TRANSPARENT, 1);
for (var i = 0; i < fileArray.length; i++) {
var doc = open(fileArray[i]);
//モードをRGBに
doc.changeMode(ChangeMode.RGB);
//新しくドキュメントに読み込み
doc.artLayers.add();
//レイヤーを統合(透明のレイヤーと統合するので影響なし)
doc.mergeVisibleLayers();
//読み込んだファイル名を取得
var name = doc.name;
var layer = doc.activeLayer;
//レイヤー名をドキュメント名に
layer.name = name;
//始めに作った新規ドキュメントへ複製コピー
layer.duplicate(newDoc, ElementPlacement.PLACEATBEGINNING);
//読み込んだドキュメントを閉じる
doc.close(SaveOptions.DONOTSAVECHANGES);
}
//一番下のレイヤーの削除
var layObj = activeDocument.artLayers;
var bgLayer = layObj[layObj.length - 1];
bgLayer.remove();
//すべての領域を表示
activeDocument.revealAll();
//透明部分のトリミング
activeDocument.trim(TrimType.TRANSPARENT, true, true, true, true);
}CGM_SelectFolderImportLayers.jsx
app.bringToFront();
main();
function main() {
var folderObj = new Object();
var sourceFolder = Folder.selectDialog('フォルダを選択してください:', Folder(folderObj));
//新規ドキュメント
var newDoc = documents.add(512, 512, 72, 'test', NewDocumentMode.RGB, DocumentFill.TRANSPARENT, 1);
//フォルダ内のファイル取得
var fileArray = new Array();
var docs = sourceFolder.getFiles();
var len = docs.length;
for (var i = 0; i < len; i++) {
var doc = docs[i];
if (doc instanceof File && /\.(psd|psb|png|jpe?g|gif|bmp|tiff?|webp)$/i.test(doc.name)) fileArray.push(doc);
}
for (var i = 0; i < fileArray.length; i++) {
var doc = open(fileArray[i]);
//モードをRGBに
doc.changeMode(ChangeMode.RGB);
//新しくドキュメントに読み込み
doc.artLayers.add();
//レイヤーを統合(透明のレイヤーと統合するので影響なし)
doc.mergeVisibleLayers();
//読み込んだファイル名を取得
var name = doc.name;
var layer = doc.activeLayer;
//レイヤー名をドキュメント名に
layer.name = name;
//始めに作った新規ドキュメントへ複製コピー
layer.duplicate(newDoc, ElementPlacement.PLACEATBEGINNING);
//読み込んだドキュメントを閉じる
doc.close(SaveOptions.DONOTSAVECHANGES);
}
//一番下のレイヤーの削除
var layObj = activeDocument.artLayers;
var bgLayer = layObj[layObj.length - 1];
bgLayer.remove();
//すべての領域を表示
activeDocument.revealAll();
//透明部分のトリミング
activeDocument.trim(TrimType.TRANSPARENT, true, true, true, true);
}CGM_SelectFilesImportLayers.jsxCGM_SelectFolderImportLayers.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 スクリプトを実行
- [ファイル] → [スクリプト] → [CGM_SelectFilesImportLayers]を選択します。
- ファイル選択ダイアログで対象の画像を選択します。
- 選択したすべての画像が1つのドキュメント内にレイヤーとして読み込まれます。
Scriptsフォルダーに置かなくても、[ファイル]→[スクリプト]→[参照]で保存したファイルを選べば実行できました。
実行すると「ファイルを選択してください:」という題名の窓が開きます。
複数の画像は、[ファイル名]の欄に"a-red-circle.png" "b-blue-stripes.jpg"のように名前を並べて入力すると、まとめて選べました。

種類の欄は「すべてのファイル (*.*)」になっていて、画像以外のファイルも選べてしまうので注意してください。
選んで[OK]を押すと、確認の窓は出ずに読み込みが始まります。
フォルダー用のCGM_SelectFolderImportLayers.jsxを実行すると、「フォルダを選択してください:」という題名の窓が開きます。

この窓では中の画像は表示されません。
読み込みたい画像が入ったフォルダーを1回クリックして選び、[フォルダーの選択]を押します。
Photoshop 2026で実行した結果
2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで、その時点のファイル用・フォルダー用コードを保存し、[ファイル]→[スクリプト]→[参照]から実行しました。掲載中のフォルダー用コードは10月20日の修正版です。修正版の確認ではフォルダー選択窓を固定の指定に置き換えており、選択窓からの実行は未確認です。
読み込んだのは、大きさと形式の違う3枚の画像です。
透明な背景に赤い円を描いた300×300ピクセルのPNG、青いしま模様の640×400ピクセルのJPEG、グレースケールで三角形を描いた240×240ピクセルのPNGを使いました。
画像は別のスクリプトで作ったので、画像の用意は確認に含めていません。
画像はファイル名のレイヤーになり、左上にそろって重なる

3枚を選んで実行すると、「test」という新しいドキュメントができ、画像ファイルごとに1枚のレイヤーとして入りました。コードはRGB化と表示レイヤーの結合を行うため、複数レイヤーのPSDを元の階層のまま取り込む処理ではありません。
レイヤー名は「a-red-circle.png」のように、拡張子まで含めたファイル名になりました。
後から読み込んだ画像ほど上に重なり、今回は最後に読み込んだ三角形の画像が一番上でした。
どの画像も中央ではなくカンバスの左上にそろって置かれたので、下のレイヤーは上の画像に隠れて見えにくくなります。
並べ替えや位置の調整は、読み込んだ後に行ってください。
カンバスは一番大きい画像に合わせて640×400ピクセルになりました。
グレースケールのPNGはRGBのレイヤーになり、JPEGの背景も通常のレイヤーとして入りました。
できた「test」は自動保存されません。まずレイヤーパネルで入力画像と同じ枚数があるか、各レイヤー名と重なり順を確認します。1枚ずつ表示して読み込み漏れや画像の欠けがないか確かめてから、[ファイル]→[別名で保存]で入力画像とは別の名前・保存先を指定します。レイヤーを残すにはPhotoshop(PSD)形式と[レイヤー]を選び、保存後に開き直して構造を確認してください。この保存・再読操作は今回実機では試していません。
フォルダー用のコードで同じ3枚を入れたフォルダーを選んだときも、同じ結果になりました。
直す前のフォルダー用のコードは、画像以外のファイルがあると途中で止まった
同じ3枚の画像に、テキストファイル(memo.txt)を1つ加えたフォルダーで直す前のフォルダー用のコードを実行すると、途中で止まりました。

まず「Photoshop が認識しない種類のファイルです」という内容の窓が出て、[OK]を押すと「エラー 8000: ファイルを開くオプションが正しくないため、ファイルを開けません」と出ました。
エラーの行は、ファイルを開くvar doc = open(fileArray[i]);の行です。
直す前のコードはフォルダーの中のファイルを種類で選び分けずに、すべて開こうとしていたためです。

止まった後のドキュメントは512×512ピクセルのままで、最初に作られた空の「レイヤー 1」も残っていました。
最後に行うはずのカンバスの拡張と透明部分のトリミングが行われないので、640×400ピクセルのJPEGの一部がカンバス外に隠れて見えます。512 pxの幅に対して640 pxの画像なので、幅方向が収まりません。
直したコードは、指定フォルダー直下のうち拡張子がpsd・psb・png・jpg・jpeg・gif・bmp・tif・tiff・webpのファイルだけを候補にします。サブフォルダーはたどりません。拡張子での絞り込みなので、壊れた画像などを判別して読み飛ばす処理はありません。
2026年10月20日に、直したコードで同じフォルダーを読み込みました。
フォルダーを選ぶ窓の部分だけをフォルダーの指定に置き換えた確かめ用の版を、別のスクリプトから実行しています。
テキストファイルは飛ばされ、画像だけのフォルダーと同じく、640×400ピクセルのドキュメントに3枚のレイヤーが入りました。
隠しファイル(desktop.ini)とサブフォルダーを加えたフォルダーでも、同じ結果でした。
上に挙げた拡張子以外は候補に入りません。拡張子を追加するだけで形式の対応が増えるわけではないため、利用中のPhotoshopで開けることと、このコードでの読み込み結果を別途確かめてください。
標準の[ファイルをレイヤーとして読み込み]もある
同じ[ファイル]→[スクリプト]のメニューには、Photoshopに付いている[ファイルをレイヤーとして読み込み]もありました。
このスクリプトとの違いは、今回は確かめていません。
確かめていないこと
Scriptsフォルダーへの配置と再起動、選ぶ窓で[キャンセル]を押した場合、ファイル用のコードで画像以外のファイルを選んだ場合、フォルダーに画像が1枚もない場合は確かめていません。
CMYKや16ビットの画像、解像度が72ppi以外の画像、Mac版と他の版も確かめていません。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
読み込みと書き出しに関する記事は、ほかにもあります。




まとめ
- 選択したファイルを一括で1つのドキュメントにレイヤー化可能
- フォルダ内の画像もまとめて読み込める
- 配置作業にかかる手間を削減
Photoshopで複数の画像を効率的にレイヤー化し、作業時間を短縮できます。
よくある質問:複数の画像を1つのドキュメントにレイヤーとして読み込む
このスクリプトでは何ができますか?
Photoshopで複数の画像を、一括で1つのドキュメントにレイヤーとして読み込めます。複数の画像を手動で開く手間を省いて、作業を効率化できます。
ファイル用とフォルダ用の2種類があるのはなぜですか?
CGM_SelectFilesImportLayers.jsxとCGM_SelectFolderImportLayers.jsxの2種類を紹介しています。ファイルを選んで読み込むものと、フォルダ内の画像をまとめて読み込むものです。
スクリプトはどのように導入しますか?
記事のコードをメモ帳などに貼り付けて保存します(ファイル用とフォルダ用の2種類があります)。保存したファイルを記事で案内しているフォルダに配置し、Photoshopを再起動してください。
ファイルを選んで読み込むにはどうしますか?
[ファイル] → [スクリプト] → [CGM_SelectFilesImportLayers] を選択します。ファイル選択ダイアログで対象の画像を選ぶと、選択したすべての画像が1つのドキュメント内にレイヤーとして読み込まれます。
フォルダ内の画像をまとめて読み込めますか?
はい。
フォルダ用のスクリプト(CGM_SelectFolderImportLayers)で、フォルダーの中の画像をまとめて読み込めました(2026年10月19日、Photoshop 2026で確認)。
直す前のコードは、フォルダーにテキストファイルなど画像以外のファイルがあると、エラー 8000で途中で止まりました。
2026年10月20日に、指定した画像拡張子だけを候補にするよう直しました。ファイル内容を判定する処理ではなく、フォルダー直下だけが対象です。修正版は選択窓を固定フォルダー指定にした確認用の版で検証しています。
読み込んだ画像はどこに、どの順番で入りますか?
2026年10月19日にPhotoshop 2026で試したところ、どの画像もカンバスの左上にそろって置かれ、後から読み込んだ画像ほど上のレイヤーになりました。
レイヤー名は拡張子まで含めたファイル名になり、カンバスは一番大きい画像に合わせた大きさになりました。
どんな作業に向いていますか?
複数の画像を1つのドキュメントに配置する作業に向いています。Photoshop上での整理作業の効率化や、配置にかかる手間の削減に役立ちます。
スクリプトのコードはどこで確認できますか?
記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
メニューの表示や名称が記事と違う場合はどうすればよいですか?
Photoshopのバージョンによってメニューの名称や配置が変わることがあります。最新の操作手順は、Adobeの公式情報で確認してください。
