Amazon10/19まで!プライム感謝祭開催中!セール会場へ

IllustratorのJSXからアクションを呼ぶ|セット名と実行方向の確認

Illustratorのスクリプトから、アクションパネルに登録済みのアクションを呼び出すには、app.doScriptにアクション名とセット名を渡します。アクションからJSXを呼び出す設定とは方向が異なるので、まずどちらを実行したいか分けます。

目的方法事前に確認すること
JSXからアクションを呼ぶapp.doScriptで登録済みアクションを指定セット名・アクション名・選択対象・保存を含む命令の有無
アクションからJSXを呼ぶメニューに登録したスクリプトを「メニュー項目を挿入」で指定する方式使用版でメニューに表示されるか、再起動後も記録が保たれるか
複数のAIへ同じ操作を繰り返す標準のアクションとバッチ入力のコピー、保存先、開く・保存の記録と上書き設定

2026年10月17日に、Illustrator 2026(30.8.2)とWindows 11 Pro(10.0.26200)で、パネルで記録したアクションをこの記事のコードから呼び、パネルの再生と同じ結果になることを実機で確かめました。

結果は「実機で確かめた結果」の節にまとめています。

目次

登録済みのアクションを1回呼ぶ例

コピーした文書に四角形を作り、アクションパネルで自分専用のセット「CGM_Test」とアクション「縮小10」を作ります。縮小率10%の操作だけを記録し、パネルの再生ボタンで意図した結果になることを先に確認してください。既存のセットへ同名で追加せず、保存・終了・ファイル削除などの命令を含めない試験用アクションを使います。

縮小の操作は、記録中に[オブジェクト]→[変形]→[拡大・縮小]を開き、「縦横比を固定」に10%を入れて[OK]を押すだけにします。

アクションパネルは[ウィンドウ]→[アクション]で表示できます。

次のコードは選択したオブジェクトの編集可否を確認してから、登録済みアクションを1回呼びます。自動でアクションを読み込んだり、既存セットを削除したりしません。SET_NAMEとACTION_NAMEは実際の登録名へ合わせてください。第3引数はtrueですが、アクション側にダイアログを持たない命令や表示を無効にした命令があれば、必ず確認画面が出るとは限りません。

(function () {
    var SET_NAME = "CGM_Test";
    var ACTION_NAME = "縮小10";
    if (app.documents.length === 0) { alert("ドキュメントを開いてください。"); return; }
    var selection = app.activeDocument.selection;
    if (!selection || selection.length === 0 || !selection[0] || !selection[0].typename) {
        alert("試験用のオブジェクトを選択してください。"); return;
    }
    for (var i = 0; i < selection.length; i++) {
        if (!selection[i].editable || selection[i].typename === "TextRange") {
            alert("オブジェクト全体を編集可能な状態で選択してください。"); return;
        }
    }
    if (!confirm("セット「" + SET_NAME + "」の「" + ACTION_NAME + "」を1回実行します。内容を確認したアクションですか?")) { return; }
    try {
        app.doScript(ACTION_NAME, SET_NAME, true);
    } catch (e) {
        alert("アクションの実行に失敗しました:" + e + "\n途中の変更が残る場合があります。文書を確認してください。");
    }
}());

このJSX自体は保存命令を呼びません。ただし、呼び出すアクションに保存が記録されていれば、その命令も実行されます。実行途中のエラーは、それまでの変更を取り消す保証がありません。失敗したときは文書とアクションの各命令を確認し、コピーでやり直してください。

実機で確かめた結果(2026年10月17日)

Illustrator 2026(30.8.2)とWindows 11 Pro(10.0.26200)で、640×300 ptのアートボードに160×100 ptの四角形を3つ置いた練習用の文書を使いました。

1つ目で記録し、2つ目をパネルの再生ボタン、3つ目を掲載コードで縮小して比べています。

練習用の文書と四角形はスクリプトで用意したので、その作り方は確認に含めていません。

パネルでセットとアクションを記録する

アクションパネル下の「新規セットを作成」で「CGM_Test」を作りました。

1つ目の四角形を選択ツールで選んでから「新規アクションを作成」を押し、名前を「縮小10」にして[記録]を押しました。

記録中に[オブジェクト]→[変形]→[拡大・縮小]を開き、「縦横比を固定」に10%を入れて[OK]を押しました。

拡大・縮小ダイアログで、縦横比を固定に10%を入れた画面
2026-10-17撮影。Adobe Illustrator 2026 (30.8.2)、Windows 11 Pro (10.0.26200)。アクションの記録中に[オブジェクト]→[変形]→[拡大・縮小]を開き、「縦横比を固定」に10%を入れた実機画面。

パネルの停止ボタンで記録を止めると、「縮小10」の中には「拡大・縮小」が1つだけ記録されていました。

アクションパネルで、セットCGM_Testのアクション縮小10に拡大・縮小が1つ記録された画面
2026-10-17撮影。Adobe Illustrator 2026 (30.8.2)、Windows 11 Pro (10.0.26200)。記録を止めた後のアクションパネルの実機画面。「縮小10」の中に「拡大・縮小」が1つだけ記録されています。

[拡大・縮小]は最後に使った値を覚えるので、次に開いたときは10%が入っていました。

パネル再生とJSX再生を比べる

2つ目の四角形を選び、パネルで「縮小10」を選んで再生ボタンを押しました。

3つ目の四角形を選び、[ファイル]→[スクリプト]→[その他のスクリプト…]で、掲載コードを変えずに保存したJSXファイルを選びました。

「スクリプト警告」の確認が出たので[はい]を押しました。

掲載コードを実行して出た、セットCGM_Testの縮小10を1回実行するかを尋ねるスクリプト警告
2026-10-17撮影。Adobe Illustrator 2026 (30.8.2)、Windows 11 Pro (10.0.26200)。[ファイル]→[スクリプト]→[その他のスクリプト…]で掲載コードを実行したときの確認の実機画面。[はい]で1回実行します。
四角形実行した方法実行後の大きさ
1つ目記録しながら[拡大・縮小]10%16×10 pt
2つ目アクションパネルの再生ボタン16×10 pt
3つ目掲載コード(app.doScript)16×10 pt

実行前は、3つとも160×100 ptでした。

3つとも同じ16×10 ptになり、四角形の中心の位置は変わりませんでした。

寸法と位置は、操作の前後にスクリプトで読み取って比べています。

第3引数はtrueですが、[拡大・縮小]ダイアログは出ずに実行されました。

今回は、記録した「拡大・縮小」のダイアログ表示をパネルで切り替えていません。

記録・パネル再生・JSX再生の3つの四角形が、どれも同じ大きさに縮小された画面
2026-10-17撮影。Adobe Illustrator 2026 (30.8.2)、Windows 11 Pro (10.0.26200)。左から、記録しながら縮小した四角形、パネルの再生ボタンで縮小した四角形、掲載コードで縮小した四角形の実機画面。3つとも160×100 ptから16×10 ptになりました(四角形と見出しの文字はスクリプトで用意したものです)。

セット名とアクション名を逆にしたとき

掲載コードの app.doScript の2つの引数だけを入れ替えた試験用のコピーも、同じメニューから実行しました。

[はい]の後に、Illustratorの警告「オブジェクト「アクションを実行」は現在使用できません。」が出ました。

セット名とアクション名を逆にして実行したときの、オブジェクト「アクションを実行」は現在使用できません、という警告
2026-10-17撮影。Adobe Illustrator 2026 (30.8.2)、Windows 11 Pro (10.0.26200)。app.doScript のセット名とアクション名を入れ替えた試験用のコピーを実行したときに出た、Illustratorの警告の実機画面。

[続行]を押すと、四角形は変わらず、掲載コードの失敗の案内も出ませんでした。

[中止]を押すと、掲載コードの catch が働き、「アクションの実行に失敗しました」に続けて an Illustrator error occurred: 1346458189 ('PARM') と表示されました。

どちらの場合も、四角形の寸法は変わりませんでした。

何も選ばずに掲載コードを実行したときは、確認の前に「試験用のオブジェクトを選択してください。」と表示されて止まりました。

確かめた範囲と確かめていない範囲

確かめたのは、塗りだけの四角形を1つ選び、拡大・縮小を1つだけ記録したアクションを、パネルと掲載コードから1回ずつ実行した場合です。

複数のオブジェクトの選択、文字・グループ・ロックしたオブジェクト、ダイアログ表示をオンにした命令、保存を含むアクション、Mac、ほかのバージョンは確かめていません。

確認に使った練習用のセット「CGM_Test」は、終わった後に削除しました。

呼び出せないときの切り分け

  • アクションパネルに対象のセットとアクションがあるか確認する。アクション名とセット名の順を取り違えない。
  • セット名とアクション名を逆に渡すと、「オブジェクト「アクションを実行」は現在使用できません。」という警告が出る(2026年10月17日の確認)。
  • パネルから手動で再生し、選択対象やダイアログが原因で止まらないか確認する。
  • 文字の編集位置や文字範囲を選ぶ状態を抜け、オブジェクト全体を選択する。
  • アクションからJSXを呼ぶ場合は、インストール先、メニュー表示、記録、再起動を別々に確認する。旧版の報告を全バージョン共通の不具合とは扱わない。

旧AIA埋め込みコードを置き換えた理由

旧本文はAIAの文字列を一時ファイルへ書き出して読み込み、固定名のアクションセットを解除していました。同名の既存セットへ影響する可能性があるため、2026年10月3日に登録済みセットを指定する説明へ変更しました。AIAの名前欄の長さは、ASCIIの文字数と日本語のUTF-8バイト数を同一視できません。この記事ではAIAの生成コードを配布しません。

呼び出し・選択判定・キャンセル・例外処理は、Node.jsの模擬オブジェクト8ケースでも確認しています。

旧AIAを使った以前の自作試験(Illustrator 30.8.2/Windows)では縮小結果が期待値と一致せず、その原因は切り分けていません。

パネルで記録したアクションをこの記事のコードから呼ぶ形は、2026年10月17日に実機で確かめました(「実機で確かめた結果」の節)。

自分の環境でも、まずコピーした文書でパネル再生とJSX再生を比べてください。

JSXの保存と実行はスクリプトの始め方、操作対象の取得はIllustrator DOMの基本へ進んでください。

参照資料と確認範囲

よくある質問:JSXからアクションを呼ぶ

JSXから、登録済みのアクションを呼ぶには、どうしますか?

app.doScriptに、アクション名とセット名を渡します。アクションからJSXを呼び出す設定とは方向が異なるので、まずどちらを実行したいかを分けます。事前に、セット名・アクション名・選択対象・保存を含む命令の有無を確認します。

「アクションからJSXを呼ぶ」とは、何が違いますか?

メニューに登録したスクリプトを「メニュー項目を挿入」で指定する方式です。使用版でメニューに表示されるか、再起動後も記録が保たれるかを事前に確認します。インストール先、メニュー表示、記録、再起動は、別々に確認してください。旧版の報告を、全バージョン共通の不具合とは扱わないでください。

まず、何を試せばよいですか?

コピーした文書に四角形を作り、アクションパネルで自分専用のセット「CGM_Test」とアクション「縮小10」を作ります。縮小率10%の操作だけを記録し、パネルの再生ボタンで意図した結果になることを先に確認します。既存のセットへ同名で追加せず、保存・終了・ファイル削除などの命令を含めない試験用アクションを使います。

掲載コードは、何をしますか? 注意点は?

選択したオブジェクトの編集可否を確認してから、登録済みアクションを1回呼びます。自動でアクションを読み込んだり、既存セットを削除したりしません。SET_NAMEとACTION_NAMEは、実際の登録名へ合わせてください。第3引数はtrueですが、アクション側にダイアログを持たない命令や表示を無効にした命令があれば、必ず確認画面が出るとは限りません。このJSX自体は保存命令を呼びませんが、呼び出すアクションに保存が記録されていれば、その命令も実行されます。

途中でエラーになったら、元に戻りますか?

実行途中のエラーは、それまでの変更を取り消す保証がありません。失敗したときは、文書とアクションの各命令を確認し、コピーでやり直してください。

アクションを呼び出せないときは、何を確認しますか?

アクションパネルに対象のセットとアクションがあるか確認します。アクション名とセット名の順を取り違えないようにします。パネルから手動で再生し、選択対象やダイアログが原因で止まらないか確認します。文字の編集位置や文字範囲を選ぶ状態を抜け、オブジェクト全体を選択します。

セット名とアクション名を逆に渡すと、「オブジェクト「アクションを実行」は現在使用できません。」という警告が出ます(2026年10月17日の確認)。

旧記事のAIA埋め込みコードは、なぜ置き換えられたのですか?

旧本文は、AIAの文字列を一時ファイルへ書き出して読み込み、固定名のアクションセットを解除していました。同名の既存セットへ影響する可能性があるため、2026年10月3日に、登録済みセットを指定する説明へ変更しました。AIAの名前欄の長さは、ASCIIの文字数と日本語のUTF-8バイト数を同一視できません。この記事では、AIAの生成コードを配布していません。

この例は、実際のIllustratorで動作確認されていますか?

はい、2026年10月17日にIllustrator 2026(30.8.2)とWindows 11 Pro(10.0.26200)で確かめました。

パネルで記録した「縮小10」([拡大・縮小]10%)を、パネルの再生ボタンと掲載コードの両方で実行し、どちらも160×100 ptの四角形が16×10 ptになりました。

呼び出し・選択判定・キャンセル・例外処理は、Node.jsの模擬オブジェクト8ケースでも確認しています。

旧AIAを使った以前の自作試験では縮小結果が期待値と一致せず、その原因は切り分けていません。

複数のオブジェクトの選択、保存を含むアクション、Mac、ほかのバージョンは確かめていません。

参照資料は、Adobeの「アクションパネルの概要」と、Adobe Communityの作者によるapp.doScriptの呼び出し例(公式仕様書とは別の報告)で、最新は公式資料で確認してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次