2026年2月4日

Adobe illustrator

バラバラのテキストをつないで1つに!

バラバラのテキストをつないで1つに!

1単語ずつバラバラのテキストを改行しつつ1つに繋ぎたい…

例えばこんな状態になったデータを右のように1つのテキストオブジェクトにしたい…ということ、ありませんか?
バラバラのテキストをまとめてコピーして新規テキストオブジェクトとしてペーストしてみると…

「かんぴょううるいいんげんれんこんはくさいふくべきゅうりとまと」とこんな感じ。

改行もされていないし、入力されたオブジェクト順にコピーされるので、上から下への流れ順もバラバラ。
手動で直すの、面倒ですよね。

こんな時はScriptで一発解決!

illustratorドキュメントのXY軸を意識して、一発でつないでくれるScriptを書いてみました。
バラバラのオブジェクトも、上から下へ、上下関係が希薄な場合は左から右へ、テキストの入力された順(作成された順)は無視して配置された見た目順につないでくれます。

#target illustrator

(function () {

    if (app.documents.length === 0) {
        alert("ドキュメントが開かれていません");
        return;
    }

    var doc = app.activeDocument;

    if (doc.selection.length === 0) {
        alert("テキストを複数選択してから実行してください");
        return;
    }

    var items = [];

    // TextFrameだけ拾う
    for (var i = 0; i < doc.selection.length; i++) {
        var it = doc.selection[i];
        if (it.typename === "TextFrame") {

            var str = it.contents;
            str = str.replace(/^\s+|\s+$/g, ""); // trim

            if (str !== "") {
                // geometricBounds: [left, top, right, bottom]
                var b = it.geometricBounds;

                items.push({
                    text: str,
                    left: b[0],
                    top: b[1]
                });
            }
        }
    }

    if (items.length === 0) {
        alert("選択内にテキストがありません");
        return;
    }

    // 同じ行判定のための許容値(pt)
    // 数字を大きくすると「多少ズレてても同じ行」とみなす
    var rowTolerance = 5;

    // 上→下(top降順)、同じ行なら 左→右(left昇順)
    items.sort(function (a, b) {

        // topは大きいほど上(Illustrator座標)
        if (Math.abs(a.top - b.top) > rowTolerance) {
            return (b.top - a.top); // 上が先
        }

        // 同じ行扱いなら左が先
        return (a.left - b.left);
    });

    // 結合(改行)
    var merged = [];
    for (var j = 0; j < items.length; j++) {
        merged.push(items[j].text);
    }
    var mergedText = merged.join("\r");

    // 新しいテキストフレームを作成
    var tf = doc.textFrames.add();
    tf.contents = mergedText;
    tf.position = [100, 100];

    alert("結合しました!(" + items.length + "件)");

})();

使い方は簡単

上記コードをテキストエディターの新規ドキュメントにペーストして、名前を付けて保存。
拡張子は、「.jsx」。例えば「mergeText.jsx」なんて名称はどうでしょう?
これを、一旦デスクトップにでも保存しておいて下さい。

illustrator側で繋げたいテキストを選択して、ファイルメニューの「スクリプト」内にある「その他のスクリプト」から、先ほどの「mergeText.jsx」を選択。
そうすると…
一発で見た目通りに連結してくれます。
現状のコードでは、フォントやサイズ、行間などは保持されません。
基本コードをベースに「選択じゃなくてレイヤー全てのテキストを連結したい!」「テキストのサイズやフォントは維持したい!」など、適用カスタムしてみてください。

スクリプトを自作して業務効率を図ると、ちょっとストレス軽減です。

Categories: DTP, TipsPublished On: 2026年2月 4日By
DTP Tips
  • バラバラのテキストをつないで1つに!

    2026年2月4日

  • Adobe illustrator Beta版「ターンテーブル」を使ってみた!

    2025年11月6日

  • Illustratorでつくる文字の囲み枠

    2024年8月22日

  • ドキュメントプロファイルを使って
    新規作業のストレスを軽減しよう

    2024年8月19日

WEB Tips
  • モヤッとする、あれ。JS+CSSで「項目間だけ線」をスッキリ解決!

    2025年8月8日

  • WordPressサイトをGoogle検索から除外したい?
    「robots.txt」の正しい活用方法

    2025年7月3日

  • WordPressで記事を投稿してみよう!

    2025年6月26日

  • WordPressアップデートしてますか?

    2024年8月9日

取り組み
  • 小学校低学年向け夏休みカレンダー2025を配付します

    2025年6月20日