2024-12-02

選択したテキストに今日の日付を入力するスクリプト/Illustrator

 



日付を入力することが多いので、選択したテキストに今日の日付を入れるスクリプトをChatGPTちゃんにお手伝いしてもらいながら作成しました。

素人が作ったものなので、使ってみて何か問題が起こっても責任は取れません。
動作の正確性や安全性についても保証はできないので、使うのはあくまで自己責任でお願いします。


【使い方】


適当なテキストオブジェクトを選択して、「日付を入力」スクリプトを起動する。
(自分はアクションに登録して、Ctrl+F12のショートカットで起動できるようにしています。テキストを選択してから、DLしたファイルをイラレ上にドラッグ&ドロップでも起動できます)


【ダウンロード】 


Googleドライブです。右上のダウンロードボタンからDLしてください。


https://drive.google.com/file/d/1E0KfuHVVG-b00OHES7UxDpBKRisINOXQ/view?usp=sharing


右上にこんな感じのボタンがあります。



コードはこんな感じです。

/**
 * 選択したテキストオブジェクトに現在の日付を挿入するスクリプト
 */

(function() {
  // Illustrator バージョンの互換性対応
  if (typeof app === "undefined") {
    app = {
      documents: documents,
      activeDocument: documents.length > 0 ? activeDocument : null
    };
  }

  // メイン処理
  function main() {
    if (app.documents.length === 0) {
      alert("Illustratorで文書を開いてから実行してください。");
      return;
    }

    var selectedObjects = app.activeDocument.selection;

    switch (selectedObjects.length) {
      case 0:
        alert("テキストオブジェクトを1つ選択してください。");
        break;
      case 1:
        insertDateIntoTextObject(selectedObjects[0]);
        break;
      default:
        alert("複数のオブジェクトが選択されています。テキストオブジェクトを1つだけ選択してください。");
    }
  }

  /**
   * 選択されたオブジェクトにテキストを挿入する
   * @param {Object} textObject - 選択されたテキストオブジェクト
   */
  function insertDateIntoTextObject(textObject) {
    if (textObject.typename === "TextFrame" || textObject.typename === "TextArtItem") {
      textObject.contents = getCurrentDate();
    } else {
      alert("テキストオブジェクトを選択してください。");
    }
  }

  /**
   * 現在の日付を "YYYY/MM/DD" 形式で取得する
   * @returns {string} フォーマットされた日付文字列
   */
  function getCurrentDate() {
    var now = new Date();
    var year = now.getFullYear();
    var month = padZero(now.getMonth() + 1);
    var day = padZero(now.getDate());
    return year + "/" + month + "/" + day;
  }

  /**
   * 数値を2桁の文字列に変換する(必要に応じて先頭にゼロを付加)
   * @param {number} num - 変換する数値
   * @returns {string} 2桁の文字列
   */
  function padZero(num) {
    return ("0" + num).slice(-2);
  }

  // スクリプトの実行
  main();
})();