Photoshopには、特定の操作をトリガーとしてスクリプトやアクションを実行できる「スクリプトイベントマネージャー」という機能が備わっています。
この機能を活用すると、手動で行っていたルーティン処理を自動化し、作業時間を大幅に短縮できます。
本記事では、スクリプトイベントマネージャーの設定手順と、ファイル保存時にバッチ処理を実行する具体例を解説します。
スクリプトイベントマネージャーの基本設定
STEP 1:保存時にバッチ処理を実行する設定
- [ファイル] → [スクリプト] → [スクリプトイベントマネージャー]を選択してダイアログを開きます。
test.batを実行するスクリプトファイルを指定して登録します。
以下のコードを記述したスクリプトを登録すると、Photoshopでファイルを保存したタイミングでバッチ処理が自動実行されます。

var cmd = "C:\\Users\\username\\Desktop\\test.bat";
var file = new File(cmd);
file.execute();
この設定により、PSDの保存処理と連動して指定のバッチ処理が自動で実行されます。
スクリプトイベントマネージャーへの新規イベント追加方法
イベントを追加すると、スクリプトイベントマネージャー.xmlに設定情報が保存されます。
このファイルを開いて記述を確認することで、各イベント名の正確な指定方法を把握できます。
設定ファイルの保存場所
C:\Users\ユーザー名\AppData\Roaming\Adobe\Adobe Photoshop CC\Adobe Photoshop CC Settings\スクリプトイベントマネージャー.xmlスクリプトイベントマネージャー.xml の記述例
<スクリプトイベントマネージャー>
<events>
<0>
<name>アプリケーションを起動</name>
<value>Ntfy</value>
<valueClass></valueClass>
</0>
<1>
<name>新規ドキュメント</name>
<value>Mk </value>
<valueClass>Dcmn</valueClass>
</1>
<2>
<name>ドキュメントを開く</name>
<value>Opn </value>
<valueClass></valueClass>
</2>
<3>
<name>ドキュメントを保存を開始</name>
<value>save</value>
<valueClass>saveBegin</valueClass>
</3>
<4>
<name>ドキュメントを保存</name>
<value>save</value>
<valueClass>saveSucceeded</valueClass>
</4>
<5>
<name>ドキュメントを閉じる</name>
<value>Cls </value>
<valueClass></valueClass>
</5>
<6>
<name>日本標準用紙</name>
<value>Prnt</value>
<valueClass></valueClass>
</6>
<7>
<name>ドキュメントの書き出し</name>
<value>Expr</value>
<valueClass></valueClass>
</7>
<8>
<name>すべてのイベント</name>
<value>All </value>
<valueClass></valueClass>
</8>
<9>
<name>test</name>
<value>aaa</value>
<valueClass></valueClass>
</9>
</events>
<extrafiles>
<0>~/Desktop/test.jsx</0>
</extrafiles>
</スクリプトイベントマネージャー>新規イベントの追加手順
ScriptingListenerJS.logを参照すると、各操作に対応するイベント識別名を確認できます。
たとえば、新規レイヤーの作成時をトリガーにしてスクリプトを動かしたい場合は、以下のようにイベントIDを指定します。

<name>新規レイヤー</name>
<value>Mk </value>
<valueClass>Lyr </valueClass>以上の設定を完了すると、新規レイヤーが追加されたタイミングで指定したスクリプトが実行されます。
[実践例] PSD保存時に同階層へPNGを自動出力する
PhotoshopでPSDファイルを保存したタイミングで、同じフォルダー内へPNG画像を自動書き出しするスクリプトの設定例です。

PNG出力スクリプト(同フォルダに保存)
function CGM_SavePng() {
var doc = app.activeDocument;
var docName = doc.name;
var docPath = doc.path;
var folder = new Folder(docPath);
if (docName.indexOf(".") != -1) {
var baseName = docName.match(/(.*)\.[^\.]+$/)[1];
} else {
var baseName = docName;
}
if (folder == null) {
return;
}
exportPng(doc, folder, baseName + '.png');
}
function exportPng(doc, folder, name) {
var file = new File(folder.fsName + "/" + name);
var options = new ExportOptionsSaveForWeb();
options.format = SaveDocumentType.PNG;
options.optimized = true;
options.interlaced = false;
doc.exportDocument(file, ExportType.SAVEFORWEB, options);
}
CGM_SavePng();作成したスクリプトをスクリプトイベントマネージャーに登録しておけば、PSDを保存するたびにPNGも自動で同時出力されます。
応用アイデアと活用例
- Photoshop起動時にバッチ処理を実行(最新スクリプトの自動同期など)
- 特定のツール選択・使用時にスクリプトを実行
- 新規レイヤー追加時に既定のエフェクトや調整レイヤーを適用
スクリプトイベントマネージャーを活用することで、定常的な手作業を自動化し、作業効率を大幅に引き上げることが可能になります。
その他のPhotoshop自動化テクニックや関連操作については、以下の関連記事もあわせてご確認ください。

スクリプトを動かす環境の記事は、ほかにもあります。




まとめ
- 特定の操作(イベント)をトリガーにスクリプトやアクションを自動実行できる
- PSD保存時にPNGを自動出力させるなど、ルーティン作業を自動化できる
- ScriptingListenerJS.log でイベントコードを調べれば、独自の新規イベントも登録できる
- 起動時やファイル保存時とバッチ処理を連携させ、柔軟なワークフローを構築できる
スクリプトイベントマネージャーを導入し、繰り返しの手作業を省いた快適な制作フローを整えましょう。
