【解決】Illustratorのパネルで正規表現の検索・置換・選択がしたい!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
CEPエクステンションFindReplaceSession for Illustrator アイキャッチ図版

Illustratorでレイアウトや図版を作っていると、複数の行の先頭に同じ文字を追加したくなったりします。そういうときには、正規表現というパターン検索(あいまい検索)を使うと便利です。

例えば検索パターンに「^」、置換パターンに追加したい文字、例えば「✅ 」を指定して置換を実行すると、もとの文字の各行先頭に「✅ 」が追加されます。

もとの文字置換後文字
マッチ範囲をカンバス上で選択
マッチ範囲をパネル上に表示
マッチ範囲を置換
✅ マッチ範囲をカンバス上で選択
✅ マッチ範囲をパネル上に表示
✅ マッチ範囲を置換

問題は、Illustratorの検索・置換機能はそこまでの柔軟さがないことです。正規表現は使えませんし、モーダルダイアログなので検索中は視点を動かしたり拡大したりできません。InDesignならできるのですが、Illustratorで実現したい状況も多いでしょう。

そこで今回は、パネルにて正規表現で文字を検索・置換・選択するIllustrator用エクステンション、FindReplaceSession for Illustrator を紹介します。

動画で見たい

FindReplaceSession for Illustratorって何?

Illustratorのパネルにてパターンに基づいてテキストを検索・置換・選択するIllustrator用エクステンションです。

検索条件にマッチしたテキストフレームまたは文字をカンバス上ですべて選択する、パネル上でマッチした範囲を選んで画面中央に表示する、選んだ範囲1つだけ置換するなど、用途に応じて柔軟に利用できます。

検索パターンはECMAScript 2021相当の正規表現に対応しています。ExtendScript(ES3)でも使える基本的なメタキャラクタに加え、例えば次のような指定が使用可能です。

  • Lookbehind (?<=text) (?!<text)
  • Unicode文字クラスエスケープ \p{Script=Hiragana}
  • 絵文字等のコードポイント指定 \u{1F600}
  • 名前つきキャプチャ 検索パターン: (?<groupname>text)、置換パターン: $<groupname>
  • dotAllオプション(.を改行にマッチさせる)

置換の際はもともとあった文字属性を保持します。つまり、スクリプトでの置換ではテキストフレームの最初の文字に属性が統一されがちですが、そうではなくマッチ範囲の属性を引き継げるということです。

Adobe Exchangeにて5USDで販売中で、Creative Cloudデスクトップアプリから購入・インストール可能です。

Adobeアプリの自動化機能にはスクリプト・CEPエクステンション・UXPプラグインなど色々な種類の呼び名がありますが、これはCEPエクステンションにあたります。パネルで操作できることが強みです。

CEPエクステンションFindReplaceSession for Illustrator イメージ画像

どのバージョンに対応しているの?

Adobe Illustrator 2021(25.3) かそれ以降のIllustratorに対応します。このバージョンのIllustratorが動けば、macOS/Windows問わず使用可能です。

動作確認済み

動作確認済み
  • Illustrator 2021〜2026
  • macOS 12.7, 26.1(Apple Silicon)
  • Windows 11

どうやって買うの?

今回のIllustrator用エクステンションはAdobe Exchangeでの購入が必要です。次の手順でご利用ください。

A このページのリンク経由で購入

 ↑のリンクを開きます。開くとAdobe Exchangeのサイトの該当プラグインページが出ます。まだAdobeアカウントでログインしていなければログインしてください。

 次に、右上のほうにある(Buy)ボタンを押します。

 Checkoutという画面が出ているはずです。そこでご自身の連絡先や支払い方法を指定してください(見本の画像は別のプラグインのものです)。

Adobe Exchange Checkout(支払い)画面

 同じ画面の下のほうに利用規約とプライバシーポリシーがあります。内容を確認し「私は利用規約とプライバシーポリシーに同意します」にチェックを入れてください。

 (注文の完了)ボタンを押します。押したら決済が実行され、Thank Youという画面が出ます。これで購入完了です(見本の画像は別のプラグインのものです)。Illustratorがエクステンションを認識し、使えるようになります。

Adobe Exchange Thank You(購入完了)画面

インストール後、Illustratorのメニューの ウィンドウ > エクステンション > FindReplaceSession for Illustrator のところに出てきます。

メニューからCEPエクステンションFindReplaceSession for Illustratorのパネルを開く画像

B Creative Cloud App 経由で購入

 Creative Cloud Appのウインドウで、FindReplaceSession for Illustratorを見つけてください。

「FindReplaceSession」と検索すると出てきます。

Creative Cloud Appのウインドウで、CEPエクステンションFindReplaceSession for Illustratorを見つける様子の画像

 (購入)ボタンを押します。するとAdobe Exchangeのサイトの該当プラグインページが出ます。まだAdobeアカウントでログインしていなければログインしてください。

あとは前記「A このページのリンク経由で購入」の3〜5と全く同じです。そちらをご参照ください。

使いかたは?

基本的にパネルを使って操作します。メニューの ウィンドウ > エクステンション > FindReplaceSession for Illustrator を選んでパネルを開いてください。

検索パターンの部分に検索文字列、置換パターンに置換文字列を入力します。その下のチェックボックスでは、検索オプションを指定できます。適宜切り替えてご利用ください。

CEPエクステンションFindReplaceSession for Illustratorのパネル 画像

すべて置換する(Replace > Replace all)

  1. パネルのすべて置換(Replace all)ボタンを選択してください
  2. すると、検索対象になっていて編集可能なテキストをすべて置換します
CEPエクステンションFindReplaceSession for Illustrator「すべてを置換」動作イメージ図版

置換できなかったマッチ結果はパネルに表示されます。オブジェクトやレイヤーのロックを解除する、表示するなどで編集可能になります。再度置換をお試しください。

CEPエクステンションFindReplaceSession for Illustrator「すべてを置換」編集不可テキストのパネル表示

全テキストフレームを検索する(Find > All frames)

  1. パネルの全フレーム(All frames)ボタンを選択してください
  2. すると、検索パターンに一致したテキストフレームをすべてカンバス上で選択し、さらにマッチした範囲をパネルに表示します
CEPエクステンションFindReplaceSession for Illustrator「検索 > 全フレーム」動作イメージ図版

全テキストレンジを検索する(Find > All ranges)

  1. パネルの全レンジ(All ranges)ボタンを選択してください
  2. すると、検索パターンに一致した文字をすべてカンバス上で選択し、さらにマッチした範囲をパネルに表示します
CEPエクステンションFindReplaceSession for Illustrator「検索 > 全レンジ」動作イメージ図版

文字の一部を置換する

置換 > すべて置換 で置換できなかった文字や、検索 > 全フレーム/全レンジ で表示したマッチ結果は、それぞれ一部分ずつ置換できます。

  1. パネル下段に、検索結果が表示された枠があります。それを見てどの部分を置換するか決めてください
  2. 検索結果枠の右側にある置換ボタン(循環する矢印のアイコン)を押してください。その部分の文字を置換します
  3. 次の置換候補があれば、その範囲が自動的に選択されます
CEPエクステンションFindReplaceSession for Illustrator イメージ画像

検索結果をすべてパネルから取り除く(Reset)

パネルのリセット(Reset)ボタンを押してください。検索結果が空になります。

検索結果の一部をパネルから取り除く

各検索結果枠の右上にある無視ボタン( X )を押してください。その1つのみパネルから取り除けます。

検索オプションはどんなものがある?

基本的にすべての検索パターンには、次のオプションが指定されています。

  • global: 最初のマッチだけでなく、見つかったすべてを対象にする
  • multiline: 先頭および末尾を示すメタキャラクタ^と$を行頭行末にマッチさせる
  • unicode: Unicode関連機能を使えるようにする

そのうえで追加オプションを指定できます。

正規表現を使用(Grep)

ONにすると正規表現を使用します。正規表現はJavaScript(ECMAScript 2021相当)に基づきます。Lookbehindなどが使える比較的新しいバージョンです。

大文字と小文字を区別する(Case sensitive)

ONにすると、アルファベットの大文字・小文字を区別します。OFFの場合は大文字・小文字一緒くたにしてマッチします。

. を改行にマッチさせる(Allows . to match newline characters)

ONにすると、任意の1文字を表す.のメタキャラクタが改行にもマッチするようになります。

選択中のアイテムのみ対象にする(Selected text only)

ONにすると、検索対象を選択しているアイテムとその子孫のテキストに限定します。OFFの場合は書類上のすべてのテキストを対象にします。

注意点

  • シンボルやパターンの中にあるテキストは検索できません
  • テキストフレームが数千個あるときにはフリーズする可能性があります
  • Undoで置換したテキストはもとに戻せますが、パネルの表示は戻りません。もし必要なら検索からやり直してください

応用

履歴から検索設定を復元する

検索を実行すると、その検索・置換パターンやオプションなどの検索設定が一時的に履歴として保存されます。パネルのコンテキストメニュー 検索履歴から設定を復元(Restore settings from history) からそれを呼び出し、パネルに復元できます。

コンテキストメニュー 検索履歴から設定を復元 の画面

設定をパネルに復元するだけで、検索や置換は実行しません。そうしたい場合は改めて実行してください。

検索プリセット

よく使う検索設定はプリセットファイル(.json)として保存し、それを後にパネルに読み込んで利用できます。

検索プリセットの保存

パネルにて検索・置換パターン、オプションなどを指定した後、パネルの右上にあるフライアウトメニューから検索設定をプリセットとして保存(Save search settings as a preset) を選んでください。ダイアログが出るので、保存先とファイル名を指定して書き出します。

フライアウトメニュー 検索設定をプリセットとして保存 の画面

初期設定の保存先は、FindReplaceSessionのプリセット専用フォルダになります。パネルで読み込みできるのは、ここにあるプリセットだけです。

専用フォルダは、フライアウトメニューで 設定フォルダを開く(Open settings folder) を実行すると開けます。

フライアウトメニュー 設定フォルダを開く の画面
設定フォルダにPresetsとScriptsのフォルダがある画面
設定フォルダにPresetsとScriptsのフォルダがある状態

検索プリセットの読み込み

右クリックするなどしてパネルのコンテキストメニューを開き、検索プリセット(Search presets) を参照してください。その中にFindReplaceSessionのプリセット専用フォルダに保存したプリセットが並んでいるので、対象を1つ選びます。するとパネルに設定を読み込めます。

コンテキストメニュー 検索プリセット の画面

設定をパネルに読み込むだけで、検索や置換は実行しません。そうしたい場合は改めて実行してください。

スクリプト

FindReplaceSessionのスクリプト専用フォルダにExtendScriptファイル(.jsxまたは.js)を配置しておくと、パネルのコンテキストメニューから実行できます。

コンテキストメニュー スクリプト の画面

選択したテキストフレームや文字に対して処理を実行する通常のスクリプトも実行できますが、特定の形式でスクリプトを書くことでFindReplaceSessionの高度な検索や置換機能を呼び出すことも可能です。

プリセットとスクリプトのサンプル

プリセット Add thousands separators.json は、文章の中から数値を見つけて3桁区切りにする設定です。例えば10000.0000のような数値を10,000.0000に変えます。

スクリプト applyGraphicStyleToMatchedFrames.jsx は、パネルの検索設定をもとに、マッチするすべてのテキストフレームにグラフィックスタイルを適用します。実行すると自動で検索・選択されるので、ダイアログで適用したいスタイルを選んでください。

ダウンロードはこちらです。

これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

広告

コメントを残す