DTP作業者にとっての難易度 ★☆☆☆☆(1)
InDesignで検索/置換により小数点第二位を四捨五入する方法を考えてみました。置換の回数が多くなるため、テキスト形式の置換リストを使いスクリプトで連続実行します。なお、複数一括置換のためのスクリプトは以前にも公開しましたが不完全な部分もあったため、今回はシンプルなスクリプトをあらためて作りました。
※不備があるかもしれません。お仕事で使う場合は十分にテストを行い必ずバックアップをとってから作業してください。
InDesignで四捨五入する
サンプルデータ内の「説明_0307a.txt」にも書いたように置換は以下のような内容になっています。コツコツ処理しているだけです。
[1行目]小数点第二位が0〜4の場合、切り捨てる
[2〜11行目]小数点第二位が5〜9の場合、切り上げる
(ただし小数点第一位が9の場合は〓0とする/〓は上の位を1増やす準備)
[12〜21行目]小数点第一位が〓の場合、1の位を1加算
(ただし1の位が9だった場合は〓0とする)
[22〜31行目]ある位が〓0の時、上の位を1加算
(ただし上の位が9だった場合は〓0とする)(カンマがあった場合も処理)
以降22〜31行目と同じ処理を繰り返して〓0を上の位にずらしていく
[112行目]いちばん上の位が〓0の場合、10とする
一般的にはスクリプトのround関数で処理すべき作業だと思うのですが、自信がないため今回の方法をとりました(強引だと思います)。時間があったらround関数による処理も試したいと思っています。
Jeditで四捨五入する
InDesignで使用した置換リストとほぼ同じものを使うとJeditでも四捨五入を実現することができます。
文章中の数字を四捨五入して頭に「約」をつける……などという使い方もできますね(InDesignでやっても構わないのですが)。
複数一括置換の際の注意点
◇置換設定を不用意に使わない
置換設定により「文字列が削除されないケース」「置換が実行されないケース」が生じることがあります。使用を避けたほうが賢明だと思います。
◇検索対象が「選択範囲」の際は注意が必要
検索対象が「選択範囲」の場合、置換後に文字列の一部が選択範囲から外れることがあります。そのまま他の置換を連続実行すると意図通りの置換がおこなわれない可能性があるため注意が必要です。
サンプルデータはこちら《multiReplace_2020_0309b.zip》です。