InDesignの表示倍率を記憶して適用するスクリプトおよび実寸表示スクリプトの紹介

かなり遅いですがあけましておめでとうございます。昨年は1日から「無事です」と書き込まなきゃいけなかったので今年はのんびりスタートです。

今年に入ってから今日までに、Illustrator 29.2.1(14日)、InDesign 20.1(22日)が来ています。これらについては別途記事を起します。今回は、今年一発目のスクリプトを書いたのでその話をします。


発端となったのはコミュニティフォーラムの投稿です。

InDesignの表示メニュー(ZOOMツールダブルクリック含む)の『100%(ショートカット⌘1)』表示で実寸サイズで表示されません。

詳しくはそちらを見ていただきたい(解決方法を追記しました。後半にあります)のですが、その中で質問者さんから次のようにありました。

せめて、自分で指定したズーム倍率数を登録し、ショートカットキーで使用できるプラグイン機能などあればと切に願います。

表示倍率を取得・変更するのはそんな難しい話ではないのですが、問題は記憶場所です。このためにわざわざ新しいテキストファイルを作成するのも面倒なので、アプリケーションのどこかに記憶しておきたいなあというところ。しかもアプリケーションを終了しても忘れない場所ですね。候補としては

  • app.label(アプリケーション自体のスクリプトラベル)
  • app.userName(InCopy連携をする際のユーザー名)

があったんですが、labelは他のスクリプトと競合する可能性、userNameはInCopyを使わないという条件付であまり好ましいものではないんですよね。

色々探した結果、「アプリケーションデフォルトのテキスト変数」にしました。アプリケーションデフォルトなので、記憶した状態で新規ドキュメントを作成したら引き継がれてしまうんですが、気になるようでしたらドキュメントから削除してもらえばいいので、これで行きます。


コードはこれだけ。

if (app.documents.length < 1) {
    alert("適当なドキュメントを開くか新しく作成し、\r" + 
        "表示倍率をお好みの状態に設定してください。\r" + 
        "その状態でこのスクリプトを再度実行してください。");
    exit();
}
if (app.activeWindow.constructor.name == "StoryWindow") exit();
var zp = app.textVariables.itemByName("ZoomPercentage");
if (zp.isValid) {
    app.activeWindow.zoomPercentage = Number(zp.variableOptions.contents);
} else {
    zp = app.textVariables.add();
    zp.name = "ZoomPercentage";
    zp.variableType = VariableTypes.CUSTOM_TEXT_TYPE;
    zp.variableOptions.contents = "" + app.activeWindow.zoomPercentage;
    alert("表示倍率をテキスト変数の「ZoomPercentage」に記憶しました。\r" +
        "ドキュメントを開いていない状態で、テキスト変数を確認・削除できます。");
}

ZIP圧縮されたファイルをダウンロード

使い方

  1. ダウンロードしたファイルを解凍し、作成された「RecordZoomPercentage.jsx」を「Scripts Panel」フォルダに入れてください。
  2. InDesign上で適当なドキュメントを開き(新規作成でもよい)表示倍率を調整します。
  3. スクリプトパネルから「RecordZoomPercentage.jsx」をダブルクリックすると現在の表示倍率が記憶されます。
  4. 表示倍率を適当に変更して、「RecordZoomPercentage.jsx」をダブルクリックすると記憶された表示倍率に戻ります。
  5. お好みでキーボードショートカットを割り当ててください。
  6. 記憶された表示倍率を変更・削除したい場合は、ドキュメントを開いていない状態でテキスト変数の管理ダイアログを開き、「ZoomPercentage」を削除、2.およ3.を実行します。

注意事項

テキスト変数「ZoomPercentage」の値を編集して表示倍率を変更しないでください。なぜか、ドキュメントのタイトルや下部に表示されている倍率と、スクリプトで取得する倍率が異なります。表示倍率100%の場合、スクリプトで取得または設定する倍率80%です。そのため、テキスト変数を書き換える場合は目的の倍率0.8を掛けた値にしなければなりません。なんだかなあ


実寸表示をしたい方はこちら!

ここまで書いてもう一度調べたら、実寸表示をしてくれるスクリプトがありました。それがこちら。

PhysicalSize | Check Your Design At True 1:1 Magnification

CS4~CC対応ということで非常に古いのですが、2025(Windows)でも問題なく動きましたので使い方を説明します。

1. リンク先ページの一番下、「Download PhysicalSize.zip」をクリックしてダウンロードします。

2. 解凍してできたファイルを「Scripts Panel」フォルダに移動します。

3. InDesignのスクリプトパネルから「PhysicalSize.jsx」をダブルクリックします。

4. 次の画面のようになりますので、グレーの正方形の幅もしくは高さを定規で測り、その長さをダイアログに入力します。

5. [OK]ボタンをクリックすると次のような表示が出て消えます。

6. 以上で設定は完了です。右クリックメニュー(コンテキストメニュー)に「Physical Size」があります。

7. キーボードショートカットの編集画面で機能エリアを[スクリプト]にします。するとコマンドの一番上に「Physical Size」がありますので、それにショートカットを割り当てます。

これでショートカットでも原寸表示ができるようになります。

PhysicalSize.jsx」を使うことはもうありません。削除しても機能は残っていることを確認しましたので、削除しても構いません。ただ、環境設定をリセットしてしまうと機能が削除されることが予想されますから(私のスクリプトもそうです)その時は再実行する必要があると思います。