InDesign で複数の置換を一括実行

InDesign で複数の置換を実行したいことがある。毎回検索・置換ダイアログを出してやるのは大変だ。

そんなとき便利なスクリプトを見つけた。

JavaScriptで複数一括置換【スタイル指定機能を追加】: mottainaiDTP
http://mottainaidtp.seesaa.net/article/450695777.html

環境:InDesign CC 15.0.1

(1)上記サイトでサンプルデータをダウンロード、解凍する。

(2)InDesign のスクリプトパネルで「右クリック>Finder で表示」をクリック。

そこに1の中にある 02-replace_0615h.jsx を入れる。

(3)置換のセットをテキストファイルで作成する。

以下のようにタブで区切って検索語と置換語を、改行区切りで入力していけばいい。

[検索語1] [置換語1]
[検索語2] [置換語2]
[検索語3] [置換語3]
[検索語4] [置換語4]

検索語や置換語に正規表現も使える。InDesign で検索・置換するときと同じように記入すればいい。

txt で保存。

(4)対象のドキュメント(未保存の場合は保存しておく)を開いた上で、2のスクリプトを実行。3のファイルを指定。

対象の文字スタイルや段落スタイルがあればチェックを入れて指定する。置換したあとの文字列に対しても文字スタイルを指定できる(赤色に塗ったりして分かりやすくしたりするのに便利)。

検索範囲も指定できる。

OK をクリックして実行。

これでテキストファイルで指定した置換を一気に実行できる。

ただし、検索語を削除する(置換語を空白にすることでできる)ような置換はこのスクリプトでは実行できないようだ。★などの適当な語に一旦置換して、後で普通に検索・置換ダイアログで削除するといいだろう。

また、このスクリプトを実行後に検索・置換ダイアログのスタイル欄に、実行したスタイルが表示される。確認のために表示されたほうがいいならばそのままでいいけど、もし表示させたくない場合はスクリプトの最終行あたりにある以下の行の // を削除する。

変更前:

// app.changeGrepPreferences = NothingEnum.nothing;
// app.findGrepPreferences = NothingEnum.nothing;

変更後:

app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;

詳細はスクリプト配布サイトの解説および解説動画で説明されてある。