今回も同じネタでPhotoshop CS/CS2版です。最初のサンプルは選択したレイヤーがテキストレイヤーの場合、最初のタブコードを...の文字に置換するものです。Photoshop CS2では複数のレイヤーが選択できますが、一番最後に選択されたものが対象になります。
layObj = activeDocument.activeLayer;
if(layObj.kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9));
selText = layObj.textItem.contents;
layObj.textItem.contents = selText.replace(reg, "...");
}
テキストレイヤー内の全てのタブコードを置換する場合は、以下のようになります。
layObj = activeDocument.activeLayer;
if(layObj.kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9), "g");
selText = layObj.textItem.contents;
layObj.textItem.contents = selText.replace(reg, "...");
}
...の文字ではなく任意の文字に置換する場合は、入力ダイアログを利用します。入力ダイアログを表示して置換する文字列を指定する場合は、以下のスクリプトになります。
str = prompt("文字を入れてください", "...");
layObj = activeDocument.activeLayer;
if(layObj.kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9), "g");
selText = layObj.textItem.contents;
layObj.textItem.contents = selText.replace(reg, str);
}
選択したレイヤーだけではなく、他のレイヤーにあるタブも一括して置換することもできます。Photoshopの場合は、Illustratorとは異なりテキストは個別のレイヤーに分かれているため、一括して処理するには全てのレイヤーの情報を読み出して操作します。以下のサンプルは、最前面のドキュメントの全てのテキストレイヤー内のタブコードを、任意の文字列に置換するものです。
str = prompt("文字を入れてください", "...");
layObj = activeDocument.layers;
for (i=0; i< layObj.length; i++) {
if(layObj[i].kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9), "g");
selText = layObj[i].textItem.contents;
layObj[i].textItem.contents = selText.replace(reg, str);
}
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
コムスン大変ですねぇ。譲渡ついでに社名も変更するとよさそうです。
コムスン → 引っ込むスン
グッドウィルグループ → グッと冷えるグループ
if(layObj.kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9));
selText = layObj.textItem.contents;
layObj.textItem.contents = selText.replace(reg, "...");
}
テキストレイヤー内の全てのタブコードを置換する場合は、以下のようになります。
layObj = activeDocument.activeLayer;
if(layObj.kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9), "g");
selText = layObj.textItem.contents;
layObj.textItem.contents = selText.replace(reg, "...");
}
...の文字ではなく任意の文字に置換する場合は、入力ダイアログを利用します。入力ダイアログを表示して置換する文字列を指定する場合は、以下のスクリプトになります。
str = prompt("文字を入れてください", "...");
layObj = activeDocument.activeLayer;
if(layObj.kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9), "g");
selText = layObj.textItem.contents;
layObj.textItem.contents = selText.replace(reg, str);
}
選択したレイヤーだけではなく、他のレイヤーにあるタブも一括して置換することもできます。Photoshopの場合は、Illustratorとは異なりテキストは個別のレイヤーに分かれているため、一括して処理するには全てのレイヤーの情報を読み出して操作します。以下のサンプルは、最前面のドキュメントの全てのテキストレイヤー内のタブコードを、任意の文字列に置換するものです。
str = prompt("文字を入れてください", "...");
layObj = activeDocument.layers;
for (i=0; i< layObj.length; i++) {
if(layObj[i].kind == LayerKind.TEXT)
{
reg = new RegExp(String.fromCharCode(9), "g");
selText = layObj[i].textItem.contents;
layObj[i].textItem.contents = selText.replace(reg, str);
}
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
コムスン大変ですねぇ。譲渡ついでに社名も変更するとよさそうです。
コムスン → 引っ込むスン
グッドウィルグループ → グッと冷えるグループ