検索置換クエリを実行する

ExtendScriptでInDesignの置換クエリを実行する InDesignスクリプト

InDesignでは、検索置換の内容を「クエリ」として保存しておこことができます。

この検索置換クエリは、マウスでの作業のときはもちろんですが、スクリプトでも呼び出して実行することができるので便利です。

公式サイト Adobe Indesignを無料で始める

InDesignドキュメントサンプル:置換クエリを作成する

InDesignのドキュメントに、置換クエリ「text_あいうえお」を作成しておきます。
内容は以下。

  • 「あいうえお」を「まみむめも」に置換 
  • 置換形式に、段落スタイル「アイウエオ」を選択
  • ひらがなとカタカナは区別する(他のオプションも全部チェックしてみた、けど、今回は関係ないので割愛)
スクリプトを実行するInDesignドキュメント:テキストフレームに「あいうえおアイウエオ」、段落スタイル「アイウエオ」
InDesignで置換クエリ「text_あいうえお」を作成

コードサンプル

JavaScriptでは、以下の要領で置換クエリを実行します。

#target indesign

// クエリの内容を呼び出す
app.loadFindChangeQuery("text_あいうえお", SearchModes.TEXT_SEARCH);
// 置換実行
app.changeText();

実行結果

InDesignで置換クエリ「text_あいうえお」を実行:段落スタイルも適用、ひらがなとカタカナの区別もok
「あいうえお」が「まみむめも」に置き換わりました。

サンプルコードの解説

コードの4行目で、作成したクエリを呼び出しています。

今回はテキスト置換のクエリなので、loadFindChangeQueryの第2引数にSearchModes.TEXT_SEARCHを指定しています。

指定できるのは以下です。

  • テキスト: SearchModes.TEXT_SEARCH 
  • 正規表現: SearchModes.GREP_SEARCH
  • オブジェクト: SearchModes.OBJECT_SEARCH
  • 字形:  SearchModes.GLYPH_SEARCH
  • カラー: SearchModes.COLOR_SEARCH
app.loadFindChangeQuery("text_あいうえお", SearchModes.TEXT_SEARCH);

置換の実行は、appに対して実行するとその時に開いている「全てのドキュメント」に対しての実行になります。

以下は、InDesignのアクティブドキュメントに対して実行する例。

app.activeDocument.changeText();

検索パネルの表示上の注意

loadFindChangeQueryを実行すると、検索パネルに呼び出したクエリの内容が反映されます。

その際、「全角・半角を区別」や、「かなを区別」などの表示は、検索パネル上には反映されないようです。

クエリの名称も、[カスタム]となっています。

検索パネルでは、loadFindChangeQueryを実行する直前のオプション選択の状態が、そのまま表示されているので、「パネル表示を見て確認してみよう!」と思って見てみると、ちょっと混乱してしまうので、注意が必要です。

以下の画像は、「二重点線からEMダッシュ」を表示した状態で、loadFindChangeQueryで「text_あいうえお」を呼び出した直後のパネル表示です。

「かなを区別」のチェックが外れていますが、ドキュメントの例の「アイウエオ」は置換されませんでした。

InDesignの置換クエリ「二重点線からEMダッシュ」を選択
「二重点線からEMダッシュ」を選択
InDesignの置換クエリをスクリプトで呼び出した直後の検索パネル:プリファレンスはきちんと表示されない
スクリプトでクエリをロードしても、全ての情報がパネルに表示されるわけではない

公式サイト Adobe Indesignを無料で始める

コメント

タイトルとURLをコピーしました