InDesign CS6自動化作戦 (InDesign CS6 Automation Operation)

該当する文字列があるかどうか全ページに渡って調べる

■プログラム説明(ソースコード説明)
 全ページ内に特定の文字があるかどうかを調べます。prompt()を使ってユーザーに調べたい文字を入力させます。正規表現文字列も使えます。このため*や.など、そのまま入力しただけでは駄目な文字がいくつかあります。
 全ページ数はapp.activeDocument.pagesに入っているので、for()でページ数分だけ繰り返すようにします。次にページ内にあるテキストフレームの数だけ内容を読み出してmatch()で一致する文字があるかどうかを調べます。

■ソースコード
str = prompt("調べる文字を入れて下さい(正規表現)","今日");
regObj = new RegExp(str,"g");
pageObj = app.activeDocument.pages;
for (i=0; i<pageObj.length; i++)
{
for (j=0; j<pageObj[i].textFrames.length; j++)
{
txt = pageObj[i].textFrames[j].contents;
result = txt.match(regObj);
if (result)
{
alert(1+i+"頁:"+txt.substr(0,8)+"...で始まるテキストフレームに該当文字があります。");
}
}
}


■使い方
1:あらかじめドキュメントを開いておきます。
2:スクリプトを実行します。
3:文字入力ダイアログが表示されるので調べる文字を入れます。正規表現も使えます。
4:全ページを調べ該当する文字がある場合に警告ダイアログを表示します。


■ポイント
 なし

■実際のスクリプトをダウンロード(sample.jsx.zip)

写真素材 PIXTA