アルファベットのみ色を変更する

■プログラム説明(ソースコード説明)
 変更する文字の色を定義します。サンプルではCMYKカラーで指定しマゼンタにしています。変数srchTextにアルファベットを入れます。小文字も色を変えたい場合は小文字も追加します。ドキュメントで現在選択されているオブジェクトはselection配列に入っていますので、この配列の長さだけ繰り返し処理を行います。テキスト処理を行う場合にはtextRange()を使ってテキストオブジェクトを作成します。作成されたオブジェクトのcharacters配列に1文字ごとの情報が入っています。このcontentsプロパティに文字が入っているので変数に入れてindexOf()を使いアルファベットかどうか調べます。アルファベットが見つからない場合は-1になるので、それ以外だったらfillColorにカラーを指定し文字の色を変更します。

■ソースコード
txtColor = new CMYKColor();
txtColor.cyan = 0;
txtColor.magenta = 100;
txtColor.yellow = 0;
txtColor.black = 0;
cColor = new Color();
cColor.cmyk = txtColor;

srchText = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
sel = activeDocument.selection;
for (i=0; i<sel.length; i++)
{
txtRange = sel[i].textRange();
for (j=0; j<txtRange.characters.length; j++)
{
c = txtRange.characters[j].contents;
if (srchText.indexOf(c,0) > -1)
{
txtRange.characters[j].fillColor = cColor;
}
}
}


■使い方
1:色を変更するテキストをブロックごと選択します。
2:ファイルメニューからスクリプトを実行します。
3:アルファベットのみ色が変わります。


■ポイント
 1文字ごとの情報を格納しているcharactersオブジェクトには以下のようなプロパティがあります。

baselineShift ベースラインシフト
contents 文字
direction 文字方向
fillColor 塗りの色
filled 塗りつぶし状態(true、false)
font 書体/フォント
kerning カーニング
leading リーディング
scaling 文字比率
size 文字サイズ
strokeColor 線の色
stroked 線あり/なし(true、false)
strokeWidth 線幅
tracking トラッキング

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