[Photoshop]レイヤーを選択するだけでテキストレイヤーの内容をクリップボードにコピーできるスクリプト

[Photoshop]レイヤーを選択するだけでテキストレイヤーの内容をクリップボードにコピーできるスクリプト

Webデザインツールとして、SketchやXDなどさまざまなツールが普及してきてはいるものの、まだまだPhotoshopでWebデザインをされている方は多いかと思います。
Photoshopからコードへテキストデータをコピペする際の手順を、少しだけ簡略化できるスクリプトを作成したので、ご紹介します。

Photoshopでデザインをしている際、テキストの使いまわしに、テキストを選択してコピペするということをするかと思いますが、フォントのスタイル情報も含めてペーストされてしまい、都合が悪い時もあるかと思います。
また、コーディングをする際には、テキストボックスを選択→Command+Aで全選択してコピー→コードにペーストと、若干煩わしい手順を踏まなければなりません。

そこで、スクリプトを使用して、レイヤーパネル上で選択しているテキストレイヤーのテキスト情報を、クリップボードにコピーできるようにしたいと思います。

コード

var activelay = app.activeDocument.activeLayer;
function copyTextToClipboard(text){
    const keyTextData = app.charIDToTypeID('TxtD');
    const keyTextToClipboardStr = app.stringIDToTypeID( "textToClipboard" );
    var textStrDesc = new ActionDescriptor();
    textStrDesc.putString( keyTextData, text );
    executeAction( keyTextToClipboardStr, textStrDesc, DialogModes.NO );
}

if( activelay.kind == LayerKind.TEXT ) {
    var selectContents = activelay.textItem.contents;
    copyTextToClipboard(selectContents);
} else {
    alert('選択したレイヤーはテキストレイヤーではないようです');
}

ダウンロードはこちら

使い方

  1. 上記ファイルをPhotoshopフォルダ内、Presets/Scripts/に格納
  2. テキストレイヤーを選択し、Photoshopツールバーのファイル>スクリプトより「activeTextCopy(ファイル名)」を選択

これでクリップボードにテキストがコピーされます。
あとは、任意でショートカットキー(僕の場合はCommand+Shift+Option+C)を割り当てれば完了です。

※ 複数のレイヤーを選択した場合には対応をしておりませんのでご注意を…。
※ CC 2017・CC 2019(Mac)にて動作確認済み

Photoshopでテキストをコピペするのに煩わしさを感じているようでしたら、ぜひお試しくださいませ。