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

選択されたテキストフレーム内の英文字の前後に半角空白を入れる

■プログラム説明(ソースコード説明)
 選択されたテキストフレーム内の英文字の前後に半角空白を入れます。replace()で関数を呼び出して関数内で処理します。サンプルでは長く見えますが、関数内は4行しかありません。

■ソースコード
selObj = app.activeDocument.selection;
for (i=0; i<selObj.length; i++)
{
txt = selObj[i].contents;
selObj[i].contents = txt.replace(/[A-Z]+/gim,repFunc);
}
function repFunc(chr,ptr,AllStr)
{
var result = chr;
// 前に空白を入れる
if ((ptr > 0) && (AllStr.charAt(ptr-1) != " "))
{
result = " "+chr;
}
// 後ろに空白を入れる
if (AllStr.charAt(ptr+chr.length) != " ")
{
result = result + " ";
}
return result;
}


■使い方
1:置換するテキストフレームを選択します。
2:スクリプトを実行します。
3:英文字の文章の前後に空白が入ります。すでに前後のどちらかに空白が入っている場合には、そのままになります。


■ポイント
 なし


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

写真素材 PIXTA