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); console.log(position); // 出力: 7
このコードでは, search() メソッドを使って “world” の位置を検索しています.
例外処理(try…catch)
ES3では try…catch 構文が導入され, エラーハンドリングが可能になりました.
try { var result = someUndefinedFunction(); } catch (error) { console.log("エラーが発生しました: " + error.message); }
このコードでは, 未定義の関数を呼び出した際にエラーをキャッチし, 適切に処理できます.
文字列の置換
replace() メソッドを使って, 特定の文字列を別の文字列に置き換えることができます.
var text = "I love cats!"; var newText = text.replace(/cats/, "dogs"); console.log(newText); // 出力: "I love dogs!";
このコードでは “cats” を “dogs” に置き換えています.
ユーザー入力のバリデーション
ES3の正規表現を使って, メールアドレスの形式をチェックできます.
[code language="JavaScript"] 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); console.log(isValid); // 出力: true
このコードでは, メールアドレスの基本的なフォーマットを検証しています.
数値の抽出
文字列から数値を抽出することも可能です.
var text = "My phone number is 123-456-7890."; var regex = /\d+/g; var matches = text.match(regex); console.log(matches); // 出力: ["123", "456", "7890"]
このコードでは, match() メソッドを使って, 文字列内のすべての数字を抽出しています.
var text = "Hello, world!"; var regex = /world/; var position = text.search(regex); console.log(position); // 出力: