PhotoShop shinyaman, 06/04/202501/06/2026 ExtendScriptの概要 ExtendScriptは, Adobeが提供するJavaScriptの拡張版で, PhotoshopやIllustratorなどのAdobe製品のスクリプト制御に使用されます. ECMAScript 3をベースにしており, 独自の機能を追加することで, Adobeアプリケーションの自動化を強化しています. ExtendScriptの歴史 Adobeは, スクリプトによる作業の効率化を目的としてExtendScriptを導入しました. 特に, Photoshopのバッチ処理や複雑なワークフローの自動化において, ExtendScriptは重要な役割を果たしてきました. ExtendScriptの便利さ 作業の自動化: 繰り返し作業をスクリプトで処理できるため, 時間を大幅に節約可能. ユーザーインターフェースの拡張: ScriptUIを利用してカスタムUIを作成し, 操作性を向上. ファイル操作の簡易化: File や Folder クラスを使用して, クロスプラットフォームのファイル管理が可能. 言語仕様 ExtendScriptはJavaScriptをベースにしているため, 基本的な構文はJavaScriptと共通ですが, 以下のような独自の拡張が含まれています: ScriptUI: Adobeアプリケーション内でGUIを作成できる. ファイルシステムアクセス: File や Folder クラスを使用して, OSのファイルシステムにアクセス可能. デバッグツール: $ オブジェクトを使用したデバッグ機能が提供されている. 以下のコードは, Photoshopで新規ドキュメントを作成し, テキストレイヤーを追加するものです. // 新規ドキュメントを作成 var doc = app.documents.add(800, 600, 72, "Sample Document"); // テキストレイヤーを追加 var textLayer = doc.artLayers.add(); textLayer.kind = LayerKind.TEXT; textLayer.textItem.contents = "Hello, ExtendScript!"; textLayer.textItem.position = [100, 100]; textLayer.textItem.size = 36; textLayer.textItem.font = "Arial"; // ドキュメントを保存(オプション) var file = new File("~/Desktop/sample.psd"); doc.saveAs(file, PhotoshopSaveOptions, true); このスクリプトをPhotoshopのExtendScript Toolkit(ESTK)または「スクリプト」メニューから実行すると, 新規ドキュメントが作成され, 「Hello, ExtendScript!」というテキストが表示されます. ExtendScriptの生い立ち ExtendScriptは, Adobeが提供するスクリプト言語で, 主にPhotoshopやIllustratorなどのAdobe製品の自動化に使用されます. Adobeは, スクリプトによる作業の効率化を目的として, JavaScriptをベースにした独自の拡張を加えたExtendScriptを導入しました. 主な歴史的な流れ: 1999年: ECMAScript 3が登場し, JavaScriptの標準仕様が確立される. 2000年代初頭: AdobeはECMAScript 3をベースにしたExtendScriptを開発し, Creative Suite製品に組み込む. 2005年頃: ExtendScript Toolkit(ESTK)が登場し, スクリプトの開発環境が整備される. 2010年代: AdobeはCEP(Common Extensibility Platform)を導入し, ExtendScriptの代替としてUXP(Unified Extensibility Platform)を推進. ECMAScript 3(ES3) ECMAScript 3(ES3)は, JavaScriptの標準仕様としてリリースされました. このバージョンは, 現在のJavaScriptの基盤となる重要な機能を導入しました. 主な特徴 正規表現の導入: 文字列処理が強化される. 例外処理(try…catch): エラーハンドリングが可能に. 新しい制御構造: switch 文や do…while ループの追加. より厳密なエラー定義: JavaScriptの動作がより明確に. ECMAScript 3は長らく標準として使われ, AdobeのExtendScriptもこの仕様を基に設計されています. Adobe製品のスクリプト制御において, ECMAScript 3の仕様を理解することは非常に重要です. // 新規ドキュメントを作成 var doc = app.documents.add(800, 600, 72, Sample Document); // テキストレイヤーを追加 var textLayer = doc.artLayers.add(); textLayer.kind = LayerKind.TEXT; textLayer.textItem.contents = "Hello, ExtendScript!"; textLayer.textItem.position = [100, 100]; textLayer.textItem.size = 36; textLayer.textItem.font = "Arial"; // ドキュメントを保存(オプション) var file = new File("~/Desktop/sample.psd"); doc.saveAs(file, PhotoshopSaveOptions, true); このスクリプトをPhotoshopのExtendScript Toolkit(ESTK)または「スクリプト」メニューから実行すると, 新規ドキュメントが作成」され「Hello, ExtendScript!」というテキストが表示されます. ECMAScript 3(ES3)は1999年に登場し, JavaScriptの標準仕様として広く使われました. 現在のJavaScriptと比べると古い仕様ですが, 当時は画期的な機能が導入されました. 以下に, ES3の実際の利用例をいくつか紹介します. 正規表現を使った文字列検索 ES3では正規表現が導入され, 文字列の検索や置換が簡単になりました. var text = "Hello, world!"; var regex = "/world/"; var position = text.search(regex); $.writeln(position); // 出力: 7 このコードでは, search() メソッドを使って “world” の位置を検索しています. 例外処理(try…catch) ES3では try…catch 構文が導入され, エラーハンドリングが可能になりました. try { var result = someUndefinedFunction(); } catch (error) { $.writeln("エラーが発生しました: " + error.message); } このコードでは, 未定義の関数を呼び出した際にエラーをキャッチし, 適切に処理できます. 文字列の置換 replace() メソッドを使って, 特定の文字列を別の文字列に置き換えることができます. var text = "I love cats!"; var newText = text.replace(/cats/, "dogs"); $.writeln(newText); // 出力: I love dogs! このコードでは “cats” を “dogs” に置き換えています. ユーザー入力のバリデーション ES3の正規表現を使って, メールアドレスの形式をチェックできます. var email = "example@example.com"; var regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/; var isValid = regex.test(email); $.writeln(isValid); // 出力: true このコードでは, メールアドレスの基本的なフォーマットを検証しています. 数値の抽出 文字列から数値を抽出することも可能です. var text = "My phone number is 123-456-7890."; var regex = /\d+/g; var matches = text.match(regex); $.writeln(matches); // 出力: [123,456,7890] このコードでは, match() メソッドを使って, 文字列内のすべての数字を抽出しています. var text = "Hello, world!"; var regex = /world/; var position = text.search(regex); $.writeln(position); // 出力: 7 worldを探してカラム位置を返します. Visual Studio CodeからScriptを簡単に実行する方法 %HOMEPATH%/.vscode/launch.jsonに下記のjsonファイルを作成すると, VS Codeで[F5]キーを押すだけで, そのScriptを実行できます. { // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "extendscript-debug", "request": "launch", "name": "Run JSX in Photoshop", "targetSpecifier": "photoshop", "engineName": "main", "default": true } ] } PhotoShop