空海人@ダメマ編集長
約1794文字

イラストレーターで複数の文字列を一気に置換できるスクリプトを紹介

イラストレーターで複数の文字列を一気に置換できるスクリプトを紹介のメイン画像

Illustratorを使っていると意外とかゆい所に手が届かないことが多いと思います。 そんなとき活躍するのがスクリプト。 今回は複数の文字列をCSVで一気に置換するスクリプトを紹介します。 CSVで一気に流し込む系が無かったので自作しました。

イラストレーターでの文字列置換は意外と手間がかかる

イラストレーターを使っていて、やはり面倒くさいと感じるのが複数文字列の置換です。

単一文字列などであれば、そこまで考える必要はなく、編集から検索と置換を選んでやればよいわけですが、 それが複数あると一気に面倒くさくなります。

例えば、こんな場面よくあるのではないでしょうか。

商品名羅列

上記のような商品名を羅列したものです。

手作業でおこなうと、商品名および価格を間違える可能性もあり、できればプログラム的な感じで動かす方法が無いかと探したところ、 私の検索能力では見つけることができなかったので自作することに。

1列目が置き換え前文字列、2列目が置き換え後の文字列というCSVを用意し、一気に置換するスクリプトを作りました。

実際には、イラストレーターで約300程度置換しましたが、今の所うまく動いています。

スクリプトの使い方

jsファイルのダウンロードはこちらから。

イラストレーターを開き「ファイル>スクリプト>その他のスクリプト」を開きます。

スクリプト使い方1

jsの場所を聞いてくるので「csv2replace.js」を選択してください。

スクリプト使い方2

「csv2replace.js」を開くと、csvファイルの場所を聞かれるので、csvファイルを選択してください。

スクリプト使い方3

csvファイルを開くと、一気に置換が始まります。

実行結果はこちら。

実行結果

見事に変わっていますね!

スクリプトのソースコード

一応、ソースコードも置いておきます。


var docObj = activeDocument; var targetObj = []; var result = []; // ドキュメント内からテキストのみを取り出す for(var i=0; i<docObj.pageItems.length; i++){ typ = docObj.pageItems[i].typename; if (typ != "TextFrame") continue; // テキスト以外は無視 targetObj.push(docObj.pageItems[i]); // 対象を格納 } filename = File.openDialog("開くIllustratorファイルを指定してください","*.csv"); var fileObj = new File(filename); var flag = fileObj.open ("r","",""); if (flag){ var docRef = app.activeDocument; var tmp = fileObj.read(); var str = tmp.split("\n"); for (i=0; i<str.length; i++){ result[i] = str[i].split(','); for(var p=0; p<targetObj.length; p++){ if(targetObj[p].contents === result[i][0]){ targetObj[p].contents = targetObj[p].contents.replace(result[i][0], result[i][1]); } } } }

最後に

イラストレーターはとても便利なのですが、意外とかゆい所に手が届かないなんてときはスクリプトを使いましょう。

基本はJavascriptなので、なんとか見よう見まねで出来るんじゃないかと思います。

何か不具合がありましたら、こちらから連絡いただければと思います。

スポンサードリンク

関連コンテンツ

記事執筆
空海人@ダメマ編集長

2017年現在、某企業にて経営企画室としての業務を行う一方、グループ会社のマーケティング、ブランディングなどを行う。特にWEB回りの事が大好きで、自身でプログラムをしながらマーケティングの知識を深めている。沖縄が大好きでいつかは移住したいと思っているらしい。

この記事に使われているマーケティング用語集の用語一覧

SNS

CATEGORIES

RECOMMAND

NEW

POPULAR

RANKING

COPYRIGHTS

著作権について

当サイト「damema.net」に掲載されている情報についての著作権は放棄しておりません。当サイト記事からの引用に関しましては「引用元の明示」によって無償で引用頂けます。

(C)2017 damema.net All rights reserved.