特定の文字で始まる、終わる、含まれるテキストフレームを選択する (Illustrator CS2/CS3/CS4編)

Illustratorにはテキストフレームだけを選択したり、同じ色のものだけを選択する機能があります。しかし、文章の最後が「。」で終わっていないテキストフレームを選択したい場合や、先頭の文字が特定のマークや文字列で始まっているものを選択したい場合があります。
このような場合にはスクリプトの方が手軽にできます。以下のスクリプトは先頭が■で始まるテキストフレームを選択します。

findText = "■"; // ■で始まるテキストフレームを選択する
selObj = activeDocument.textFrames;
for (i=0; i<selObj.length; i++)
{
temp = selObj[i].contents;
if (temp.charAt(0) == findText) selObj[i].selected = true;
}

検索する最初の文字を変更するには最初の行である

findText = "■"; // ■で始まるテキストフレームを選択する

の■を変更してください。例えば、先頭の文字が「しかし、」で始まるものを選択するようにする場合には以下のように変更します。

findText = "しかし、"; // ■で始まるテキストフレームを選択する

先頭

が指定した文字列で始まるのではなく、テキストフレーム内に含まれればよい場合には以下のスクリプトになります。

findText = "■"; // ■が含まれるテキストフレームを選択する
selObj = activeDocument.textFrames;
for (i=0; i<selObj.length; i++)
{
temp = selObj[i].contents;
if (temp.indexOf(findText) > -1) selObj[i].selected = true;
}

末尾の文字が「。」で終わっていないものを選択したい場合には以下のスクリプトになります。

findText = "。"; // 末尾が。で終わっていないテキストフレームを選択する
selObj = activeDocument.textFrames;
for (i=0; i<selObj.length; i++)
{
temp = selObj[i].contents;
chr = temp.substring(temp.length-1, temp.length);
if (chr != findText) selObj[i].selected = true;
}

検索する語句を固定するのではなく、実行時に指定したい場合には以下のように最初の行をprompt()に変更します。

findText = prompt("検索語句を入れてください", "■");
selObj = activeDocument.textFrames;
for (i=0; i<selObj.length; i++)
{
temp = selObj[i].contents;
if (temp.indexOf(findText) > -1) selObj[i].selected = true;
}

 

[サンプルをダウンロード]