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

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

■ソースコード
str = prompt("調べる文字を入れて下さい(正規表現)","今日");
regObj = new RegExp(str,"g");
layObj = activeDocument.artLayers;
for (i=0; i<layObj.length; i++)
{
if (layObj[i].kind == LayerKind.TEXT)
{
txt = layObj[i].textItem.contents;
result = txt.match(regObj);
if (result)
{
alert("レイヤー名「"+layObj[i].name.substr(0,5)+"...」に該当文字があります。");
}
}
}


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


■ポイント
 なし