見出し画像

InDesignで2つのテキストフレームを連結するスクリプト

InDesignでテキストフレームを連結するには、次のようにポチポチとクリックしていく必要があります。

  1. 元のフレームの[アウトポート]アイコンをクリック

  2. 連結させたいフレーム上でクリック

面倒です…

Merge TextFrames

テキスト連結のソリューションには、Ajar Productionsがリリースしている「Merge TextFrames」があります(無料)。

インストールすると、[オブジェクト]メニューに[Merge Text Frames…]というコマンドが追加されます。

このようなダイアログボックスが開きます。

(見切れている)[Fit frame to]オプションをONにしなくても、テキストフレームがフィットしてしまうため、私(鷹野)が期待する結果にはなりません。

すべてのテキストフレームを連結

Adobe CommunityのLink all text frames in documentで議論されています。

pages = app.documents[0].pages.everyItem().getElements();
thread = pages[0].textFrames[0];
for (i = 1; i < pages.length; i++) {
  thread.endTextFrame.nextTextFrame = pages[i].textFrames[0];
}


2つのテキストフレームを連結するスクリプト

そこで、ChatGPTに書いてもらいました

  • 対象となるのは2つのテキストフレーム

  • テキストフレームは大きさを変更しない

  • ダイアログボックスを出さずに実行

if (app.documents.length > 0 && app.selection.length == 2) {
    var allTextFrames = true;
    for (var i = 0; i < app.selection.length; i++) {
        if (!(app.selection[i] instanceof TextFrame)) {
            allTextFrames = false;
            break;
        }
    }

    if (allTextFrames) {
        var firstFrame = app.selection[0];
        var secondFrame = app.selection[1];

        // オーバフローテキストをチェックして、必要に応じて処理
        if (firstFrame.overflows) {
            alert("最初のテキストフレームにはオーバーフローテキストがあります。");
        } else {
            // 最初のフレームの次のフレームに第二のフレームを設定
            firstFrame.nextTextFrame = secondFrame;
        }
    } else {
        alert("2つのテキストフレームを選択してください。");
    }
} else {
    alert("2つのテキストフレームを選択してください。");
}

テキストフレームの連結解除

こちらはたくさんのスクリプトがあり、InDesign 2020以降、コミュニティスクリプトとしてデフォルトで入っています。


ダウンロード

スクリプトファイル

ここから先は

19字 / 2ファイル
月に10-20本くらいの記事を投稿しています。定期購読されると、更新のお知らせを受け取ったり、マガジン限定記事やサンプルファイルをダウンロードできます。 購読を開始した月に更新された記事から読むことができます(初月無料)。

DTP Transit 定期購読マガジン

¥100 / 月 初月無料

マガジン限定記事やサンプルファイルをダウンロードできます。

定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5