Skip to main content
ASKST
Inspiring
February 12, 2024
解決済み

Illustrator スクリプト オブジェクトの取得について

  • February 12, 2024
  • 返信数 3.
  • 729 ビュー

とても初歩的な質問で申し訳ないのですが、Illustratorのスクリプトは必ず選択を介さないと編集できないのですか?

例えばすでにあるオブジェクトから特定のオブジェクトをコピーしたいとして、

var item = app.activeDocument.pageItems.getByName("テスト");

 と書いた後に、app.executeMenuCommand("copy")と("pasteInPlace")しようとしてもできないのですが、一度seletionをどこかで入れる必要があるのでしょうか。

(書き方が悪いのか、こういった取得方法のオブジェクトをseletionできてないぽいのですが…)

このトピックへの返信は締め切られました。
解決に役立った回答 ASKST

自己解決しました

アイテム.selected = true;
にすることで選択でき、コピーも可能でした

返信数 3

Ten A
Community Expert
Community Expert
February 12, 2024

メニューコマンドを介しての操作が使えるのは限定的なケースもあります。まずはオブジェクトモデルをストレートに操作する手法を学んでください。

例えば、ドキュメント上の最前面にあるオブジェクトを複製する場合は、

 

app.activeDocument.pageItems[0].duplicate()

 

のようにオブジェクトに対してduplicateメソッドを利用して複製を行います。

各オブジェクトについてのプロパティやメソッドを調べるには以下のURLのPropertyExplorerを利用すると良いでしょう。

Property Explorer | Adobe Exchange

ASKST
ASKST作成者
Inspiring
February 12, 2024

サンプルの提示や情報提供ありがとうございます。
特有のメソッドを調べるのに苦労しておりました。助かります。

ajabon grinsmith
Community Expert
Community Expert
February 12, 2024

解決したようですがいちおう。

スクリプトでは移動、削除、カラー値変更などほとんどの操作は選択されていなくてもできるのですが、クリップボード関連(カット、コピー)の操作は選択されている必要があります。

またメニューアイテムコマンドを実行する場合も、これはスクリプト実行というよりは手で行うべきメニュー項目の実行をスクリプトから行ったというニュアンスになるため、基本的に選択範囲を対象とした処理となります。

ASKST
ASKST作成者
Inspiring
February 12, 2024

これはスクリプト実行というよりは手で行うべきメニュー項目の実行をスクリプトから行ったというニュアンス
この表現がとてもしっくり来ました
ありがとうございます

ASKST
ASKST作成者解決!
Inspiring
February 12, 2024

自己解決しました

アイテム.selected = true;
にすることで選択でき、コピーも可能でした