見出し画像

Illustrator 書式を維持して検索置換する ExtendScriptコードを書いてもらった話

多分、できた!(というか、書いてもらった〜全部!)かも。
現在絶賛デバッグ中。
ただ、自分の使用用途では完璧に仕事してくれているし、
YouTubeでバグさらしている状態なので、動画UP前にあげときます。
もっと、スマートなコードに収まるなら、ぜひご教授ください。
※自分では一行もコードを書けない60歳の手習いおじいさんが、ChatGTPに書いてもらったExtendScriptなので、そのあたりは優しい眼差しでね。詳しい使用方法はそのうちYouTubeにUPする予定だけど未定、、、、

【最低限な使い方説明】
以下のような CSV UTF-8(カンマ区切り)
FindText,ReplaceText<改行>
検索文字列a,置換文字列A<改行>
検索文字列b,置換文字列B<改行>
検索文字列c,置換文字列C<改行>
・・・・いくらでも(のはず)

にしたがって、「検索・置換」を行います。

・必ず一行目にFindText,ReplaceTextがあること。(これが項目行です。)
・「検索・置換」の組み合わせ個数は特に制限していません。
・検索した文字列の書式を継承しながら、置換文字列に置き換えます。
多分、ExcelのA1にFindText B1にReplaceText を、2行目以降に検索ワードと置換ワードを入力して、CSV UTF-8(カンマ区切り)を書き出すのが普通かなっと。(私の環境がmacなもんで。)

【使用上の注意】
※Illustratorのテキストボックスの性質上、カーソル位置にテキストを入力すると、カーソルの前の文字列の書式プロパティが適用されます。
よって、このScriptは、検索文字列が2文字以上、かつ、その書式プロパティが全て同一でない場合、置換え文字列のすべての書式プロパティは、検索された文字列の「最初の文字列」の書式プロパティを継承します。
※つまり、
検索文字列が2文字以上、かつ、その書式プロパティが全て同一の場合にのみ、置換え文字列すべてが、検索文字列と同一書式プロパティを承継します。(なんのこっちゃ?)
※検索文字列が1文字の場合は問題ないと思う、思っている、そうであってくれ。
※書式が細かく設定(例えばカーニングやアキ量とか)された文字列など、完璧な継承はできないです。コードをブラッシュアップしていただき対応させてください。ただ、extendScriptでは無理なのでは、、、と思ったりしています。
私の用途では現状の書式継承で必要充分だし、だいたいIllustratorで緻密な文字組みとかします?あ、しないのは私だけですね。

【最後に泣き言】
★テキストボックス内を検索・置換するにあたって、個別文字列(キャラレベル)ごとに書式プロパティを取得し、それを何とか置換え文字に適用させたいと、マイチャッティーと対話する事、2週間。どうしても到達できなかった、、、
もはや、Illustrator ExtendScript では無理だと諦めているけど、「できますよ!」って賢者がいたら、ぜひ教えてー。
って言うか、この script自体、ニーズ無さそうだなぁー。私はこれで仕事時間が半分以下になったので、自分良ければ、全てよし❗️

script内容について徒然・長々と語った動画はこちら。

更新履歴

2024.07.19 ver1.1.1
・検索するテキストボックスの属性を選択できるようにしました。
・CSVの3列目以降のデータを無視しました。
・読み込んだCSVの中身を確認できるようにしました。

2024.07.18 ver1.0.0
・初版UP
2030.07.30 現在 大幅アップデート中につき、コードは一旦削除しました。

※バグ報告、大歓迎❗️大感謝❗️


いいなと思ったら応援しよう!