「検索→アンカー配置→テキスト割付」「正規表現検索→アンカーオブジェクト配置」ですが、アンカーを配置することで、テキストフレームや表が増えることで処理対象が増加し、低速になります。
アンカー数が多く、使用に耐えない場合は、処理数や処理対象(データ)を分割して下さい。
UXPへの移植も考えていますが、どこまで動作が高速になるか未知数です。
※動画の内容は、一部古いバージョンで撮影されたものがあります。ご了承ください。m(_ _)m
画面説明
◆起動直後(「保存場所の設定」の展開なし、「検索動作オプション」非表示状態)

◆「保存場所の設定」の展開

- 「スクリプト出力」ボタンをクリックすると、現在のパネルの内容をパラメーターとして動作するスクリプト(「.jsx」形式)を出力するダイアログを表示します。
- 「SCRIPT QUICK LOAD」をクリックすると、後述の13で設定したフォルダ内の「.jsx」ファイルを階層表示します。表示された.jsxをクリックすることで、保存されたパラメーターをパネルに読み込みます。
- 「行データの追加」ボタンをクリックすると、変換項目を追加します。
- 「選択行データの削除」ボタンをクリックすると、一番左の列のチェックボックスがオンの行のデータを削除します。
- 「検索・動作オプション表示」ボタンをクリックすると、動作範囲・検索オプション・オーバーライド制御の設定を行う列が表示されます。
- パラメーターを設定するExcel風のUIです。
- Excelと同様にシート単位でデータを管理できます。
- 「シートの削除」ボタンをクリックすると、現在表示中のシートを削除します。
- 「全シート削除」ボタンをクリックすると、全データを削除します。
- 「シートの追加」ボタンをクリックすると、新規シートを一番右に追加します。
- 「左へ」「右へ」ボダンをクリックすると、現在表示中のシートを移動できます。
- 現在のパネルの内容で置換処理を実行します。
処理は、左のシートから、行は上から順番に実行されます。 - 「スクリプト保存フォルダの参照」ボタンをクリックすると、保存先フォルダの選択ダイアログを表示します。
インストール直後
インストール後は、まず画面13の「保存場所の設定」を行って下さい。
- ファイルを管理保存するフォルダを作成する。(共有フォルダをお勧めします)
- 画面12「保存場所の設定」で、手順1.のフォルダを指定してください。
- InDesignスクリプトパネルの「ユーザー」を右クリックし、「エクスプローラーで表示」をクリック。
- 「Scripts Panel」フォルダ直下(以下のフォルダ)に、手順1.のフォルダのショートカットを作成して下さい。
上記の手順3.4.については必須ではありませんが、共有フォルダのスクリプトがスクリプトパネルから実行ができるようになるため複数人のチームでの使用に便利です。
また、エクステンション自体をショートカットキーに登録するとで、作業しやすくなります。

(上記例ではF2に割り当てています)
エクステンションパネルでデバッグ→スクリプト出力→スクリプトのダブルクリックで作業を想定しています。
パラメーター設定各列の説明
行選択
行選択列には
- 「
」(ドラッグアンドドロップアンカー)
- 「
」(チェックボックス)
- 番号
があります。
ドラッグアンドドロップエリアを掴んで、ドラッグアンドドロップすることで行を入れ替え可能です。
チェックボックスは、チェックを入れた後、「選択行データ削除」をクリックすることで、行データを削除することができます。
番号は、表示のみで編集はできません。
実行
実行列のチェックボックスは、
「パラメーターを設定しているが、実行はさせたくない」時に使用します。
基本オンとしていますが、「うまく動作しない」時にチェックをオフにして、あやしい行のみオンにして、デバッグに使用します。
メモ
変換に影響はありません。何かしらメモ書きや説明文の項目です。
変換タイプ
どのような変換を行うかの選択をします。
本エクステンションは、クエリを除いて
変換の種類は、InDesignの「検索と置換」の「正規表現」タブの機能に準拠します。
- 正規表現検索→正規表現置換
- 正規表現検索→段落スタイル適用
- 正規表現検索→文字スタイル適用
- 正規表現検索→CIDコード文字置換
- 正規表現検索→ルビ付き文字列
- 正規表現検索→アンカーオブジェクト配置
- 検索→アンカー配置→テキスト割り付け
- 検索→テーブル変換
- クエリ実行
これらを選択します。
処理対象(検索・動作オプション内)
「選択範囲」(デフォルト)と「ドキュメント全体」を選択できます。
選択範囲(デフォルト)
「選択範囲」を設定した場合、変換処理は選択範囲内の、テキストフレーム(アンカー)・表を再帰的に処理します。アンカー文字前後で選択範囲の先頭・末尾が来る場合は注意して下さい。
ドキュメント全体
「ドキュメント全体」を設定した場合、後述の「非表示レイヤー・オブジェクトの検索」・「マスターページの検索」・「脚注の検索」のオプションが影響します。
ロックレイヤー・オブジェクトの検索・ロックストーリーの検索
InDesignの「検索と置換」パネル、「正規表現」タブの検索オプションとしてあるため、設定がありますが、「ロックレイヤー・オブジェクトの検索」のみが可能で、編集はできないため、基本オンにはしません。
(スクリプト中にロック解除→変換→ロックという修正を行うかもしれません。)
非表示レイヤー・オブジェクトの検索
「処理対象」が「ドキュメント全体」の時に影響があります。
脚注の検索
「処理対象」が「ドキュメント全体」の時に影響があります。
「選択範囲」の場合は、脚注を直接選択している場合は、チェックのオン・オフにかかわらず変換が行われます。
ナカ・かなの区別・半角/全角の区別
正規表現検索時の文字種の区別です。基本区別する設定になっています。
必要に応じてオフにして下さい。
パラメーター設定
この列は、「変換タイプ」の設定によって、内容が変化します。
変換タイプ別使用方法
変換タイプには以下の種類があります。
- 正規表現検索→正規表現置換
- 正規表現置換→段落スタイル適用
- 正規表現置換→文字スタイル適用
- 正規表現置換→CIDコード文字置換
- 正規表現検索→ルビ付き文字
- 正規表現検索→アンカーオブジェクト配置
- 検索→アンカー配置→テキスト割付
- 検索→テーブル変換
- クエリ実行
があります。
正規表現検索→正規表現置換
書体・サイズなどの設定は変更せず、テキストの検索・置換を行います。
本エクステンションはテキストベースで変換を行いますが、テキストの変換はテキストエディタやパーサを使用したスクリプトで行うことをお勧めします。
スクリプト中オブジェクトに変更を加えた際に、そのオブジェクトの内容が編集不能になる場合があるためです。(壊れているわけではないのですが、内容が確定しない状態になります。)

正規表現検索→段落スタイル適用
正規表現検索を行い、検索一致した段落に段落スタイルを適用します。
段落スタイルグループも問題なく指定可能です。

正規表現検索→文字スタイル適用
正規表現検索を行い、検索一致した文字に文字スタイルを適用します。
文字スタイルグループも問題なく指定可能です。

正規表現置換→CIDコード文字置換
正規表現検索を行い、検索一致した文字列をCIDコードで指定した文字に置き換えます。
InDesign標準の字形検索ではフォントを指定しますが、本エクステンションでは検索位置の書体に合わせたり、文字スタイルを同時に設定可能です。
なお、書体に外とするCIDコードの文字がない場合は変換がキャンセルされます。

正規表現検索→ルビ付き文字列(Ver1.0.2で変更あり)
5つのパターンの正規表現によるルビの設定を行います。正規表現は以下の通り。
()(.+?)()(.+?)()
エクステンションパネルで設定するのは、
- ルビの開始文字
- ルビ親文字
- ルビ区切(親文字とルビ文字の区切り)
- ルビ文字
- ルビの終了文字
となります。
「ルビの開始文字」「ルビ区切」「ルビの終了文字」については、不要であれば空欄として下さい。
変換後に文字スタイルを適用したい場合は、文字スタイルを選択して下さい。

正規表現検索→アンカーオブジェクト配置
検索文字とライブラリのアイテム名を設定することで、検索に一致した文字をライブラリのアイテムに置換します。
ライブラリは複数のファイルに分割していても、現在InDesignで開いているもの全てがリストに表示されます。

検索→アンカー配置→テキスト割付
本機能は、ややルールが複雑です。
InDesign上の設定1(ライブラリアイテムの直接配置)
見出しのパーツとなる部品にスクリプトラベルを登録します。

(スクリプトラベルは、「ウィンドウ」メニュー→「ユーティリティ」→「スクリプトラベル」からパネルを開けます。)

スクリプトラベルは後述のテキストのタグ名と一致します。
※オブジェクトスタイルの設定
重要!処理中に、テキストを配置するテキストフレームのオーバーライドを消去します。
面倒ですが、テキストを配置するテキストフレームは、オブジェクトスタイルとそのスタイル内の段落スタイルの設定を行って下さい。
オブジェクトスタイルを適切の行っておけば、後の変更も容易になります。
また、ライブラリに登録する際には、スクリプトラベルを設定したテキストフレームの内容を削除しましょう。(処理的にテキストフレームの末尾に配置します、テキストがある場合はテキストの末尾に配置されます)
InDesign上の設定2(ライブラリアイテムのテキストフレームの中身を配置)
テキストフレームやグループ化したアイテムのアンカーだけでなく表組を使用したパーツも配置可能です。
テキストフレームに表を配置し、そのテキストフレームをライブラリに登録するところまでは同じです。
ライブラリの名前に「[inner]」(すべて半角文字)を先頭に付けて下さい。
そうすることで、テキストフレームの内容を配置します。
ライブラリアイテムの探索の仕様
ライブラリアイテムを配置する場合、スクリプトラベルが設定されたフレームやセルにテキストを割り付けしますが、スクリプトラベルの検索は再帰処理にて行っています。
グループ化や「選択範囲内にペースト」されたテキストフレームも探索を行います。
(その分、複雑な構成のグループ化アイテムや、行列の多い表は時間がかかります)
テキストルール
★<txt001>1</txt001><txt002>見出しタイトル</002>☆
このようなルールが必要になります。
★は開始記号、☆は終了記号になり、任意の文字列が設定可能ですが、必ず異なる文字列として区別できるようにして下さい。
★~☆の間は、
<txt001>1</txt001> <txt002>見出しタイトル</txt002>
このように、ナンバリングされたタグで囲んで下さい。
</txt001>は全て半角文字です。タグの名称は、必ず英字で始まり、英数字を許容します。
(一般的なXMLの形式です。数字始まり不可)
<txt001></txt001>
タグの間の文字のみを使用し、それ以外は無視されます(消えてしまうので注意して下さい)。
★ <txt001>あああ</txt001> <txt002>いいい</txt002> ☆
という見やすいようにインデントをつけても、<txt001>~<txt001><txt002>~<txt002>の内側の文字以外は削除されます。
重要! 入れ子について
以下のような入れ子状態のテキストは、必ず外側から処理を行って下さい!!
★
<parent1>親1</parent1>
<parent2>親2■
<child1>子1</child1>
<child2>子2</child2>
□</parent2>
☆
強制終了は、InDesignのスクリプト中に配置されたアンカーを別のストーリー(テキストフレーム)に移動することで発生するようです。
なので、外側から実行することで強制終了せずに処理可能です。
画像について
タグの名称の先頭に「img」が付いた場合、次の処理を行います。
<imgXXX>ファイル名</imgXXX>
ライブラリに登録されたアイテム内に「imgXXX」のスクリプトラベルがある場合
- .inddファイルと同階層にファイルが存在するか?
- .inddファイルと同階層のLinksフォルダ内にファイルが存在するか?
確認の結果、存在すれば画像をリンクします。
ない場合は、スクリプトラベルにファイル名が登録されます。
検索→テーブル変換
開始記号と終了記号の間のテキストを、タブ・改行の区切りで表に変換します。
変換の際には表スタイルを適用できるようになっています。
(仮組程度の対応と思って下さい。)
クエリ実行
InDesignの「検索と置換」パネルに保存された各種のクエリを実行します。
クエリ設定に依存するため、別のPCで実行する場合は、クエリの設定ファイルのコピーが必要になります。