2018年11月19日

フォルダ内のGREPクエリをスクリプトで一括実行する[InDesign]

DTP作業者にとっての難易度 ★★★☆☆(3)

【注意】本スクリプトはドキュメントの内容を変更するものです。また、一時的に「GREP」フォルダなどの名称を変更します。必ずドキュメントや、各フォルダのバックアップをとってからご使用ください。

※2019.9.11サンプルデータを更新/置換対象を「ドキュメント」「ストーリー」「選択範囲」から選べるようダイアログを追加しました。

※2020.1.07サンプルデータを更新/APFSフォーマット環境でクエリの実行順が乱れることに対応しました(クエリ名の順に実行)。

※本スクリプトはMac用です。Windowsでは正しく動作しません。


InDesignで作業をしていると検索/置換のためのクエリ数が増え、管理に困ることがあります。できればクライアントや媒体ごとにクエリを収めるフォルダを分けておきたいとお考えの方は多いのではないでしょうか。今回は、そのように分けたフォルダ内のクエリを一括実行するスクリプトを考えてみました。

※検索/置換を一括実行せずGREPフォルダの切り換えのみを行いたい場合は「InDesignの検索/置換用「GREP」フォルダをスクリプトで切り換える」(http://mottainaidtp.seesaa.net/article/464972607.html)を参照ください。


スクリプトの内容

スクリプトの大ざっぱな流れとしては
クエリを収めたフォルダをダイアログで選択(フォルダ名を記憶)→元々の「GREP」フォルダの名称を一時的に「GREP_ original_saved」に変更(ダイアログで「GREP」フォルダを選択した場合は変更不要)→先にダイアログで選択したフォルダの名称を「GREP」に変更(同)→「GREP」内のクエリを全部実行→「GREP」フォルダの名称を元に戻す(同)→「GREP_ original_saved」フォルダの名称を「GREP」に戻す(同)
ということになります。

※スクリプト実行中にエラーが発生した場合、フォルダ名が変わったままになる可能性があります。その場合は手動でフォルダ名を戻してください。


使い方

クエリを収めたフォルダは「Find-Change Queries」内(「GREP」フォルダと同階層)に置いてください。クエリを収めたフォルダの名称は「GREP〜」とします(「GREP_A社の作業用」など)。

※「Find-Change Queries」の場所についてはアドビのサイトを参照してください。


ドキュメントを表示した状態でスクリプトを実行してください。アクティブドキュメントのみが処理対象となります。
動画でも触れていますがドキュメントに存在しない設定(段落スタイル、文字スタイル、スウォッチなど)がクエリに含まれている場合、アラートが表示されることなく意図しない結果になることがあります。事前に個々のクエリーの設定が、すべてドキュメントに存在することを確認した上でご使用ください。

※今回、処理対象はアクティブドキュメント全体としました。「すべてのドキュメント」「ストーリー」「選択範囲」などを対象にしたい場合は132行目「mydoc.changeGrep();」を書き換えてみてください。

※2019.9.11サンプルデータを更新/置換対象を「ドキュメント」「ストーリー」「選択範囲」から選べるようダイアログを追加しました。

※2020.1.07サンプルデータを更新/APFSフォーマット環境でクエリの実行順が乱れることに対応しました(クエリ名の順に実行)。


2020.1.07版サンプルデータはこちら《minimum_2020_0107b.zip》です。

2019.9.11版サンプルデータはこちら《minimum_2019_0911a.zip》です。

古いサンプルデータはこちら《minimum_2018_1118a.zip》です。
posted by 照山裕爾 at 04:55| Comment(3) | InDesign-書式・スタイル | このブログの読者になる | 更新情報をチェックする