このサイトはアフィリエイト広告を利用してます

Illustratorスクリプトで数字の連番入力を自動化

ミスを防ぐ!数字の連番入力を自動化するIllustratorスクリプト

デザイン効率化戦略:一つ一つ連番を入力する作業を効率化

  1. 連番を手動で入力すると時間がかかる
  2. 数字を飛ばしたり、重複させるようなミスが発生する
  3. 内容変更があると、修正に手間がかかる

一般的にIllustratorで、数字の連番を入力する際は「手動で一つ一つ」入力する必要があるため、手間がかかるうえ、数字を飛ばしてしまうミスが発生しやすいです。

そこで、この記事では「選択したテキストの数だけ自動で連番入力」してくれるIllustratorスクリプト【text_number】をご紹介します。

このスクリプトを使えば今まで、連番の数字を一つ一つ入力していた作業を自動化することができるので、入力ミスを防ぎ作業効率を高めることができます。

「連番入力の手間を改善したい」と思っているデザイナーの方は、ぜひ使ってみてください。
それではどうぞ!

Profile
この記事を書いている私は、DTPデザイナーとしてIllustratorの操作経験が15年以上あり、スクリプトも自ら作成し、デザイン作業の効率化を図っています。
本ブログでもスクリプトに関する記事を定期的に公開していますので、ぜひご参考にしてください。
関連記事:「完全無料」で作業の効率化!Illustratorスクリプト特集!

「クリエイティブ」がわかる転職エージェント

●「量より質」を重視した求人のご紹介
●「クリエイティブがわかっている」
●「求人企業を深く知る・密接な関係」

【text_number】スクリプトの概要

DESCRIPTION
まず【text_number】とは、どのようなスクリプトなのかをご説明します。

スクリプトの機能

【text_number】は、私が自作したオリジナルスクリプトで、テキストで連番を入力する際に役立つスクリプトです。例えば、カタログやリストの作成時に役立ちます。
以下で主な機能をご紹介します。

  • アラート
  • 
・ドキュメント内で選択されたテキストオブジェクトを対象に連番を適用します。選択がない場合は警告を表示します。

  • 設定ダイアログの表示・設定
  • 表示されるダイアログから以下の設定で行えます

    ・連番の開始番号
    ・連番の表示方法
    ・連番の接頭辞
    ・置換順序


  • 連番の適用
  • ・設定に従い、各テキストフレームに連番を付与します。

  • 完了通知
  • ・処理が成功すると「作業が完了しました!」というメッセージを表示します。

  • 注意点
  • ・テキストオブジェクトをカウントする為、エリア内文字で複数行あっても一つとカウントされます。

スクリプトの使い方

【text_number】は、以下の手順で利用できます。
使い方の手順

  • STEP1.連番を適用したいテキストオブジェクトを選択
  • STEP2.【text_numbe】を起動
  • STEP3.ダイアログで設定をおこなう
  • STEP4.「OK」ボタンで実行

操作プレビュー

なお、次の記事ではIllustratorスクリプトのメニュー以外からの使い方について詳しく解説しています。
ぜひこちらの記事も参考にしてください。

スクリプトのダウンロード

【text_number】は、こちらからサンプルとしてダウンロードできます。
使用前に、必ず「注意事項と免責事項」をご確認ください。安全に利用していただくための重要な情報が記載されています。

ダウンロード:text_number.jsx

ダウンロードができない方は、次の章でソースコードを公開しているのでテキストエディタにコピーしてお使いくだい

動作チェック

このスクリプトは、以下の環境で動作確認済みです。

・Illustrator 2024【Mac】

もし、スクリプトが動作しない場合は、下記の記事を参考にしてください

関連記事:Illustratorスクリプトが動かない時の簡単解決法5選



【text_number】スクリプトのソースコード

SOURCE CODE
ここでは、【text_number】の動作フローと各処理条件が一目でわかるソースコードを紹介します。
理解しやすいよう、説明用のコメントアウトも含まれていますので、参考にしながらコードの動きを確認してください。

ソースコード


function main() {
    try {
        var doc = app.activeDocument; //現在アクティブなドキュメントを取得します。

        if (doc.selection.length === 0) {
            alert("テキストが選択されていません");
            return;
        }

        var dlg = new Window('dialog', '設定');
        dlg.orientation = 'column';
        dlg.alignChildren = 'left';

        var helpBtn = dlg.add('button', undefined, 'ヘルプ');
        helpBtn.onClick = function() {
            alert("このダイアログでは、連番の設定を行います。各オプションの説明はツールチップに表示されます。");
        };

        dlg.add('statictext', undefined, '連番の開始番号を入力してください:');//.helpTip = "連番の開始番号を入力します。";
        var startNumberInput = dlg.add('edittext', undefined, '1');
        startNumberInput.characters = 5;
        startNumberInput.helpTip = "連番の開始番号を入力します。";

        dlg.add('statictext', undefined, '数字の前に「0」を追加する場合は選択してください:');//.helpTip = "連番の桁数を選択します。";
        var digitDropdown = dlg.add('dropdownlist', undefined, ['なし', '0', '00', '000']);
        digitDropdown.selection = 0;
        digitDropdown.helpTip = "01などにする場合は選択してください";

        dlg.add('statictext', undefined, '連番の前に追加するテキストを入力してください:');//.helpTip = "連番の前に追加するテキストを入力します。";
        var prefixInput = dlg.add('edittext', undefined, '');
        prefixInput.characters = 20;
        prefixInput.helpTip = "追加しない場合は空白にします。";

        dlg.add('statictext', undefined, 'テキストを置換する順番を指定してください:').helpTip = "テキストを置換する順番を選択します。";
        var directionDropdown = dlg.add('dropdownlist', undefined, ['左から右', '右から左', '左上から右下', '右上から左下']);
        directionDropdown.selection = 0;
        directionDropdown.helpTip = "テキストを置換する順番を選択します。";

        var buttonGroup = dlg.add('group');
        buttonGroup.add('button', undefined, 'OK', {name: 'ok'});
        buttonGroup.add('button', undefined, 'キャンセル', {name: 'cancel'}).onClick = function() {
            dlg.close();
        };

        if (dlg.show() !== 1) {
            return; // キャンセルボタンが押された場合、処理を中断します。
        }

        var startNumber = parseInt(startNumberInput.text);
        if (isNaN(startNumber)) {
            throw new Error("開始番号は数値でなければなりません。");
        }

        var digitOption = digitDropdown.selection.text;
        var prefixText = prefixInput.text;
        var direction = directionDropdown.selection.text;

        var textFrames = [];
        for (var i = 0; i < doc.selection.length; i++) {
            if (doc.selection[i].typename === "TextFrame") {
                textFrames.push(doc.selection[i]);
            }
        }

        textFrames.sort(function(a, b) {
            switch (direction) {
                case "左から右":
                    return b.top - a.top || a.left - b.left;
                case "右から左":
                    return b.top - a.top || b.left - a.left;
                case "左上から右下":
                    return a.left - b.left || b.top - a.top;
                case "右上から左下":
                    return b.left - a.left || b.top - a.top;
                default:
                    return 0;
            }
        });

        for (var i = 0; i < textFrames.length; i++) {
            var number = startNumber + i;
            var text;
            switch (digitOption) {
                case "なし":
                    text = number.toString();
                    break;
                case "0":
                    text = ("0" + number).slice(-2);
                    break;
                case "00":
                    text = ("00" + number).slice(-3);
                    break;
                case "000":
                    text = ("000" + number).slice(-4);
                    break;
            }
            textFrames[i].contents = prefixText + text;
        }

        alert("作業が完了しました!");
    } catch (e) {
        alert("エラーが発生しました: " + e.message);
    }
}

main();

なお、Illustratorスクリプトの作成については、下記の記事を参考にしてください。

関連記事:【入門編】Illustratorスクリプトの作り方をサンプルを交えて解説



注意事項と免責事項

ATTENTION
【text_number】は、商用利用可能です。ただし使用につきましては、下記の注意事項と免責事項を必ずお守りください。

注意事項

  1. 予期せぬエラーやデータ損失を防ぐために、スクリプト実行前には必ずデータを保存してください。
  2. 事前にスクリプトの動作確認を行い、環境に適しているか確認してください。
  3. Illustratorのアップデートによりスクリプトの動作が変わる可能性があります。アップデート後の不具合についてはサポートできませんので、あらかじめご了承ください。

免責事項

  1. ご利用はすべて自己責任でお願いいたします。
  2. スクリプトの使用によるトラブルや損失について、当方は一切の責任を負いません。
  3. 商用利用における成果物の品質や結果に関しては、一切の責任を負いません。
  4. 本スクリプトの著作権は制作者に帰属します。無断で転送・販売・配布することは禁止いたします。



まとめ:連番入力を自動化する【text_number】スクリプト

summary
今回は、選択したテキストフレームに自動で連番をつけるIllustratorスクリプト【text_number】を紹介しました。
今まで一つ一つ手作業で行っていた連番を自動で行えるので、ぜひ試してみてください。

ダウンロードはこちら:text_number.jsx

というわけで今回は以上です。
『ミスを防ぐ!数字の連番入力を自動化するIllustratorスクリプト』を最後までお読みいただき、ありがとうございました。

Illustratorスクリプトのおすすめ書籍!

Illustratorスクリプトについて学習したい方は、【Illustrator自動化 基本編】がサンプルコードが【330本】掲載されているのでオススメです。

また、今回紹介した書籍以外にもスクリプトに関する書籍を紹介しているので参考にしてください。

ガネメ現役サラリーマン

投稿者の過去記事

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやパソコンのセキュリティ知識・参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります。

◇このブログはアフィリエイト広告を利用しています

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

プロフィール

face

ガネメ
鹿児島県在住
現役サラリーマン

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやセキュリティ知識、参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

詳しいプロフィールはこちら

アーカイブ

カテゴリー

使用中のレンタルサーバー

ピックアップ記事

  1. スクリプトの実行を簡略化
    デザイン効率化戦略:スクリプト実行を効率化する スクリプトを実行する手間を減らしたい…
  2. Illustratorスクリプト特集
    いつも訪問していただきありがとうございます。 もっと効率よくデザイン作業を進めたい …
  3. オブジェクト寸法を自動追加
    デザイン効率化戦略:寸法入力を効率化 図面に寸法を追加するのが手間 都度、オブジェク…




ブログランキング・にほんブログ村へ   
PAGE TOP