カラーチャートを作成することが多いので、選択したオブジェクトの色を基準として、1色だけが1から100まで変化するカラーチャートを作成してくれるスクリプトをChatGPTちゃんにお手伝いしてもらいながら作成しました。
1色だけではなく、全部の色が変化するカラーチャートを作成をしたいときは、「カラーチャート作成スクリプト/Illustrator」の記事を参考にして下さい。
素人が作ったものなので、使ってみて何か問題が起こっても責任は取れません。
動作の正確性や安全性についても保証はできないので、使うのはあくまで自己責任でお願いします。
【使い方】
カラーモードをCMYKにし、基準にしたい色を塗ったオブジェクトを選択して、「CMYK増減チャート_v1.1.jsx」スクリプトを起動する。
※アートボードの左上に作成するので、基準のオブジェクトは左上を避けて作成してください。被ります。

例)Cyan基準、増加値1

【ダウンロード】
Googleドライブです。右上のダウンロードボタンからDLしてください。
https://drive.google.com/file/d/1V3qVaxPGeEhSQQqapk8foXquTG4Zi1WH/view?usp=sharing
右上にこんな感じのボタンがあります。

オブジェクトを選択した状態で、ダウンロードしたスクリプトをドラッグ&ドロップしても使えます。
コードはこんな感じ。
/* =============================================================== カラーモードがCMYKじゃないと動きません。 基準にしたい色を「塗り」に設定して、選択してからスクリプトを実行してください。 =============================================================== */ // ダイアログボックスの作成 var dialog = new Window("dialog", "カラーチャート設定"); dialog.orientation = "column"; dialog.alignChildren = "left"; // ラジオボタンのグループを作成 var radioGroup = dialog.add("panel", undefined, "変更する色成分"); radioGroup.orientation = "column"; radioGroup.alignChildren = "left"; radioGroup.margins = 10; // 各色のラジオボタンを作成 var cyanRadio = radioGroup.add("radiobutton", undefined, "Cyan"); var magentaRadio = radioGroup.add("radiobutton", undefined, "Magenta"); var yellowRadio = radioGroup.add("radiobutton", undefined, "Yellow"); var blackRadio = radioGroup.add("radiobutton", undefined, "Black"); // 増加値の入力フィールドを追加 var incrementGroup = dialog.add("group"); incrementGroup.orientation = "row"; incrementGroup.alignChildren = "left"; incrementGroup.margins = 10; incrementGroup.add("statictext", undefined, "増加値:"); var incrementInput = incrementGroup.add("edittext", undefined, "1"); incrementInput.characters = 5; incrementGroup.add("statictext", undefined, "%"); // ボタングループ var buttonGroup = dialog.add("group"); buttonGroup.orientation = "row"; buttonGroup.alignChildren = "center"; buttonGroup.margins = 10; // OKボタン var okButton = buttonGroup.add("button", undefined, "OK"); okButton.onClick = function() { dialog.close(1); } // キャンセルボタン var cancelButton = buttonGroup.add("button", undefined, "キャンセル"); cancelButton.onClick = function() { dialog.close(2); } // ダイアログボックスを表示 if (dialog.show() == 1) { // OKがクリックされた場合の処理 createRectangles(); } // 長方形を作成する関数 function createRectangles() { // 選択された色の取得 var selectedColor; if (cyanRadio.value) { selectedColor = "Cyan"; } else if (magentaRadio.value) { selectedColor = "Magenta"; } else if (yellowRadio.value) { selectedColor = "Yellow"; } else if (blackRadio.value) { selectedColor = "Black"; } else { alert("色を選択してください。"); return; } // 増加値の取得 var increment = parseInt(incrementInput.text); if (isNaN(increment) || increment <= 0 || increment > 100) { alert("増加値は1から100の間の整数を入力してください。"); return; } // 選択された色に基づいて長方形の色を変更 var selectedObjects = app.activeDocument.selection; if (selectedObjects.length !== 1 || selectedObjects[0].fillColor.typename !== "CMYKColor") { alert("作りたい色をCMYKで塗りにし、選択してから起動してください"); } else { var baseColor = selectedObjects[0].fillColor; var documentWidth = 297; // ドキュメントの幅 var documentHeight = 420; // ドキュメントの高さ var mmToPt = 2.83465; // ミリからポイントへの変換率 var rectangleSize = 20; // 長方形の一辺の長さ(ミリメートル) var rectanglesPerRow = 10; // 一行に並べる長方形の数 var verticalSpacing = 2; // 長方形間の上下の間隔(ポイント) var initialY = 0; // 初期位置(Y座標) var initialX = 0; // 初期位置(X座標) for (var value = 0; value <= 100; value += increment) { var color = new CMYKColor(); if (selectedColor === "Cyan") { color.cyan = value; color.magenta = baseColor.magenta; color.yellow = baseColor.yellow; color.black = baseColor.black; } else if (selectedColor === "Magenta") { color.cyan = baseColor.cyan; color.magenta = value; color.yellow = baseColor.yellow; color.black = baseColor.black; } else if (selectedColor === "Yellow") { color.cyan = baseColor.cyan; color.magenta = baseColor.magenta; color.yellow = value; color.black = baseColor.black; } else if (selectedColor === "Black") { color.cyan = baseColor.cyan; color.magenta = baseColor.magenta; color.yellow = baseColor.yellow; color.black = value; } // 長方形を作成し、塗りつぶし色を設定 var rectangle = app.activeDocument.pathItems.rectangle(initialY, initialX, rectangleSize * mmToPt, rectangleSize * mmToPt); rectangle.fillColor = color; // 数字のテキストフレームを作成 var textFrame = app.activeDocument.textFrames.add(); textFrame.contents = value; textFrame.top = initialY - 15; textFrame.left = initialX + (rectangleSize * mmToPt - textFrame.width) / 2; // テキストの色を設定 var textColor = (value < 50) ? [0, 0, 0, 100] : [0, 0, 0, 0]; // valueが50以下の場合は黒色、50以上の場合は白色 var textFillColor = new CMYKColor(); textFillColor.cyan = textColor[0]; textFillColor.magenta = textColor[1]; textFillColor.yellow = textColor[2]; textFillColor.black = textColor[3]; textFrame.textRange.characterAttributes.fillColor = textFillColor; // 次の長方形の位置を更新 initialX += (rectangleSize * mmToPt + 2); // 長方形の右に2ポイントの間隔を空ける if (initialX >= rectanglesPerRow * (rectangleSize * mmToPt + 2)) { // 一行に指定数の長方形を描いたら、次の行へ initialX = 0; initialY -= rectangleSize * mmToPt + verticalSpacing; } } } }