Skip to main content
Participant
March 24, 2023
Answered

アクティブなアートボードをスクリプトから変更することはできますか?

  • March 24, 2023
  • 2 replies
  • 1670 views

Illustratorのプロパティに、アクティブなアートボードという数字があるのですが、これをスクリプトから変更することはできるのでしょうか?

AppleScriptのselectobjectsonactiveartboardコマンドとevery text frame whose selected is trueを併用して
対象のアートボード内のテキストフレームの内容を変更したり、
set ruler origin to {0, 0}を実行して同じ座標でページアイテムを編集しようと考えています。

    This topic has been closed for replies.
    Correct answer Ten A

    とりあえずJavaScriptで…(ASわかりません…)

    var idx = 0;
    app.activeDocument.artboards.setActiveArtboardIndex(idx);


    でアートボードをアクティベート可能です。これをactiveViewに持ってくるには

     

    app.executeMenuCommand("fitin");

     

    を使ってアートボードを全体表示するのが楽ちんです。
    ASで同様のことが出来るのかは、よくわからないんですけど、JavaScriptを実行できるはずなんで、これをうまく使うという事も出来るかと思います。

    2 replies

    Ten A
    Community Expert
    Community Expert
    March 24, 2023

    スクリプト自体は動作しているはずですね。

     

    app.activeDocument.artboards.setActiveArtboardIndex(0);
    app.executeMenuCommand("fitin");

     

    でインデックスを変更すればアートボード表示が変わるはずです。 

    FTakaAuthor
    Participant
    March 25, 2023

    2行目のアートボードを全体表示を使わずに、

    ファイルメニュー → スクリプト経由でjavascriptを実行をしているのですが、インデックスが変わりませんが、エラーも起きていないようです。

     

    monokano
    Community Expert
    Community Expert
    March 25, 2023
    app.activeDocument.artboards.setActiveArtboardIndex(2);
    alert(app.activeDocument.artboards.getActiveArtboardIndex());

    実行すると、アクティブアートボードのインデックスがちゃんと変わるのを確認できました。

    Ten A
    Community Expert
    Ten ACommunity ExpertCorrect answer
    Community Expert
    March 24, 2023

    とりあえずJavaScriptで…(ASわかりません…)

    var idx = 0;
    app.activeDocument.artboards.setActiveArtboardIndex(idx);


    でアートボードをアクティベート可能です。これをactiveViewに持ってくるには

     

    app.executeMenuCommand("fitin");

     

    を使ってアートボードを全体表示するのが楽ちんです。
    ASで同様のことが出来るのかは、よくわからないんですけど、JavaScriptを実行できるはずなんで、これをうまく使うという事も出来るかと思います。

    FTakaAuthor
    Participant
    March 24, 2023

    貴重な情報をご提供いただきありがとうございます。

    色々と試行錯誤を繰り返してみた結果、かなり古いMacでは望み通りのスクリプトを作成することができたのですが、Catalina(MacOS)+Illustrator2020以降の環境では、教えて頂いたスクリプトが全く動きませんでした。

    スクリプトを作成するのに、Windowsのメモ帳・Macのmi・MacのBrakets全く動作ぜず、

    Javascript動作確認のためにExtendScript ToolkitCS6を使用してようやく動作確認ができました。

    (OSとIllustratorが古すぎて、仕事では使えないのですが...)

     

    Applescript側の動作確認はIllustratorCS6を使って確認できました。

    tell application "Adobe Illustrator"

     activate

     set ArtboardIndex to 0 -- AppleScript側で変数を宣言

     do javascript "app.activeDocument.artboards.setActiveArtboardIndex(" & ArtboardIndex & ");"

    end tell

    monokano
    Community Expert
    Community Expert
    March 24, 2023

    macOS Big Sur

    Illustrator 2023 v27.3.1

     

    Ten Aさんのスクリプトはちゃんと動作しましたよ。

    アートボードパネルでアクティブなアートワークが選択状態にならないので、

    動作していないと誤認しているのでは?