Photoshopで選択したレイヤーを新規ドキュメントに複製し、自動でトリミングするスクリプトを紹介します。
UI素材の書き出し前調整や、個別レイヤーの切り出し作業を効率化できます。
2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで記事のコードを実行し、できる文書を確かめました。
選んだレイヤーは、描画部分ぴったりの大きさの新しい文書に複製され、元の文書は変わりませんでした。
ただし、新しい文書の名前はレイヤー名ではなく「Adobe Photoshop」になり、解像度は72ppiになりました。
空のレイヤーを選ぶとエラーで止まりました。
2026年10月20日にコードを直し、新しい文書の名前がレイヤー名になり、解像度は元の文書と同じになるようにしました。
空のレイヤーを選んだときは警告を出して止まり、定規の単位も実行前に戻るようにしました。
詳しくは「Photoshop 2026で実行した結果」にまとめています。

スクリプトの特徴とメリット
- 選択したレイヤーのみを新規ドキュメントへ複製
- 描画ピクセルに合わせて不要な余白を自動トリミング
- 元のドキュメントを汚さず個別パーツの調整が可能
スクリプトの導入手順
STEP.1 スクリプトファイルの作成と配置
- 先に元のPSDを保存し、コピーで試します。最初は日本語表示のPhotoshopでRGB・8bitの文書を開き、描画のあるレイヤーかグループを1つ選んでください。後述のスクリプトコードをテキストエディタに貼り付けて保存
Photoshopの各種設定や操作テクニックは、まとめ記事でも解説しています。

var doc = activeDocument;
var oldUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
var layer = doc.activeLayer;
var layerName = layer.name;
var w = doc.width;
var h = doc.height;
var b = doc.activeLayer.bounds;
var x1 = parseInt(b[0], 10);
var y1 = parseInt(b[1], 10);
var x2 = parseInt(b[2], 10);
var y2 = parseInt(b[3], 10);
if (x2 <= x1 || y2 <= y1) {
alert("選んだレイヤーに描画された部分がありません。");
} else {
var newDoc = documents.add(w, h, doc.resolution, layerName, NewDocumentMode.RGB, DocumentFill.TRANSPARENT);
activeDocument = doc;
layer.duplicate(newDoc);
activeDocument = newDoc;
newDoc.crop([x1, y1, x2, y2]);
newDoc.layers.getByName('レイヤー 1').remove();
}
preferences.rulerUnits = oldUnits;このコードは、定規の単位を一時的にピクセルにしてから、アクティブなレイヤー1つ(またはグループ1つ)のboundsを読み取ります。複数選択したレイヤーすべてを順に複製する処理ではありません。座標はparseIntで整数化するため、小数座標やレイヤー効果がある場合も必ず描画の外周に一致するとは限りません。
範囲が無い(何も描かれていない)レイヤーのときは、「選んだレイヤーに描画された部分がありません。」と警告して止まります。
次に、元の文書と同じ幅・高さ・解像度で、レイヤー名を名前にした透明のRGB文書を作り、レイヤーを複製します。色モードはRGB指定で、元文書のビット深度やカラープロファイルを明示して引き継ぐコードではありません。
最後に、読み取った範囲で切り抜き、新しい文書の「レイヤー 1」を名前で探して削除します。この名前は日本語表示が前提です。処理が最後まで進めば定規の単位を実行前に戻しますが、途中でエラーになると復帰の行に到達しません。その場合は単位と作成途中の文書を確認してください。
2026年10月19日までのコードは、4行目を var name = layer.name; としていました。
name はPhotoshopのスクリプトで最初から使われている名前なので、アプリの名前「Adobe Photoshop」のまま変わらず、レイヤー名が文書名に入りませんでした。
直したコードでは、5行目の変数名を layerName にしています。
CGM_DuplicateSelectLayer.jsxをPhotoshopのScriptsフォルダに配置します。
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_DuplicateSelectLayer]を実行します。
- 新規ドキュメントが作成され、レイヤーの複製と余白のトリミングが自動で完了します。
Scriptsフォルダーに置かなくても、[ファイル]→[スクリプト]→[参照…]で保存したファイルを選べば実行できました。
実行しても確認の窓や完了の表示は出ず、新しい文書のタブが1つ増えて前面に出ます。
新しい文書は保存されていないので、残したいときは自分で保存します。
文書を開いていないときに実行すると、「エラー 1302: 該当する要素はありません」の窓が出て止まりました(直す前のコードはライン: 2、直したコードはライン: 1)。
Photoshop 2026で実行した結果
2026年10月20日に、コードを直しました。
新しい文書の名前が常に「Adobe Photoshop」になる、解像度が72ppiになる、空のレイヤーでエラーになる、定規の単位をピクセルに変えたまま戻さない、の4つの不具合がありました。
この節の2026年10月19日の結果は、直す前のコードで確かめたものです。
直したコードの結果は、この節の最後の「直したコードで確かめた結果」にまとめています。
2026年10月19日に、Photoshop 2026(27.11.0)とWindows 11 Proで、直す前の記事のコードを書き換えずにCGM_DuplicateSelectLayer.jsxとして保存し、[ファイル]→[スクリプト]→[参照…]から6回実行しました。
練習用の文書(800×500ピクセル)と、レイヤーを選んだ状態は別のスクリプトで用意したので、その部分は確認に含めていません。
文書の大きさ・解像度・レイヤー・ヒストリーは、実行の前後にスクリプトで読み取って比べました。
選んだレイヤーが、描画部分ぴったりの新しい文書になる

「ボタン」(横200×縦100ピクセルの赤い四角)を選んで実行しました。
新しい文書は横200×縦100ピクセル・72ppiで、中身は「ボタン」のレイヤー1つだけでした。
レイヤー名はそのままで、位置は新しい文書の左上にそろっていました。
新しい文書のヒストリーには「新規」「レイヤーを複製」「切り抜き」「レイヤーを削除」の4つが積まれました。
元の文書は、レイヤーの数・位置とも実行前と同じで、保存済みの状態のままでした。
直す前のコードは、新しい文書の名前が「Adobe Photoshop」になった

新しい文書のタブの名前は、どのレイヤーを選んでも「Adobe Photoshop」でした。
直す前のコードの4行目で使っていた name という名前に、レイヤー名が入らないためです。
直したコードでは、新しい文書の名前は選んだレイヤーの名前になります。
グループ「パーツ」を選んだときは、中の「星」「月」ごとグループが複製され、新しい文書はグループ全体を囲む横210×縦100ピクセルになりました。
「レイヤー 1」という名前のレイヤーは「レイヤー 2」に変わる

新しいレイヤーの初期の名前と同じ「レイヤー 1」を選んで実行しました。
新しい文書には最初から「レイヤー 1」があるので、複製したレイヤーの名前は「レイヤー 2」に変わりました。
削除されたのは最初からある空の「レイヤー 1」で、中身は正しく残りました。
名前をそのまま使いたいときは、実行した後に名前を付け直してください。
直す前のコードは、空のレイヤーを選ぶとエラーで止まった

何も描いていないレイヤーを選んで実行しました。
「コマンド処理を完了できません。範囲内に何も含まれていないか、カンバスと重なりません。」という窓が出て、[OK]の後に「エラー 8007」(ライン: 18)の窓が出ました。
切り抜く範囲が無いので、切り抜きの命令で止まっています。
新しい文書(800×500ピクセル・中身なし)は作られたまま残りました。
直したコードでは、新しい文書を作る前に範囲を確かめて、警告を出して止まります。
直す前のコードは、解像度が72ppiになり、定規の単位がピクセルのまま残った
300ppi・定規の単位をセンチメートルにした文書で、「ボタン」を選んで実行しました。
新しい文書は横200×縦100ピクセルで、ピクセル数は元のレイヤーと同じでしたが、解像度は72ppiでした。
直したコードでは、新しい文書の解像度は元の文書と同じになります。
実行した後、定規の単位はセンチメートルからピクセルに変わったままでした。
直したコードでは、正常終了時と空のレイヤーを判定した場合に実行前の単位に戻ります。途中の複製・切り抜き・レイヤー削除でエラーになる場合の復帰処理はありません。
直したコードで確かめた結果
2026年10月20日に、直したコードを同じ練習用の文書で実行しました。
別のスクリプトから実行して確かめています([参照…]からは実行していません)。
「ボタン」を選ぶと、名前が「ボタン」・横200×縦100ピクセル・72ppiの新しい文書ができ、ヒストリーは直す前と同じ4つでした。
300ppi・定規の単位をセンチメートルにした文書では、新しい文書が横200×縦100ピクセル・300ppiになり、実行後の定規の単位はセンチメートルのままでした。
グループ「パーツ」を選ぶと、名前が「パーツ」・横210×縦100ピクセルの文書にグループごと複製されました。
「レイヤー 1」を選ぶと、文書の名前は「レイヤー 1」で、複製したレイヤーの名前は直す前と同じく「レイヤー 2」になりました。
空のレイヤーを選ぶと、新しい文書は作られず、元の文書も変わりませんでした。
このときは警告の窓の代わりに文字を記録する版で確かめたので、警告の窓が画面に出るところは確かめていません。
文書を開いていないときは、「エラー 1302」(ライン: 1)で止まりました。
確かめていないこと
Scriptsフォルダーへの配置と再起動、メニューに出るスクリプト名、2つ以上のレイヤーを選んだ場合、レイヤー効果の付いたレイヤー、カンバスからはみ出したレイヤー、背景レイヤー、文字レイヤー、Mac版と他の版は確かめていません。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
レイヤー操作を効率化するスクリプトは、ほかにも紹介しています。




まとめ
- 選択レイヤーをワンクリックで新規ドキュメントに複製
- 不要な余白の自動トリミングでサイズ調整の手間を削減
- アイコンやUIパーツなどの個別編集を効率化
日々のルーティン作業にスクリプトを取り入れ、レイヤー複製とトリミングの手間を削減しましょう。
よくある質問:選択レイヤーを新規ドキュメントに複製してトリミングする
このスクリプトでは何ができますか?
Photoshopで選択したレイヤーを新規ドキュメントに複製し、描画ピクセルに合わせて不要な余白を自動でトリミングします。UI素材の書き出し前の調整や、個別レイヤーの切り出し作業に使えます。
どんなメリットがありますか?
選択したレイヤーだけを新規ドキュメントへ複製できます。余白の自動トリミングでサイズ調整の手間を減らせます。元のドキュメントを汚さず、個別のパーツを調整できます。
スクリプトはどのように導入しますか?
記事のスクリプトコードをテキストエディタに貼り付けて保存し、PhotoshopのScriptsフォルダに配置します。配置後にPhotoshopを再起動してください。
どうやって実行しますか?
複製したいレイヤーを選択し、[ファイル] → [スクリプト] → [CGM_DuplicateSelectLayer] を実行します。新規ドキュメントが作成され、レイヤーの複製と余白のトリミングが自動で完了します。
実行しても元のドキュメントは変わりませんか?
検証した条件では元の文書のレイヤーや保存状態は変わりませんでした。複製と切り抜きは新規ドキュメント側で行います。念のため、大切なファイルは事前に別名保存してから試してください。
どんな作業に向いていますか?
アイコンやUIパーツなどを個別に編集したいときに向いています。日々のルーティン作業にスクリプトを取り入れて、レイヤー複製とトリミングの手間を減らせます。
スクリプトのコードはどこで確認できますか?
記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
新しいドキュメントの名前はレイヤー名になりますか?
2026年10月20日に直したコードでは、選んだレイヤーの名前になります。
2026年10月19日までのコードでは、4行目の name にレイヤー名が入らず、どれも「Adobe Photoshop」という名前でした。
解像度は元のドキュメントと同じになりますか?
2026年10月20日に直したコードでは、元のドキュメントと同じ解像度になります。
300ppiの文書で試したところ、ピクセル数も解像度も同じでした。
2026年10月19日までのコードでは、解像度だけが72ppiになっていました。
空のレイヤーを選ぶとどうなりますか?
2026年10月20日に直したコードでは、「選んだレイヤーに描画された部分がありません。」と警告して止まり、新しい文書は作られません。
描画のあるレイヤーを選び直してから実行してください。
2026年10月19日までのコードでは、切り抜きの所でエラーが出て止まり、中身の無い新しい文書が残っていました。
メニューの表示や名称が記事と違う場合はどうすればよいですか?
Photoshopのバージョンによってメニューの名称や配置が変わることがあります。最新の操作手順は、Adobeの公式情報で確認してください。
