セルのコンテンツに応じてライブで段落スタイルを適用する

発端はこちら。

セルに入る文字に応じてそれぞれの段落スタイルを適用したい、と。

どこかで似たような話があったなあ、と思ったらこれです。

セルのコンテンツが特定の文字列の場合に、セルの塗りを設定する

こちらのコメントで、「正規表現を使用したい」「書式を変更したい」という要望があったのを覚えていましたので、これを機会にちょっと変更してみました。なお、元記事は「A.既に入力が完了している場合」と「B.入力中に塗りを自動設定したい場合」の2種類のスクリプトを作りましたが、今回は手抜きで「B.入力中に塗りを自動設定したい場合」のみです。


動作イメージ

動作環境・制限事項

確認してませんが、CS5以降であれば動くんじゃないかなと思います。次のような制限事項があります。

  • 段落スタイルグループには対応していません。
  • 正規表現ExtendScriptの仕様で使えるものに制限されますので、InDesignで使用可能な正規表現が使えない場合があります(~Kとか。あと先読み後読みにも注意)。

ダウンロード

cellParaStyle.zip」のダウンロードはこちら

使い方

準備

ダウンロードしzipファイルを解凍し、「cellParaStyle_start.jsx」「cellParaStyle_stop.jsx」を、InDesignの[Scripts Panel]フォルダに入れてください。それ以外のファイルはどこでもよいです。

設定(正規表現と適用する段落スタイルの紐づけ)は、任意のテキストファイルを作成し、その中に記述します。サンプルとして「sampleParaRegEx.txt」を用意してありますので、それを読んでください。↓中身はこれです(タブ記号は[TAB])。

###### 指定文字列と段落スタイルの設定 ######
#
# #で始まる行はコメントとして扱われます。
# また、空行は無視されます。
#
# 正規表現文字列と段落スタイル名をタブで区切って記述します。
# 段落スタイルグループには対応していませんので注意してください。
# 例
# 〒\d{3}-\d{4}[TAB]郵便番号スタイル
#
# 正規表現は上から順に評価し、一致した時点で以降の設定を無視します。
# 最下行にはすべての文にマッチ(.*)を入れて標準の段落スタイルを指定してください。
#
^[○×◎△-]$[TAB]td.center
^[\\¥¥]?\d{1,3}(,\d{3})*円?$[TAB]td.right
^[1-9]?[0-9](\.\d+)?[%%]$[TAB]td.right
.*[TAB]td
実行

InDesignのスクリプトパネルから「cellParaStyle_start.jsx」を実行します。設定ファイルを指定するダイアログが出ますので、k設定を記述したテキストファイルを指定してください。

あとは普段通りの操作を行ってください。

終了

必要なくなったら「cellParaStyle_stop.jsx」を実行してください。実行しなくてInDesignが終了するときには同時に終了します。