今回はPhotoshop CS2で引用符である"〜"を“〜”のように変換するスクリプトです。前々回のWeb編とは少し異なっています。Photoshop CS2で動作確認していますが、CSでも問題なく動作するはずです。
スクリプトは3種類用意しました。スクリプト1は、変換したい引用符があるテキストレイヤーを選択してから実行します。選択したレイヤーのみ引用符が変換されます。
スクリプト2は全てのレイヤーを調べてテキストレイヤーだった場合に引用符を変換します。スクリプト3はスクリプト2の改良版で引用符が正しく閉じられていない場合、レイヤー名を表示するものです。
いずれのスクリプトも文字の色などを指定する前に実行してください。
【スクリプト1】
LQ = "“"; // 開始カッコ
RQ = "”"; // 閉じカッコ
layObj = activeDocument.activeLayer;
if (layObj.kind == LayerKind.TEXT)
{
count = 0;
result = "";
text = layObj.textItem.contents;
for (j=0; j<text.length; j++)
{
c = text.charAt(j);
if (c == '"')
{
c = LQ;
if (count & 1) c = RQ;
count++;
}
result += c;
}
layObj.textItem.contents = result;
}
【スクリプト2】
LQ = "“"; // 開始カッコ
RQ = "”"; // 閉じカッコ
layObj = activeDocument.artLayers;
for (i=0; i<layObj.length; i++)
{
if (layObj[i].kind == LayerKind.TEXT)
{
count = 0;
result = "";
text = layObj[i].textItem.contents;
for (j=0; j<text.length; j++)
{
c = text.charAt(j);
if (c == '"')
{
c = LQ;
if (count & 1) c = RQ;
count++;
}
result += c;
}
layObj[i].textItem.contents = result;
}
}
【スクリプト3】
LQ = "“"; // 開始カッコ
RQ = "”"; // 閉じカッコ
layObj = activeDocument.artLayers;
for (i=0; i<layObj.length; i++)
{
if (layObj[i].kind == LayerKind.TEXT)
{
count = 0;
result = "";
text = layObj[i].textItem.contents;
for (j=0; j<text.length; j++)
{
c = text.charAt(j);
if (c == '"')
{
c = LQ;
if (count & 1) c = RQ;
count++;
}
result += c;
}
layObj[i].textItem.contents = result;
if (count & 1)
{
alert("【"+layObj[i].name+"】レイヤーの括弧が閉じられていません");
}
}
}