Excelデータとの連携

 Excelで入力したデータをPhotoshop CSで利用するスクリプトです。これは、レイアウトが定型もしくは、定型に近いものであれば威力を発揮します。広告なども枠がだいたい決まっているのであればExcelで文字や金額を入力し自動的にスクリプトで入れ替えて、調整は手作業で行うのが早いでしょう。
 まず、Excelで以下のように「レイヤー名」「入れ替える文字」を入力します。

title 木曜得の市
sub 今週もお買い得商品がたくさん
name1 レタス
price1 158円
name2 アスパラ
price2 180円

 あとは保存するのですが、保存形式を「テキスト(タブ区切り)」にします。レイヤー名と文字データがタブで区切られていれば良いので、特にExcelでなくてもテキストエディタでもかまいません。
 保存したファイル名をdata.txtとしてルートディレクトリに入れます。(起動ボリューム/ドライブの一番最初の階層)
 Photoshop CSでデータを作成します。入れ替えるレイヤーはテキストレイヤーでないといけません。あとは、入れ替えるべきレイヤー名があるか確認してから以下のスクリプトを実行してください。自動的に指定されたレイヤー内のテキストデータが入れ替わります。文字のみの入れ替えなのでサイズや書体などは最初に指定しておくと楽です。

fileObj = new File("/data.txt"); // ファイルのパス
flag = fileObj.open("r","",""); // 読み込みモード
if (flag)
{
fileData = fileObj.read(); // 読み込み
Line = fileData.split("n"); // 行ごとに分割
for (i=0; i<Line.length; i++)
{
Data = Line[i].split("t");
activeDocument.artLayers[Data[0]].textItem.contents = Data[1];
}
}else{
alert("データファイルが見つかりません");
}

 Excelで作成したデータファイル名を指定したい場合は先頭の行の

fileObj = new File("/data.txt"); // ファイルのパス

 /data.txtにファイルのあるパスを指定します。MacOS Xの場合、日本語のファイル名やフォルダ名があると、動作しないことがあります。その場合、フォルダ名とファイル名は英数字の組み合わせにしてください。

 こういうのは名刺作成などにも使えるかもしれません。あとはアイデア次第でしょう。




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