イラレスクリプトの作り方入門!自作自動化でルーティンをゼロにする極意
デザイン制作やDTPの現場で、毎日繰り返される単調な配置やリネーム作業に時間を奪われていないでしょうか。Illustrator標準のアクション機能だけでは対応しきれない複雑な処理も、スクリプトを活用すればワンクリックで完結させることが可能です。「プログラミングは難しそう」と敬遠されがちですが、基本的な仕組みさえ押さえれば、ノンプログラマーのデザイナーでも短時間でオリジナル処理を構築できます。
近年はAIによるコード生成も実用レベルに達しており、手書きで複雑な文法をすべて暗記する必要はなくなりました。本稿では、環境構築からJavaScript(ExtendScript)の基本構文、実務ですぐに役立つ実践コード、さらに作業スピードを極限まで高めるショートカット設定まで、制作現場の視点でわかりやすく解説します。
📌 【この記事の重要ポイントまとめ】
- 要点1:アクションでは不可能な「条件分岐」や「選択オブジェクトの動的取得」もスクリプトなら完全に自動化できる
- 要点2:メモ帳やVS Codeで書いたコードを「.jsx」形式で保存し、指定フォルダへ配置するだけで即座に実行可能
- 要点3:ChatGPTなどの生成AIを活用することで、初心者でも数分で実用的な自動化コードを生成・カスタマイズできる
【基礎知識】アクション機能との決定的な違いとスクリプト自作のメリット
Illustratorの標準機能である「アクション」は、手動で行った操作ログをそのまま記録・再生する優れたツールです。しかし、「選択したオブジェクトの個数に応じて位置をずらす」「特定の名前に一致するテキストだけを置換する」「アートボードごとに異なるファイル名で書き出す」といった動的な判断を伴う処理は実行できません。
こうした制限を突破できるのがスクリプトです。Illustratorスクリプト自作を行うことで、複雑な計算、外部データ(CSVやJSON)の読み込み、DTP自動組版といった高度なタスクをボタン一つで処理できるようになります。一度ルーティンをコード化してしまえば、ヒューマンエラーを完全に排除しつつ、イラレ作業効率化を圧倒的なスピードで推進できます。
【初心者向け入門手順】テキストエディタで始めるjsxファイルの作成と実行
スクリプト開発に高価な専用ソフトは不要です。Windowsのメモ帳やMacのテキストエディット、あるいは無料の「Visual Studio Code」があればすぐに始められます。初心者向け入門手順は以下の3ステップで完了します。
まずはエディタを開き、後述するJavaScriptコードを記述します。保存時の拡張子を「.jsx」に設定するのが最大のポイントです(例:sample.jsx)。
作成したファイルの保存先には2つの選択肢があります。最も手軽なのは、Illustratorの所定ディレクトリであるjsxファイル保存場所へ直接格納する方法です。ここに配置すると、Illustrator上部メニューの「ファイル」>「スクリプト」内に作成したスクリプト名が一覧表示され、ワンクリックで呼び出せるようになります。
【標準のjsxファイル保存場所】
・Windows:C:\Program Files\Adobe\Adobe Illustrator [バージョン]\Presets\[言語]\Scripts
・macOS:/Applications/Adobe Illustrator [バージョン]/Presets/[言語]/Scripts
なお、一時的にテスト実行したいだけであれば、Illustratorのメニューから「ファイル」>「スクリプト」>「その他のスクリプト...」(Macショートカット:Cmd + F12 / Winショートカット:Ctrl + F12)を選び、保存したjsxファイルを直接選択するだけでも動作します。
【コード解説】Illustratorスクリプト自作で役立つJavaScript基本構文
Illustratorで動くスクリプトの多くは、Adobe製品専用の拡張が施された「ExtendScript」と呼ばれるJavaScript(ES3ベース)で記述します。基本構文は一般的なWebプログラミングと共通しており、以下の主要オブジェクトと記法さえ覚えれば大半の処理を組み立てられます。
Illustratorを操作する際、最も頻繁に登場するのがドキュメントや選択中アイテムへのアクセスです。以下の基本コードは、現在開いているドキュメントを取得し、選択中のオブジェクト数を画面上にアラート表示する最小単位のプログラムです。
// 最上位のドキュメントを取得 var doc = app.activeDocument; var sel = doc.selection; if (sel.length > 0) { alert("現在 " + sel.length + " 個のオブジェクトが選択されています。"); } else { alert("オブジェクトが選択されていません。"); } app.activeDocument でアクティブなファイルを指定し、doc.selection で選択オブジェクト群を配列として取得します。JavaScript基本構文である if による条件分岐や for ループを組み合わせることで、選択したすべての図形を順番に処理していくロジックが完成します。
【コピペで動く】今すぐ使える実用的オブジェクト操作コード3選
現場ですぐに効果を体感できる、実用度の高いオブジェクト操作コードを厳選しました。コードをコピーして .jsx ファイルとして保存し、Illustrator上で実行してみてください。
1. 選択したテキストの「フォントサイズを一括で+2pt」する
大量のラベルや注記テキストのサイズを一括微調整したいときに重宝するコードです。
(function() { if (app.documents.length === 0) return; var sel = app.activeDocument.selection; for (var i = 0; i < sel.length; i++) { if (sel[i].typename ==="TextFrame") { sel[i].textRange.characterAttributes.size += 2; } } })(); 2. 選択オブジェクトを基準に「天地左右中央へ整列」させる
アートボードの中央へ、複数選択したアイテムをグループ化せずにまとめて移動させます。
(function() { if (app.documents.length === 0) return; var doc = app.activeDocument; var sel = doc.selection; if (sel.length === 0) return; var ab = doc.artboards[doc.artboards.getActiveArtboardIndex()]; var abRect = ab.artboardRect; // [左, 上, 右, 下] var abCenterX = abRect[0] + (abRect[2] - abRect[0]) / 2; var abCenterY = abRect[1] - (abRect[1] - abRect[3]) / 2; for (var i = 0; i < sel.length; i++) { var bounds = sel[i].visibleBounds; // [左, 上, 右, 下] var itemWidth = bounds[2] - bounds[0]; var itemHeight = bounds[1] - bounds[3]; sel[i].left = abCenterX - (itemWidth / 2); sel[i].top = abCenterY + (itemHeight / 2); } })(); 3. すべての「非表示レイヤー・ロックレイヤー」を一括削除する
入稿データの整理やクリーンアップ時に、不要なレイヤーを根こそぎ消去してファイル容量を削減します。
(function() { if (app.documents.length === 0) return; var doc = app.activeDocument; var layers = doc.layers; for (var i = layers.length - 1; i >= 0; i--) { if (!layers[i].visible || layers[i].locked) { layers[i].remove(); } } alert("非表示およびロックされたレイヤーを削除しました。"); })(); 【AI活用法】ChatGPTを活用したスクリプト生成術とエラー修正のコツ
現在、自作スクリプトのハードルは劇的に下がっています。ChatGPTスクリプト生成を活用すれば、専門的な構文を覚えていなくても、日常会話の指示文(プロンプト)だけで高精度なコードを出力させることができます。
AIに正確なExtendScriptを出力させるためには、いくつかの明確な指示を含めることが成功の秘訣です。
【精度の高いプロンプト例】
「Adobe Illustrator用のJavaScript(ExtendScript / .jsx)を作成してください。
要件:
1. アクティブなドキュメント内で選択されているすべてのテキストオブジェクトを取得する。
2. テキスト内の改行コードを半角スペースに一括置換する。
3. 処理完了後、何箇所のテキストを変更したかアラート表示する。
4. 初心者にもわかりやすいよう各行にコメントをつけてください。」
AIが生成したコードでエラーが出た場合は、Illustratorに表示されたエラー行番号とエラーメッセージをそのままコピーしてChatGPTに再入力し、「このエラーを解消してコードを修正してください」と伝えるだけで、大半の問題が迅速に解決されます。
【爆速化】スクリプトショートカット登録とバッチ処理自動化の実装ワザ
作成したスクリプトを毎回メニューから選択していては、真の効率化とは言えません。一瞬でスクリプトを実行できるように環境を整えましょう。
Illustrator標準ではスクリプトへの直接ショートカット割り当てができませんが、「スクリプトを実行するアクション」を1つ録音し、そのアクションにFキー(ファンクションキー)を割り当てることで擬似的なスクリプトショートカット登録が可能です。これにより、キーボードを一度押すだけで複雑な自作処理が発火します。
さらに、フォルダ内にある数百個のAIファイルを順次開いてスクリプトを適用し、PDFやSVGとして書き出して保存・終了するバッチ処理自動化も、JavaScriptのファイル検索機能(Folder.getFiles())を組み合わせれば完全に手放しで完結します。退勤前にバッチを回しておけば、翌朝にはすべての処理が終わっているという制作環境も容易に構築可能です。
【イラレ スクリプト 作り方】に関するよくある質問(FAQ)
Q1:ExtendScriptと一般的なJavaScript(ES6以降)は何が違うのですか?
A1:Illustratorで動作するExtendScriptは、古いJavaScript規格(ECMAScript 3)をベースにAdobe独自の拡張が加わった言語です。そのため、const や let、アロー関数(=>)などの新しい記法を使用すると構文エラーになります。変数宣言は基本的に var を使用してください。
Q2:スクリプトを実行した直後に「元に戻す(Ctrl+Z / Cmd+Z)」はできますか?
A2:はい、可能です。ただし、ループ処理などで大量の変更を加えるスクリプトの場合、1回のCtrl+Zですべて元に戻らないことがあります。スクリプト実行前には、念のためドキュメントを別名保存しておくか、Git等のバージョン管理ツールを併用することをおすすめします。
Q3:Illustratorのバージョンが変わっても同じスクリプトは動き続けますか?
A3:基本的なオブジェクト操作(移動、色変更、テキスト変更など)のAPIは長年安定しているため、バージョンが上がってもそのまま動作するケースがほとんどです。ただし、新機能に関連するAPIやカラーマネジメント周りの一部処理は仕様変更を受けることがあるため、メジャーアップデート時には動作確認が必要です。
まとめ:自作スクリプトを武器にクリエイティブの自由度を最大化する
Illustratorスクリプトの自作は、プログラマーだけのものではなく、現場で戦うすべてのクリエイターのための強力な武器です。日々のデザイン業務で発生する「同じ作業の繰り返し」に気づいたら、それは自動化の最大のチャンスと言えます。
まずは数行のシンプルなコードを動かすところからスタートし、徐々にAIとの対話を交えながら自分専用の制作支援ツールを育ててみてください。ルーティンワークをプログラムに任せることで生まれた余白の時間は、より本質的なデザインの思考やクリエイティブワークへと投資できるようになります。 (出典: イラレ スクリプト 作り方(Yahoo!ニュース))