「スクリプちん」のサイトデザインをリニューアル作業中です…^^;

【InDesignのスクリプト作成】検索置換クエリを実行する

当ページのリンクには広告が含まれています。
スクリプちん:InDesignのJavaScript 「検索・置換クエリの実行」

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

この検索置換クエリはスクリプトでも呼び出して実行することができるので、細かな検索置換の設定はスクリプト内に書く必要がないので便利です。

Adobe公式サイト  Adobe InDesignの機能を詳しく見てみる

目次

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

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

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

コードサンプル

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

#target indesign

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

実行結果

下記は、スクリプトで「text_あいうえお」という置換クエリを実行した結果です。

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

サンプルコードの解説

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

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

第2引数に指定できるのは、全部で以下の5種類。

  • テキスト: 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の置換クエリをスクリプトで呼び出した直後の検索パネル:プリファレンスはきちんと表示されない
スクリプトでクエリをロードしても、全ての情報がパネルに表示されるわけではない

 Udemy InDesign人気講座を見てみる icon

 Udemy 【仕事で使えるInDesign】「仕事で通用する人材」になる〜業界の専門知識も学べる〜 icon

よかったらシェアしてね!
  • URLをコピーしました!
目次