【Illustrator】スポイトで拾った色から“色玉+HEX”を自動生成するスクリプト【無料公開スクリプト】

カラーパレットをまとめて複数作成する必要ができたので、色玉(カラーコードがわかる■)とその右側にテキストでカラーコードが自動で生成されるスクリプトを組みました。
もしよかったらお使いください。
使用環境
OS: Windows 11
使用ソフト: Adobe illustrator CC (2026)
作業イメージ
このスクリプトを使うとこんな感じになります。
①色を抽出する
スポイトツール(I)で色玉を作りたい箇所をクリック。

②スクリプトを起動
起動するとこのように色玉とテキストが生成されます。

お好みでファンクションキーを割り当ててください。
スクリプト
/**
* Create Color Chip and Hex Text (Shadow & Alignment Version)
*/
(function() {
if (app.documents.length === 0) return;
var doc = app.activeDocument;
var currentColor = doc.defaultFillColor;
// --- 設定:サイズとフォント ---
var size = 20 * 2.83465; // 20mm
var margin = 4 * 2.83465; // 4mm
var fontSize = 36;
// テキストの色(#2b2b2b)
var textCol = new RGBColor();
textCol.red = 43;
textCol.green = 43;
textCol.blue = 43;
// フォント設定
var textFont;
try { textFont = app.textFonts.getByName("Montserrat-Regular"); }
catch(e) {
try { textFont = app.textFonts.getByName("Futura-Medium"); }
catch(e) {
try { textFont = app.textFonts.getByName("Helvetica"); }
catch(e) { textFont = app.textFonts.getByName("ArialMT"); }
}
}
// --- HEXコードの取得 ---
var hex = "";
if (currentColor.typename === "RGBColor") {
hex = rgbToHex(Math.round(currentColor.red), Math.round(currentColor.green), Math.round(currentColor.blue));
} else if (currentColor.typename === "CMYKColor") {
var r = 255 * (1 - currentColor.cyan / 100) * (1 - currentColor.black / 100);
var g = 255 * (1 - currentColor.magenta / 100) * (1 - currentColor.black / 100);
var b = 255 * (1 - currentColor.yellow / 100) * (1 - currentColor.black / 100);
hex = rgbToHex(Math.round(r), Math.round(g), Math.round(b));
} else if (currentColor.typename === "GrayColor") {
var gVal = Math.round(255 * (1 - currentColor.gray / 100));
hex = rgbToHex(gVal, gVal, gVal);
}
// --- オブジェクトの生成 ---
if (hex !== "") {
var viewCenter = doc.activeView.centerPoint;
var topPos = viewCenter[1] + (Math.random() * 50);
var leftPos = viewCenter[0] + (Math.random() * 50);
// 1. 色玉(抽出した色)
var rect = doc.pathItems.rectangle(topPos, leftPos, size, size);
rect.fillColor = currentColor;
rect.stroked = false;
// --- ドロップシャドウの設定 ---
var shadowXML = '<LiveEffect name="Adobe Drop Shadow"><Dict data="R mode 13 I opac 50 R blur 5 R dx 3 R dy 3 B pnts 1 "/></LiveEffect>';
rect.applyEffect(shadowXML);
// 2. テキスト
var txt = doc.textFrames.add();
txt.contents = hex;
// テキストスタイルの適用
var charStyle = txt.textRange.characterAttributes;
charStyle.size = fontSize;
charStyle.textFont = textFont;
charStyle.fillColor = textCol;
// --- 垂直中央揃えの計算 ---
// テキストの高さを取得し、色玉の中心(topPos - size/2)に合わせる
txt.top = topPos - (size / 2) + (txt.height / 2);
txt.left = leftPos + size + margin;
// グループ化
var group = doc.groupItems.add();
rect.moveToBeginning(group);
txt.moveToBeginning(group);
doc.selection = null;
group.selected = true;
}
function rgbToHex(r, g, b) {
var c = function(v) {
var h = v.toString(16).toUpperCase();
return h.length == 1 ? "0" + h : h;
};
return "#" + c(r) + c(g) + c(b);
}
})();
スクリプトのこだわり
こだわり① スポイトツールで色抽出
Ukiyoe Stockの素材は、元絵(江戸時代に描かれたイラスト)の色彩を可能な限りそのまま残し、ベクターのベタ塗り感を減らしているため、オブジェクトがかなり細分化されています。そしてもちろん、使いやすいようそれらをグループ化しています。
したがって、この色だ!というオブジェクト1つを選択するのも一苦労。
1つのカラーパレット作成なら構わないのですが、たくさんとなるとオブジェクト選択だけでも相当な作業量になってしまうので、スポイトツールでクリックするだけという機能が必須でした。
こだわり② テキストのフォント
フォントって本当に重要ですよね。なので、使用用途に合ったフォントに変えられるようにしました。
デフォルトではMontserrat-Regular→なければFutura-Medium→それもなければHelveticaやArialMTになる、という設定です。
こだわり③ 色玉とテキストの中央揃え
細かいようで結構重要な、オブジェクトの整列。色玉とテキストがガタガタだと全体の出来栄えが悪くなるし、1つずつ設定するのは大変なので、自動で揃うようにしています。
デザインをしていると何かと作る機会のある(?)カラーパレットですが、これがあればかなり楽に作成できます。
デザインやクライアントの要望に合わせて色玉のサイズやテキストフォント、カラーなど調整しながらおつかいください。






