|
【環境】 macOS 10.14.6 InDesign CC2014
【質問内容】 JavaScriptで「フレームグリッドを隠す」を実行する方法を検証中です。 menuActionTitleToStringを調べると、「フレームグリッドを表示」がありました。 これを下記のようにして実行するとエラーになります。
//フレームグリッドを隠す try{ app.menuActions.item('$ID/Show Frame Grid').invoke(); } catch(e){}
しかし、手動でフレームグリッドの表示・非表示をした後にエラーが発生しませんが、 なぜか「隠す」動作になります。
疑問1 「Show」なのに「隠す」動作は正常なのでしょうか。 疑問2 手動でフレームグリッドの表示・非表示をした後でないと、動作しないのはなぜでしょうか。
情報等がございましたらよろしくお願いいたします。
|
No.10215 2022/02/04(Fri) 08:30:08
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0) Gecko/20100101 Firefox/91.0
|
Re: 「フレームグリッドを隠す」を実行したい / (z-)  |
|
|
No.10216 2022/02/04(Fri) 09:21:50
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15
|
|
Re: 「フレームグリッドを隠す」を実行したい / お〜まち  |
|
|
|
InDesignのメニューの一部にはメニュー名が変わるものがあるんですよね。「フレーム枠を表示/隠す」のほか、「定規を表示/隠す」「テキスト連結を表示/隠す」などですね。 実はこれ、スクリプトのmenuActionでは、IDが同じで名前が状況によって異なるんです。
ですから名前で指定しようとすると、状況に応じて次のどちらかを使うことになります。間違って逆の方を使うと「そんなメニュー名はないよ」ってエラーになります。 app.menuActions.item("フレーム枠を表示").invoke(); app.menuActions.item("フレーム枠を隠す").invoke(); しかし、IDは同じですから app.menuActions.itemByID(24331).invoke(); で実行すると、メニュー名がどちらの場合でも実行できます。
でもそうすると、現在どちらの状況かというのは把握しにくいです。ですから(z-)さんの指摘の通り、表示に関するプロパティで変更する(つまりmenuActionを使用しない)のが最も確実な方法です。 「フレーム枠を表示/隠す」の場合、アプリケーションやドキュメントにあるViewPreferenceオブジェクトを使用します。 app.viewPreferences.showFrameEdges = false Document.viewPreferences.showFrameEdges = false などですね。
|
No.10217 2022/02/04(Fri) 11:11:49
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.175 Safari/537.36
|
|
Re: 「フレームグリッドを隠す」を実行したい / お〜まち  |
|
|
|
追記
疑問2 初期状態では「フレーム枠を表示/隠す」のメニュー名は片方(現在表示されている方)しか使えませんが、手動で「フレーム枠を表示/隠す」を操作するともう片方のメニュー名も使えるということですが、初期状態ではすべてのメニュー名がロードされるのでないということだと思います。
疑問1 メニューのIDが同じなので正常です。
|
No.10218 2022/02/04(Fri) 11:38:02
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.175 Safari/537.36
|
|
Re: 「フレームグリッドを隠す」を実行したい / (z-)  |
|
|
|
追記
疑問1 これは「命令の名前」というよりは「メニュー項目の文言」として捉え方をすると少ししっくりくるかもしれません。自分も前に疑問が湧いて人に詰め寄りました…
|
No.10219 2022/02/04(Fri) 12:28:07
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15
|
|
Re: 「フレームグリッドを隠す」を実行したい / (z-)  |
|
|
|
× として捉え方をすると ○ として捉えると
編集パスワード失念しましたすみません…
|
No.10220 2022/02/04(Fri) 12:30:19
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15
|
|
Re: 「フレームグリッドを隠す」を実行したい / chirico |
|
|
|
(z-)さん お〜まちさん ご教示ありがとうございます。 たいへん有効なヒントになりました。 いただいた情報を元に、いろいろ試してみます。
なお、最初の投稿が緑色の文字になったのは、特に意図はありません。 「投稿する」ボタンを押す時に、近くの緑色ボタンを押してしまったからです。
|
No.10221 2022/02/04(Fri) 13:01:55
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0) Gecko/20100101 Firefox/91.0
|
|
Re: 「フレームグリッドを隠す」を実行したい / あるふぁ(仮) |
|
|
|
フレームグリッドを隠す話を聞いたらフレーム枠を隠す話になってしまって質問者さん困惑したのではw
フレームグリッドの非表示は app.activeDocument.cjkGridPreferences.showAllFrameGrids=false; ですね。
|
No.10230 2022/02/17(Thu) 18:20:06
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
|
|
Re: 「フレームグリッドを隠す」を実行したい / (z-) |
|
|
|
ああっ、気付かなかったw すみませんほんとすみません!w
|
No.10231 2022/02/18(Fri) 10:17:53
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15
|
|
Re: 「フレームグリッドを隠す」を実行したい / chirico |
|
|
|
あるふぁ(仮)さん アドバイス、ありがとうございます。希望通りの動作ができました。 ご指摘の通り、操作したかったのはフレームグリッドについてです。 スレを立てた後に、早々とレスを複数いただいたので、何となく言い出しにくくなっていたました。 有益な情報を多数得られたので、その後自分で調べていましたが、なかなかうまく行きませんでした。 そんな中での追加情報でしたので、大変助かりました。
(z-)さん これからもいろいろと教えてくださると嬉しいです。
|
No.10233 2022/02/28(Mon) 08:44:33
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:91.0) Gecko/20100101 Firefox/91.0
|
|