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

スクリプトの実行を簡略化

【便利】スクリプト実行の手間を減らすIllustratorスクリプト

デザイン効率化戦略:スクリプト実行を効率化する

  • スクリプトを実行する手間を減らしたい
  • 大量のスクリプトを管理したい
  • 一度起動したら常駐していて欲しい
  • Illustrator用のスクリプトで「毎回メニューから実行する手間を減らしたい」と思っているデザイナーは、非常に多いです。私も「作業効率が悪い」と悩んでいました。

    そこで、この記事では「よく使うスクリプトを一元管理して実行を効率化」するスクリプト【scriptLibrary】を紹介します。

    このスクリプトを一度起動させれば、Illustratorが立ち上がっている間は登録されたスクリプトをメニュー画面から実行しなくてもよくなるので、作業効率が高くなります。

    Illustratorスクリプトを日常的に使っているデザイナーは、ぜひ活用してください。

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

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

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

    【scriptLibrary】スクリプトの概要

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

    【scriptLibrary】の機能

    【scriptLibrary】は、私が自作したオリジナルスクリプトで、Illustratorスクリプトの管理を簡単にし、操作性を向上させるスクリプトです。
    以下で、主な機能をご紹介します。

    • スクリプトフォルダのパスを保存・変更可能
    • 選択したスクリプトフォルダのパスを ユーザーデータフォルダに保存 し、次回の起動時にもそのフォルダが維持されます。
      また、ダイヤログに表示された「フォルダ変更」ボタンを押すことで、フォルダを変更することができます。

    • スクリプトをリスト形式で管理
    • 指定フォルダ内の .jsx スクリプトを自動的にリスト化し、ダイアログに表示します。

    • ダイアログでスクリプトを選択・実行できる
    • ドロップダウンリスト形式 のダイアログでスクリプトを選択し、「実行」ボタンで実行します。

    • スクリプトの常駐
    • スクリプトを一度実行すると、Illustratorが立ち上がっている間はダイヤログが表示され続けます。

    • 注意点
    • ・スクリプトよっては、正しく動作しない可能性があります。

    【scriptLibrary】の使い方

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

    • STEP1.【scriptLibrary】を起動
    • STEP2.スクリプトが格納されているフォルダを指定(初回のみ)
    • STEP3.ダイアログから実行したいスクリプトを選択
    • STEP4.「実行ボタン」をクリックして選択したスクリプトを実行

    scriptLibrary動作プレビュー

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

    関連記事:【入門】Illustratorスクリプトの使い方!お手軽に自動化のススメ

    【scriptLibrary】のダウンロード

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

    ダウンロード:scriptLibrary.jsx

    ダウンロードができない方は、次の章でソースコードを公開しているのでテキストエディタにコピーしてお使いくだい
    まだ、テキストエディタをお持ちでない方は、下記で「無料で使えるテキストエディタ」を紹介しているので、こちらも参考にしてください。

    関連記事:無料で使えるVS CodeでIllustratorスクリプトの開発環境を整えよう

    動作チェック

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

    ・Illustrator 2024【Mac】

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

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



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

    SOURCE CODE

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

    ソースコード

    
    //スクリプトエンジンのターゲット設定
    #targetengine "main"    //#targetengineディレクティブは、スクリプトが実行されるエンジンを指定します。
    
    // フォルダパスを保存するファイルのパス
    var settingsFile = new File(Folder.userData + "/illustrator_script_folder.txt");    //ユーザーデータフォルダにillustrator_script_folder.txtというファイルを作成し、スクリプトフォルダのパスを保存します。
    
    // フォルダパスを取得する関数
    function getScriptFolder() {
        if (settingsFile.exists) {
            try {
                settingsFile.open("r"); //読み込みモードでファイルを開く
                var folderPath = settingsFile.read();   //開いたファイルを読み込む
                settingsFile.close();   //ファイルを閉じる
                var scriptFolder = new Folder(folderPath); //パスを基に新しいFolderオブジェクトを作成します。
                if (scriptFolder.exists) {  //フォルダが既に存在するかどうかをチェック
                    return scriptFolder;    //フォルダが存在する場合、そのFolderオブジェクトを返します。
                } else {
                    alert("保存されたフォルダが見つかりません。再度フォルダを選択してください。");
                }
            } catch (e) {
                alert("フォルダパスの読み取りに失敗しました: " + e.message);
            }
        }
        return selectAndSaveFolder(); // フォルダを選択して保存する関数を読み込む
    }
    
    // フォルダを選択して保存する関数
    function selectAndSaveFolder() {
        var scriptFolder = Folder.selectDialog("スクリプトフォルダーを選択してください");
        if (scriptFolder) {
            try {
                settingsFile.open("w"); //書き込みモードでファイル開く
                settingsFile.write(scriptFolder.fsName);//指定されたパスをファイルに書き込みます。
                settingsFile.close();
                return scriptFolder;    //結果を返す
            } catch (e) {
                alert("フォルダパスの保存に失敗しました: " + e.message);
            }
        }
        return null;    //関数の処理を終了し、特定の値を返さないことを示します。
    }
    
    // フォルダを変更する関数
    function changeScriptFolder() {
        var newFolder = selectAndSaveFolder();
        if (newFolder) {
            alert("フォルダが変更されました: " + newFolder.fsName);
            return newFolder;
        } else {
            alert("フォルダの変更がキャンセルされました。");
        }
    }
    
    // 選択されたスクリプトを実行する関数
    function executeScript(file) {
        if (file instanceof File) {
            try {
                var bt = new BridgeTalk();
                bt.target = "illustrator";
                bt.body = "$.evalFile('" + file.fsName + "')";  //"$.evalFile('" + file.fsName + "')"は、$.evalFile関数に渡すための文字列を動的に生成します。
                bt.onError = function(err) {
                    alert("Error executing: " + file.displayName + "\n" + err.body);
                };
                bt.send();
            } catch (e) {
                alert("Error executing: " + file.displayName + "\n" + e.message);
            }
        }
    }
    
    // スクリプトフォルダを取得
    var scriptFolder = getScriptFolder();
    
    // フォルダが選択された場合
    if (scriptFolder) {
        var files = scriptFolder.getFiles("*.jsx");  //.jsxのみ読み込む
        var fileNames = [];
    
        for (var i = 0; i < files.length; i++) {
            if (files[i] instanceof File) {
                fileNames.push(files[i].fsName.split("/").pop());   //ファイル名の取得と配列への追加 
            }
        }
    
        // ダイアログを表示する関数
        function showDialog() {
            var dialog = new Window("palette", "スクリプト選択");
            dialog.orientation = "column";  //ダイアログ内の要素が縦方向に配置されます。
    
            var dropdown = dialog.add("dropdownlist", undefined,fileNames);
            dropdown.size = [260, 30];
            dropdown.selection = 0;
    
    
            var buttonGroup = dialog.add("group");
            buttonGroup.orientation = "row";
    
            var executeButton = buttonGroup.add("button", undefined, "実行");
            var changeFolderButton = buttonGroup.add("button", undefined, "フォルダ変更");
            var cancelButton = buttonGroup.add("button", undefined, "キャンセル");
    
            //実行ボタンの処理
            executeButton.onClick = function() {
                var selectedFile = files[dropdown.selection.index];
                executeScript(selectedFile);    //選ばれたリストを実行する
            };
        
            //フォルダ変更ボタンの処理
            changeFolderButton.onClick = function() {
                scriptFolder = changeScriptFolder();
                if (scriptFolder) {
                    files = scriptFolder.getFiles("*.jsx");
                    fileNames = [];
                    for (var i = 0; i < files.length; i++) {
                        if (files[i] instanceof File) {
                            fileNames.push(files[i].displayName);
                        }
                    }
                    dropdown.removeAll();
                    for (var i = 0; i < fileNames.length; i++) {
                        dropdown.add("item", fileNames[i]);
                    }
                    dropdown.selection = 0;
                }
            };
    
            //キャンセルボタンの処理
            cancelButton.onClick = function() {
                dialog.close();
            };
            dialog.location = [20, 100]
            dialog.show();  //パネルを表示する
        }
    
        showDialog();
    } else {
        alert("フォルダが選択されませんでした。");
    }
    

    なお下記の記事では、Illustratorスクリプトを自作する方法についてスクリプトコードの事例を交え解説しているのでよければ参考にしてください。




    注意事項と免責事項

    ATTENTION

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

    注意事項

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

    免責事項

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



    まとめ:手間なく実行【scriptLibrary】スクリプト

    summary
    本記事では、「よく使うスクリプトを一元管理して実行を効率化」してくれるIllustratorスクリプト【scriptLibrary】を紹介しました。
    このスクリプトを使えば、今まで毎回「メニューから選択して実行」していた手間をなくすことができるので、ぜひこのスクリプトを活用してください。

    ダウンロード:scriptLibrary.jsx

    というわけで今回は以上です。
    『【便利】スクリプト実行の手間を減らすIllustratorスクリプト』を最後までお読みいただきありがとうございました。

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

    サンプルプログラム330本掲載

    また、下記の記事では今回紹介した【Illustrator自動化 基本編】以外にもスクリプトに関する書籍を紹介しているので参考にしてください。

    ガネメ現役サラリーマン

    投稿者の過去記事

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

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

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

    プロフィール

    face

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

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

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

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

    アーカイブ

    カテゴリー

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

    ピックアップ記事

    1. Illustratorスクリプトでレイヤーを操作する
      新規レイヤーを作成したい レイヤーをロックしたい レイヤーを削除したい…
    2. 日付を自動取得する
      スクリプトで現在の日付を取得する方法を知りたい 日付の「月と日」を二桁表示したい …
    3. スクリプトの実行を簡略化
      デザイン効率化戦略:スクリプト実行を効率化する スクリプトを実行する手間を減らしたい…




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