InDesignで非表示にできないメニューを非表示にしたい
久しぶりにInDesignのまともな記事を書きます。といってもハックなんですが(^^;
InDesignで使わないメニュー項目を非表示にする機能は、皆さんご存知だと思います。メニューから[編集]→[メニュー...]ですね。ダイアログで表示したくないメニューの目のアイコンをクリックすることで表示しなくなるわけです。
ところが、ここ数年の間に追加されたメニューの中には、このダイアログに表示されていないものがあります。
正式な修正依頼のルートとしては、UserVoiceに要望として投稿するのですが、それでは時間がかかります。手っ取り早くできる方法がないかなーと思って探ってみたらいい方法を見つけたよ、というのが今回の趣旨です。
ではどんなメニュー項目がダイアログに存在しないのか、それを調べるために、ダイアログ中の全メニューを非表示にしてみたのがこちらです。
[ヘルプ]メニューにあるもの、および[InDesignを終了]は仕方がないとして、それ以外のものは消したいですよね。
実はこの表示/非表示の設定はファイルに保管されているので、ファイルを改変することでInDesignを使わなくても変更できます。ファイルの場所は
Windows:c:\Users\[username]\AppData\Roaming\Adobe\InDesign\Version xx-J\ja_JP\メニューセット
Mac:/Users/[username]/Library/Preferences/Adobe InDesign/Version xx-J/ja_JP/メニューセット
です。ここにある拡張子がinmsのファイルがメニューの表示/非表示を保管しています。中身はXMLなので、テキストエディットやメモ帳などで編集できます。
このXMLは大きく2つのブロックに分かれています。
- hidden-submenu-list:非表示にするサブメニュー項目
- hidden-menuitem-list:非表示にする実行メニュー項目
です。このうちhidden-menuitem-listの方が実際に実行するためのメニュー項目が入っています。例えば、[チェックイン...]の項目を非表示にすると次のエントリが作成されます。
<hidden-menuitem> <action-id value="0x15b01" name="KBSCE File menu:kSaveAVersion..."></action-id> </hidden-menuitem>
[保存]は
<hidden-menuitem> <action-id value="0x104" name="KBSCE File menu:&Save"></action-id> </hidden-menuitem>
[Bridgeで参照...]は
<hidden-menuitem> <action-id value="0x124" name="KBSCE File menu:FileForBrowse"></action-id> </hidden-menuitem>
になります。
つまり、1つのメニュー項目に対して「value」と「name」という属性を持っているので、これが分かれば非表示にできないメニュー項目も非表示にできる可能性があるということですね。
ということで「value」と「name」を探す旅に出るわけですが、意外とあっさり見つかりました。しかも、「name」は不要で、「value」だけで可能です。
実はこのvalue、メニューアクションのID(16進数)なんですね。スクリプトからメニュー項目を実行したい場合、ExtendScriptでは、
app.menuActions.itemByID(24833).invoke(); //ドキュメント設定...
というように書きます。人によっては
app.menuActions.item("ドキュメント設定...").invoke();
というようにメニュー名で指定することもあるかと思いますが、InDesignのメニュー名はバージョンによって異なるケースがあるので私は使いません。
上の例ではメニューアクションのIDを10進数で指定していますが、XMLの中では16進数で指定するということです(残念ながら10進数で試してもダメでした)。
メニューアクションのIDを取得するには次のページを参考にしてください。古いですが今でも動きます。
Show InDesign's menu actions | Peter Kahrel
ということで、今回非表示にしたいメニューについては次の記述をhidden-menuitem-listの中に記述することで実現できます。上から順に「Adobe Stock を検索...」「Publish Online...」「Publish Online ダッシュボード...」「CC ライブラリ」です。
<hidden-menuitem> <action-id value="0x12a"></action-id> </hidden-menuitem> <hidden-menuitem> <action-id value="0x1bb06"></action-id> </hidden-menuitem> <hidden-menuitem> <action-id value="0x1bb08"></action-id> </hidden-menuitem> <hidden-menuitem> <action-id value="0x20d77"></action-id> </hidden-menuitem>
「脚注と後注を変換する...」はねえ、10進数で「-16769022」なんだな。これをどうやって16進数に変換するのかという知見は持ってないので、プログラムに詳しい人、教えてください。