この記事で扱うScriptingListenerはPhotoshop用のプラグインです。IllustratorやAfter Effectsの操作を同じプラグインで記録するものではありません。
ただし、すべての機能にスクリプト用の公式コマンドが用意されているわけではありません。

そのため、一部の操作については「ScriptingListener」プラグインを使い、実際の操作をログとして取得してスクリプトに活用します。
ScriptingListenerとは
ScriptingListenerは、Photoshopでの操作をスクリプト(JavaScript)形式のログとして自動記録するAdobe公式のプラグインです。
ログに記録された操作は、標準のオブジェクトモデルで扱いにくい処理を組む手掛かりになります。すべての操作を記録・再現できるわけではありません。文書名、レイヤーの選択状態、ファイルパスなどを確認し、必要な操作だけを複製文書で試します。
ScriptingListenerの使い方【3ステップ】
STEP1:ScriptingListenerプラグインをダウンロードする
Adobe公式サイトから、使用環境に合ったScriptingListenerプラグインをダウンロードします。
Adobeのインストール手順には、次の配布区分があります。これだけで現行の全OS・全版への対応を保証するものではありません。
- Windows用
- macOS用(Photoshop 2020以降)
- macOS用(Photoshop 2019以前)
STEP2:プラグインをPhotoshopにインストールする
Photoshopを完全に終了してから配布ファイルを展開します。現在のAdobe手順では、展開内容のUtilitiesフォルダーを対象版のPlug-insへコピーし、Photoshopを再起動します。導入したファイルの場所を控え、複数の場所へ重複配置しないでください。
Windowsの場合
C:\Program Files\Adobe\Adobe Photoshop [バージョン]\Plug-ins\
Windows用プラグインはScriptingListener.8liです。配布物のUtilitiesフォルダーを上記のPlug-ins内に配置します。
Macの場合
/Applications/Adobe Photoshop [バージョン]/Plug-ins/ が配置先です。配布物のUtilitiesフォルダー内のScriptingListener.pluginを含めて配置します。

Apple Silicon(M1等)搭載Macでの注意点
以下はIntel向けプラグインをRosetta経由で利用する旧手順です。今回、Apple Siliconでの動作や現行配布物のCPU対応は検証していません。対象のPhotoshopとmacOSがRosetta起動に対応し、プラグイン側にその条件が必要な場合に限って検討します。
- Photoshopアプリを右クリックして「情報を見る」を選択
- 「Rosettaを使用して開く」にチェックを入れる

STEP3:ログの確認と停止
導入後にPhotoshopを再起動し、複製した練習用文書で1つの操作を行います。デスクトップのScriptingListenerJS.logに新しい記録が追記されるか、操作前後を比べてください。ログがあるだけでは今回の記録成功とは判断できません。記録を再利用するときは、ログをテキストエディターで開き、操作前後の差分から対象操作に対応するコード一式を取り出します。操作の区切りには等号が並ぶコメント行があります。途中の変数宣言やActionDescriptorの設定を省かず、別のファイル(例:recorded-operation.jsx)へ保存します。複数の操作が記録されている場合は、最後の区切り以降だけを無条件に採用せず、操作内容を照合してください。

ログの記録を一時停止・再開するスクリプト
以下は旧記事の停止・再開コードで、今回の実機確認は未実施です。それぞれ別の.jsxとして保存し、まず[ファイル]→[スクリプト]→[参照]から試します。OFF後に新たな操作が追記されず、ON後には追記されることを同じ練習用文書で確認してください。確実に使用を終了する場合はPhotoshopを終了し、今回追加したプラグインだけをPlug-insの外へ退避して再起動します。ログは大きくなるため、必要な記録を保存してから整理してください。保存したrecorded-operation.jsxを試すときは、停止・再開用のJSXとは区別し、操作前と同じ文書・レイヤー選択を複製文書で用意します。固定のファイルパスや保存・削除処理が混入していないか確認してから、[ファイル]→[スクリプト]→[参照]で実行し、期待する変更だけが起きたか確認してください。この流れはAdobe Photoshop Scripting Guideの75~76ページの記録コード再利用手順に基づく説明で、今回プラグインの導入・記録・再実行は試験していません。
ログ出力をOFFにする
var listenerID = stringIDToTypeID("AdobeScriptListener ScriptListener");
var keyLogID = charIDToTypeID('Log ');
var d = new ActionDescriptor;
d.putBoolean(keyLogID, false);
executeAction(listenerID, d, DialogModes.NO);ログ出力をONに戻す
var listenerID = stringIDToTypeID("AdobeScriptListener ScriptListener");
var keyLogID = charIDToTypeID('Log ');
var d = new ActionDescriptor;
d.putBoolean(keyLogID, true);
executeAction(listenerID, d, DialogModes.NO);Photoshopのそのほかの操作は、まとめ記事から確認できます。

作成したスクリプトをメニューに登録する方法はこちらです。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
環境設定とカンバスの記事は、ほかにもあります。




まとめ
ScriptingListenerは、Photoshopの記録可能な操作をJavaScriptとして調べるためのツールです。ログはそのまま汎用スクリプトになるとは限りません。
Photoshopのスクリプト自動化を進めるうえで役立つプラグインです。
操作のコード化に迷った際は、ScriptingListenerでログを記録して記述を確認してみてください。
よくある質問:PhotoshopのScriptingListener
ScriptingListenerとは、何ですか?
Photoshopでの操作を、スクリプト(JavaScript)形式のログとして自動記録する、Adobe公式のプラグインです。DOMで扱いにくい処理を調べる手掛かりになりますが、記録対象と再現条件には制限があります。必要な操作の記録だけを取り出し、複製文書で確認してください。
なぜ、ScriptingListenerが必要なのですか?
PhotoshopでDOMだけでは扱いにくい操作の記録を調べるためです。このプラグインでIllustratorやAfter Effectsの操作を記録するわけではありません。記録したコードに固定パスや選択状態への依存がないか確認します。
どこから入手しますか?
Adobe公式サイトから、使用環境に合ったScriptingListenerプラグインをダウンロードします。対応プラグインは、Windows用、macOS用(Photoshop 2020以降)、macOS用(Photoshop 2019以前)です。
どこにインストールしますか?
Photoshopを終了して配布物を展開し、Utilitiesフォルダーを対象版のPlug-insへコピーして再起動します。WindowsはC:\Program Files\Adobe\Adobe Photoshop [バージョン]\Plug-ins\、Macは/Applications/Adobe Photoshop [バージョン]/Plug-ins/が配置先です。今回追加したファイルを把握し、既存プラグインを上書き・削除しないでください。
Apple Silicon(M1など)のMacでは、何に注意しますか?
記事のRosetta起動は旧手順です。現行配布物のCPU対応と対象のPhotoshop・macOSの起動条件を確認し、すべてのApple Silicon環境へ一律に適用しないでください。今回は実機で検証していません。
ログは、どこに出力されますか?
デスクトップのScriptingListenerJS.logへ記録されます。導入後の再起動と記録対象の操作を行い、操作前後で追記を確認してください。古いログの存在だけでは動作確認になりません。
ログの記録を、一時的に止められますか?
記事に旧コード例がありますが、今回の実機確認は未実施です。OFF/ON前後の追記を確認します。使用を終了する場合はPhotoshopを閉じ、今回追加したプラグインだけをPlug-ins外へ退避し、再起動してください。
記事の内容は、今のPhotoshopで確認されていますか? 最新はどこで確認しますか?
記事には、特定のバージョンでの動作確認の記載はありません。プラグインの入手先や対応バージョンは更新されることがあるため、最新はAdobe公式のダウンロードページで確認してください。作成したスクリプトをメニューに登録する方法や、この記事で紹介しているコード(GitHubのMOTOKI-LLC/cg-method-code)も、記事内で案内されています。
