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
を確認すると、各操作のイベント名を調べることができます。
例えば 新規レイヤー作成時 にスクリプトを実行したい場合、以下のように入力します。

<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 でイベント名を調べ、新規イベントを追加可能
- Photoshopの起動時や保存時にバッチ処理を組み込める
Photoshopの自動化を活用して、よりスムーズな作業環境を構築しましょう!