【2026年7月最新】VBA ColorIndex完全ガイド|56色の色見本一覧・Font/Interior/Tab設定とClaude Code活用術

【2026年7月最新】VBA ColorIndex完全ガイド|56色の色見本一覧・Font/Interior/Tab設定とClaude Code活用術

ExcelのVBAでセルや文字の色を変えようとしたとき、「ColorIndexって何?」「番号で何色になるの?」と迷ったことはありませんか。この記事にたどり着いたあなたは、おそらくそのような状況にいるはずです。

VBAのColorIndexプロパティは、Excelが内部で持つ56色の固定パレットから色を番号で指定する仕組みです。「3番 = 赤」「5番 = 青」のように番号と色が対応しているため、覚えてしまえば非常にシンプルに使えます。しかし、「どの番号がどの色なのか」「RGBとどう違うのか」「Font・Interior・Tabごとにどう書くのか」といった疑問が一度に押し寄せてきて、混乱するのも無理はありません。

この記事では、VBA ColorIndexの基本概念から、56色の完全な色見本一覧、実践コード集まで、体系的かつ網羅的に解説します。さらに後半では、Claude Codeを使ってVBAコードを自動生成する方法まで紹介します。「VBAを書くたびに色番号を調べるのが面倒」という方も、この記事一本でその悩みを解消できます。

代表菅澤 代表菅澤
VBAのColorIndexは、最初「なんで番号で指定するの?」と思うかもしれません。でも実は、56色の固定パレットを番号で管理するExcelの歴史的な設計で、一度覚えると非常に使いやすいんです。弊社では業務マクロでColorIndexを多用していますが、最近はClaude Codeに「セルを赤くするVBAを書いて」と指示するだけでコードが生成されるので、番号を調べる手間もほぼなくなりました。
AI鬼管理山崎 AI鬼管理山崎
今日は、ColorIndexの番号一覧をただ並べるだけでなく、実際の業務でどう使うか、そしてAIを活用してVBA作業を効率化する方法まで踏み込んでお伝えします。ブックマークしておくと、いつでも参照できる一覧表として使えますよ。

この記事を読むとわかること:

✔️VBAのColorIndexプロパティの仕組みと、xlColorIndexAutomatic・xlColorIndexNoneの意味
✔️56色の完全な色見本一覧(番号・色名・RGB・16進数対応)
✔️Font・Interior・TabそれぞれのColorIndex設定・取得コード
✔️ColorIndex vs Colorプロパティの違いと、どちらを使うべきか
✔️業務マクロの実践コード(条件付き色付け・一括リセット・色調査)
✔️Claude Codeを使ってVBAコードを自動生成する具体的な方法
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理
📌 この記事の結論
【2026年7月最新】VBA ColorIndex完全ガイド|56色の色見本一覧・Font/Interior/Tab設定とClaude Code活用術
VBAのColorIndexプロパティを完全解説。56色の色見本一覧(番号・RGB・16進数)からFont/Interior/Tab別の設定・取得コード、ColorIndexとRGBの違い、Claude Codeを使ったVBA自動生成まで網羅した実践ガイド。

01 ColorIndexプロパティとは何か:基本の仕組みを理解する Excelの56色固定パレットと番号対応の設計思想

VBAのColorIndexプロパティは、Excelが内部に持つ56色の固定カラーパレットから色を番号(インデックス番号)で指定するためのプロパティです。Excelの旧バージョン(Excel 97〜2003時代)から引き継がれている仕組みで、現在のExcel 2016・2019・Microsoft 365でも完全に動作します。

📚 用語解説

ColorIndex(カラーインデックス):ExcelがRGBではなく、1〜56の整数番号でパレット上の色を参照する仕組み。Font(文字)・Interior(セル背景)・Borders(罫線)・Tab(シート見出し)など各オブジェクトのColorIndexプロパティに番号を代入することで、色を設定できる。

ColorIndexを理解するうえで最も重要な概念は「56色のパレット」です。Excelの標準カラーパレットには56色が定義されており、各色に1〜56の番号(インデックス)が振られています。ColorIndexプロパティにこの番号を設定することで、対応する色が適用されます。

たとえば、ColorIndex = 3 は「赤」、ColorIndex = 5 は「青」を意味します。プログラムから見ると「3」という数字で赤色を指定できるため、可読性の高いコードを書きやすいという利点があります。一方、RGB値(0〜255の三原色)で色を直接指定する「Colorプロパティ」と比べると、表現できる色数は56色に限定されるというトレードオフがあります。

📚 用語解説

xlColorIndexAutomatic:VBAで色を「自動」に戻すための定数。Font.ColorIndex = xlColorIndexAutomatic と書くと、Excelのデフォルトの文字色(通常は黒)に戻る。数値としては -4105 に相当する。

📚 用語解説

xlColorIndexNone:VBAで色を「なし(透明)」に設定するための定数。Interior.ColorIndex = xlColorIndexNone と書くと、セル背景を「塗りつぶしなし」に戻す。数値としては -4142 に相当する。

ColorIndexには、通常の1〜56の番号に加えて、2つの特別な定数が存在します。

定数数値意味主な用途
xlColorIndexAutomatic-4105自動(デフォルト色)Font.ColorIndex に使用(黒に戻す)
xlColorIndexNone-4142なし(透明・塗りつぶしなし)Interior.ColorIndex に使用(背景色クリア)
AI鬼管理山崎 AI鬼管理山崎
「色をリセットしたい」「元の状態に戻したい」というとき、多くの方が0やNothingを試して混乱します。正解はColorIndexプロパティに xlColorIndexAutomatic または xlColorIndexNone を代入することです。この2つは覚えておくだけで、後々のVBA作業がぐっと楽になります。

ColorIndexの使用例を先に把握しておきましょう。基本的な書き方は以下の通りです。

' セルA1の文字色を赤(ColorIndex=3)に設定
Range("A1").Font.ColorIndex = 3

' セルA1の背景色を黄色(ColorIndex=6)に設定
Range("A1").Interior.ColorIndex = 6

' シート1の見出しの色を青(ColorIndex=5)に設定
Worksheets("Sheet1").Tab.ColorIndex = 5

' セルA1の文字色を自動(デフォルト)に戻す
Range("A1").Font.ColorIndex = xlColorIndexAutomatic

' セルA1の背景色をなし(透明)に戻す
Range("A1").Interior.ColorIndex = xlColorIndexNone
ColorIndex番号を確認
56色一覧から
使いたい色の
番号を調べる
オブジェクトを選択
Font/Interior
/Tab/Borders
から選ぶ
ColorIndexを設定
.ColorIndex =
番号を代入する
マクロを実行
Excelで色が
変わっているか
確認する

02 56色パレット完全一覧(番号・色名・RGB・16進数) ブックマーク必須の永久保存版カラーリファレンス

以下は、ExcelのVBAで使用できる56色のColorIndex完全一覧です。番号・日本語色名・英語色名・RGB値・16進数コードを一覧にしました。VBAコードを書く際の参照用に、ブックマークしておくことをお勧めします。

💡 色はExcelのバージョンやテーマで変わる場合がある

ColorIndex 1〜16は標準色として固定されており、どのExcelバージョンでも同じ色になります。17〜56は「テーマカラー」の影響を受ける場合があり、テーマ変更後に見た目が変わることがあります。コードの安定性を重視するなら、1〜16の標準色を中心に使うのが推奨です。

番号色名(日本語)色名(英語)RGB16進数
1Black000#000000
2White255255255#FFFFFF
3Red25500#FF0000
4明るい緑Bright Green02550#00FF00
5Blue00255#0000FF
6Yellow2552550#FFFF00
7ピンクPink2550255#FF00FF
8シアンTurquoise0255255#00FFFF
9暗い赤Dark Red12800#800000
10Green01280#008000
11濃い青Dark Blue00128#000080
12オリーブDark Yellow1281280#808000
13Violet1280128#800080
14ティールTeal0128128#008080
15明るいグレーGray-25%192192192#C0C0C0
16グレーGray-50%128128128#808080
17ペリウィンクルPeriwinkle153153255#9999FF
18プラムPlum15351102#993366
19アイボリーIvory255255204#FFFFCC
20明るいシアンLight Turquoise204255255#CCFFFF
21濃い紫Dark Purple1020102#660066
22サーモンCoral255128128#FF8080
23オーシャンブルーOcean Blue0102204#0066CC
24ラベンダーLavender204204255#CCCCFF
25小麦色Tan255204153#FFCC99
26薄いオレンジLight Orange2551530#FF9900
27コーンフラワーCornflower Blue51102255#3366FF
28アクアマリンAquamarine51204204#33CCCC
29ライムグリーンLime Green0204102#00CC66
30ゴールドGold2552040#FFCC00
31オレンジ(薄)Light Orange 22551530#FF9900
32オレンジ(濃)Orange2551020#FF6600
33ブルーグレーBlue-Gray102102153#666699
34グレー(40%)Gray-40%150150150#969696
35濃いティールDark Teal051102#003366
36シーグリーンSea Green51153102#339966
37濃い緑Dark Green 20510#003300
38濃いオリーブDark Olive51510#333300
39Brown153510#993300
40明るいオレンジLight Orange 32551530#FF9900
41アイスブルーIce Blue0204255#00CCFF
42スカイブルーSky Blue51204255#33CCFF
43明るい黄緑Light Green1532040#99CC00
44黄(明)Yellow 22552040#FFCC00
45タンTan 22551530#FF9900
46ローズRose2550102#FF0066
47明るい青Bright Blue0102255#0066FF
48明るい黄Light Yellow255255102#FFFF66
49明るいシアン2Light Cyan102255255#66FFFF
50明るい緑2Light Green 2102255153#66FF99
51薄い黄Pale Yellow255255153#FFFF99
52水色Light Blue0153255#0099FF
53バイオレット2Violet 21530255#9900FF
54明るい赤Hot Pink2550153#FF0099
55黄緑Yellow-Green1532550#99FF00
56白(グレー)White Gray255255255#FFFFFF
代表菅澤 代表菅澤
56色の一覧を見ると、1〜16は「基本カラー」として特に頻用されます。業務マクロで使う場合、大半のシーンはColorIndex 1〜16の範囲で完結します。17〜56はやや薄い・淡い色が多く、チャートや報告書の色分けに使われるケースが多いですね。

03 Fontで文字色を設定・取得する セル・範囲・フォントオブジェクトへのColorIndex適用方法

VBAでセル内の文字色(フォントカラー)を変更するには、Font.ColorIndexプロパティを使います。Font オブジェクトはセルやセル範囲に対して存在し、ColorIndex に色番号を設定することで文字の色が変わります。

📚 用語解説

Font オブジェクト:Excelのセルに含まれる文字のフォント設定を管理するオブジェクト。ColorIndex(色)・Size(サイズ)・Bold(太字)・Italic(斜体)・Name(フォント名)などのプロパティを持つ。Range("A1").Font で参照できる。

3-1. 文字色を設定する基本コード

セルA1の文字色を赤に変えるには、以下のように書きます。

Sub SetFontColor()
    ' セルA1の文字色を赤(ColorIndex=3)に設定
    Range("A1").Font.ColorIndex = 3

    ' 複数セルに一括で文字色を設定する
    Range("A1:C10").Font.ColorIndex = 3

    ' アクティブセルの文字色を青(ColorIndex=5)に設定
    ActiveCell.Font.ColorIndex = 5

    ' 選択範囲すべての文字色を変更する
    Selection.Font.ColorIndex = 9  ' 暗い赤
End Sub

ColorIndex = 3 で赤、ColorIndex = 5 で青、ColorIndex = 6 で黄色が設定されます。上の56色一覧表と照らし合わせながら、任意の番号を指定してください。

3-2. 文字色のColorIndex番号を取得する

すでに色が設定されているセルから、ColorIndex番号を取得して変数に格納したいケースもあります。設定と逆の操作で、プロパティの値を読み出すだけです。

Sub GetFontColorIndex()
    Dim idx As Long

    ' セルA1の文字色インデックスを取得
    idx = Range("A1").Font.ColorIndex

    ' メッセージボックスに表示
    MsgBox "セルA1の文字色インデックス: " & idx

    ' 取得したインデックスを別の処理に使う
    If idx = 3 Then
        MsgBox "赤色が設定されています"
    ElseIf idx = xlColorIndexAutomatic Then
        MsgBox "自動色(デフォルト)が設定されています"
    End If
End Sub

3-3. 文字色を自動(デフォルト)に戻す

一度設定した文字色を元の自動色(通常は黒)に戻したいときは、xlColorIndexAutomaticを使います。0や""を代入しても色はリセットされないため、必ずこの定数を使うことが重要です。

Sub ResetFontColor()
    ' セルA1の文字色を自動(デフォルト)に戻す
    Range("A1").Font.ColorIndex = xlColorIndexAutomatic

    ' シート全体の文字色をリセット
    Cells.Font.ColorIndex = xlColorIndexAutomatic
End Sub
💡 ForEachでループしながら文字色を設定する

複数セルに条件付きで色を付けたい場合は、For Each ~ Next でセルをループしながら ColorIndex を条件分岐で変える方法が便利です。たとえば「値が100以上なら赤、50〜99なら黄、49以下なら緑」という信号機カラーコーディングも、If文とColorIndexの組み合わせで数行で実装できます。詳細は第7章で実践コードを紹介します。

AI鬼管理山崎 AI鬼管理山崎
ColorIndex を使って文字色を設定する処理は、業務マクロで非常によく使われます。たとえば「売上目標を達成した行を緑、未達の行を赤に色付けする」という処理は、ColorIndex 10と3を条件で切り替えるだけで完成します。シンプルな割に、資料の見やすさが格段に向上するテクニックです。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

04 Interiorでセルの背景色を設定・取得する セル塗りつぶしの設定・取得・クリアを完全マスター

セルの背景色(塗りつぶし)を設定するには、Interior.ColorIndexプロパティを使います。Fontが文字の色を管理するのに対し、Interiorはセルの背景部分の色を管理します。このプロパティはVBA業務マクロで最も頻繁に使われる色設定のひとつです。

📚 用語解説

Interior オブジェクト:Excelのセルの「内側(背景部分)」のフォーマットを管理するオブジェクト。ColorIndex(塗りつぶし色)・Pattern(模様)・PatternColor(模様の色)などのプロパティを持つ。セルの背景色設定はすべてこのオブジェクトを通じて行う。

4-1. 背景色を設定する基本コード

Sub SetInteriorColor()
    ' セルA1の背景色を黄(ColorIndex=6)に設定
    Range("A1").Interior.ColorIndex = 6

    ' 範囲B2:D10の背景色を明るい緑(ColorIndex=4)に設定
    Range("B2:D10").Interior.ColorIndex = 4

    ' 現在のセルを水色(ColorIndex=41)に設定
    ActiveCell.Interior.ColorIndex = 41

    ' 選択範囲の背景色を薄いオレンジ(ColorIndex=40)に設定
    Selection.Interior.ColorIndex = 40
End Sub

4-2. 背景色のColorIndex番号を取得する

Sub GetInteriorColorIndex()
    Dim idx As Long

    ' セルA1の背景色インデックスを取得
    idx = Range("A1").Interior.ColorIndex

    ' 値の確認
    If idx = xlColorIndexNone Then
        MsgBox "背景色なし(塗りつぶしなし)です"
    Else
        MsgBox "背景色インデックス: " & idx
    End If
End Sub

4-3. 背景色を「なし」(透明)に戻す

セルの背景色をクリアして「塗りつぶしなし」に戻すには、xlColorIndexNoneを使います。

Sub ClearInteriorColor()
    ' セルA1の背景色をクリア(塗りつぶしなし)
    Range("A1").Interior.ColorIndex = xlColorIndexNone

    ' シート全体の背景色をクリア
    Cells.Interior.ColorIndex = xlColorIndexNone

    ' 別の方法(ColorPatternをnlPatternNoneに設定)
    Range("A1").Interior.Pattern = xlNone
End Sub
⚠️ Interior.ColorIndex = 0 は意図しない動作を引き起こす

ColorIndexに0を代入すると「塗りつぶしなし」にはならず、パレットの先頭に対応する黒色が設定されてしまうことがあります。背景色を透明に戻したい場合は必ず xlColorIndexNone を使うのが正しい方法です。この誤りは初学者がよく踏む罠ですので注意してください。

✔️背景色の設定: Range("A1").Interior.ColorIndex = 番号
✔️背景色の取得: idx = Range("A1").Interior.ColorIndex
✔️背景色のクリア: Range("A1").Interior.ColorIndex = xlColorIndexNone
✔️全体クリア: Cells.Interior.ColorIndex = xlColorIndexNone
✔️塗りつぶしなしの確認: If Range("A1").Interior.ColorIndex = xlColorIndexNone Then
代表菅澤 代表菅澤
背景色は、Excelの「条件付き書式」との併用に注意が必要です。VBAでColorIndexを設定しても、条件付き書式が優先されて見た目上は変わらないように見えることがあります。そういう場合は条件付き書式を確認・削除してから、VBAでColorIndexを設定するようにしましょう。

05 Tabでシート見出しの色を設定・取得する シート見出し(タブ)の色を変えるVBAコード

Excelのシート見出し(タブ)の色をVBAで変更するには、Worksheets("Sheet名").Tab.ColorIndexを使います。見出しの色を業務の状況に合わせて色分けしておくと、大量シートを管理する際の視認性が大幅に向上します。

📚 用語解説

Tab オブジェクト:Excelのワークシートのシート見出し(タブ)を管理するオブジェクト。WorksheetオブジェクトのTabプロパティでアクセスできる。ColorIndexプロパティを持ち、シート見出しの色を設定・取得できる。

5-1. シート見出しの色を設定する

Sub SetTabColor()
    ' Sheet1の見出しを赤(ColorIndex=3)に設定
    Worksheets("Sheet1").Tab.ColorIndex = 3

    ' アクティブシートの見出しを青(ColorIndex=5)に設定
    ActiveSheet.Tab.ColorIndex = 5

    ' 複数シートを一括で色設定する
    Dim ws As Worksheet
    Dim idx As Integer
    idx = 3  ' 最初の色(赤から開始)

    For Each ws In Worksheets
        ws.Tab.ColorIndex = idx
        idx = idx + 1
        If idx > 8 Then idx = 3  ' 3〜8でサイクル
    Next ws
End Sub

5-2. シート見出しの色を取得する

Sub GetTabColorIndex()
    Dim idx As Long

    ' Sheet1の見出し色インデックスを取得
    idx = Worksheets("Sheet1").Tab.ColorIndex

    MsgBox "Sheet1のタブ色インデックス: " & idx
End Sub

5-3. シート見出しの色を自動に戻す

Sub ResetTabColor()
    ' Sheet1の見出し色を自動に戻す
    Worksheets("Sheet1").Tab.ColorIndex = xlColorIndexAutomatic

    ' すべてのシートのタブ色をリセット
    Dim ws As Worksheet
    For Each ws In Worksheets
        ws.Tab.ColorIndex = xlColorIndexAutomatic
    Next ws
End Sub
💡 シートタブの色分けで業務進捗を管理する

たとえば、シートの完成状況に応じてタブ色を自動変更するマクロを作れます。「未着手=灰色(ColorIndex=15)」「作業中=黄(ColorIndex=6)」「完了=緑(ColorIndex=10)」のように、特定のセルの値を読んでタブ色を動的に切り替えるとスプレッドシートの運用が格段に効率化します。

AI鬼管理山崎 AI鬼管理山崎
複数人でExcelを共有するとき、シートタブの色分けは地味ながら効果的なコミュニケーション手段です。「赤タブは要確認」「緑タブは作業完了」のようなルールをチームで共有しておけば、VBAマクロが自動でタブ色を更新するだけで、状況確認の連絡コストが下がります。

06 ColorIndex vs Color(RGB直接指定)の違いと使い分け 2つの色指定方法を比較し、最適な選択基準を整理する

VBAで色を指定する方法は主に2つあります。ColorIndex(パレット番号)とColor(RGB値)です。どちらを使うかは、用途と求める精度によって異なります。この章では両者の違いを正確に理解し、適切に使い分けられるようになることを目標とします。

比較項目ColorIndexColor(RGB)
色の指定方法1〜56の番号RGB(R,G,B)または16進数
選べる色数56色固定約1,677万色(制限なし)
コードの読みやすさ番号で覚えれば直感的RGB値は一見してわかりにくい
テーマによる変化17〜56は変わる可能性あり常に指定した通りの色
処理速度若干速い(番号参照)やや遅い(RGB変換処理あり)
用途定型報告書・簡易マクロ厳密な色指定・ブランドカラー

📚 用語解説

Color プロパティ(RGB指定):RGBの三原色(Red・Green・Blue)それぞれを0〜255で指定して色を設定するプロパティ。たとえば RGB(255, 0, 0) は赤、RGB(0, 128, 0) は緑。ColorIndexが56色に限定されるのに対し、Colorプロパティは約1,677万色(2^24色)を表現できる。

6-1. ColorとColorIndexの書き方の比較

' ===== ColorIndexを使う場合 =====
' 赤(パレット番号3)
Range("A1").Font.ColorIndex = 3
Range("A1").Interior.ColorIndex = 3

' ===== Colorプロパティ(RGB直接指定)を使う場合 =====
' 赤(RGB値で指定)
Range("A1").Font.Color = RGB(255, 0, 0)
Range("A1").Interior.Color = RGB(255, 0, 0)

' ===== 16進数で指定する場合(VBAの&H表記)=====
' 赤(16進数: BBGGRR の逆順に注意!)
Range("A1").Font.Color = &H0000FF   ' ←VBAの16進数はBGR逆順!

' ===== ColorIndexとColorの変換 =====
' ColorIndex番号から対応するRGB値を取得する
Dim palette_color As Long
palette_color = ActiveWorkbook.Colors(3)  ' パレット番号3の実際のRGB値を取得
Dim r As Long, g As Long, b As Long
r = palette_color Mod 256
g = (palette_color \ 256) Mod 256
b = (palette_color \ 65536) Mod 256
MsgBox "R=" & r & " G=" & g & " B=" & b
⚠️ VBAの16進数カラー指定はBGR順(逆順)に注意

HTMLやCSSでは #RRGGBB の順番で色を指定しますが、VBAの &H 表記ではなぜか BBGGRR(青・緑・赤の逆順)になります。たとえば赤(RGB: 255,0,0)をVBAで16進数指定する場合は &H0000FF(青緑成分が0、赤成分がFF)となります。HTMLと同じ感覚で書くと色が全く違うものになるため、注意が必要です。

6-2. どちらを選ぶべきか

実務的な判断基準としては次のように考えると迷いがなくなります。

✔️ColorIndexを使う場面: 警告(赤)・成功(緑)・注意(黄)のような定型色付け。簡潔なコードが欲しいとき
✔️Colorプロパティを使う場面: 会社のブランドカラー(特定のRGB値)を厳密に指定したいとき
✔️ColorIndexを避ける場面: テーマを頻繁に切り替えるブックで、色の一貫性が重要なとき
✔️ハイブリッド運用: 標準色(1〜16)はColorIndex、微妙な色合いはColorプロパティと使い分ける
代表菅澤 代表菅澤
弊社の業務マクロでは、基本的にColorIndex 3(赤)・6(黄)・10(緑)を信号機カラーとして使い回しています。16色の標準色なら見た目が環境を問わず安定しますし、コードも短くて済む。厳密なブランドカラーが必要なレポートだけColorプロパティを使う、というルールで運用しています。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

07 実践!業務で使えるVBAカラーコード集 条件付き色付け・一括リセット・色調査マクロの完全サンプル

ここまでの知識を活かして、実際の業務で即使えるVBAカラーコードを紹介します。コピー&ペーストして使えるレベルのサンプルをそろえましたので、ご自身の業務に合わせてカスタマイズしてください。

7-1. 信号機カラーで数値を自動色付けするマクロ

売上・点数・評価など、数値の大小によって自動的に色分けするマクロです。条件を変えることでさまざまな業務に応用できます。

Sub TrafficLightColoring()
    ' A列のデータをチェックして信号機カラーで色付けする
    ' 100以上=緑(10) / 50〜99=黄(6) / 49以下=赤(3)

    Dim ws As Worksheet
    Dim cell As Range
    Dim lastRow As Long

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For Each cell In ws.Range("A2:A" & lastRow)
        If IsNumeric(cell.Value) Then
            Select Case cell.Value
                Case Is >= 100
                    cell.Interior.ColorIndex = 10   ' 緑
                    cell.Font.ColorIndex = xlColorIndexAutomatic
                Case 50 To 99
                    cell.Interior.ColorIndex = 6    ' 黄
                    cell.Font.ColorIndex = 1        ' 黒(可読性確保)
                Case Else
                    cell.Interior.ColorIndex = 3    ' 赤
                    cell.Font.ColorIndex = 2        ' 白(可読性確保)
            End Select
        End If
    Next cell

    MsgBox "色付け完了!(対象行数: " & lastRow - 1 & "行)"
End Sub

7-2. 指定範囲の背景色を一括リセットするマクロ

マクロで色付けした範囲を、まとめてクリアするユーティリティです。再度色付け処理を走らせる前のリセット処理として活用できます。

Sub ResetAllColors()
    ' アクティブシート全体の色をリセット
    Dim answer As Integer
    answer = MsgBox("このシートのすべての色設定をリセットしますか?", _
                    vbYesNo + vbQuestion, "色のリセット確認")

    If answer = vbYes Then
        ' 背景色をクリア
        Cells.Interior.ColorIndex = xlColorIndexNone
        ' 文字色を自動に戻す
        Cells.Font.ColorIndex = xlColorIndexAutomatic
        MsgBox "リセット完了!"
    End If
End Sub

7-3. シート上の色付きセルを一覧表示するマクロ

どのセルにどの色が付いているか、一覧表に書き出して把握できるようにするマクロです。誰かが手動で色付けしたシートの確認や、引き継ぎ資料の作成に便利です。

Sub ListColoredCells()
    ' 色付きセルを新しいシートに一覧表示する

    Dim srcWs As Worksheet
    Dim rptWs As Worksheet
    Dim cell As Range
    Dim usedRange As Range
    Dim row As Long

    Set srcWs = ActiveSheet

    ' 出力先シートを準備(既存なら削除して再作成)
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets("色付きセル一覧").Delete
    Application.DisplayAlerts = True
    On Error GoTo 0

    Set rptWs = Worksheets.Add
    rptWs.Name = "色付きセル一覧"

    ' ヘッダー
    rptWs.Range("A1").Value = "セルアドレス"
    rptWs.Range("B1").Value = "背景色Index"
    rptWs.Range("C1").Value = "文字色Index"
    rptWs.Range("D1").Value = "セルの値"
    rptWs.Range("A1:D1").Font.Bold = True

    row = 2
    Set usedRange = srcWs.UsedRange

    For Each cell In usedRange
        Dim bgIdx As Long
        Dim fontIdx As Long
        bgIdx = cell.Interior.ColorIndex
        fontIdx = cell.Font.ColorIndex

        ' 背景色または文字色が設定されているセルだけ記録
        If bgIdx <> xlColorIndexNone Or fontIdx <> xlColorIndexAutomatic Then
            rptWs.Cells(row, 1).Value = cell.Address
            rptWs.Cells(row, 2).Value = bgIdx
            rptWs.Cells(row, 3).Value = fontIdx
            rptWs.Cells(row, 4).Value = cell.Value
            ' 実際の背景色を一覧にも反映
            If bgIdx <> xlColorIndexNone Then
                rptWs.Cells(row, 1).Interior.ColorIndex = bgIdx
            End If
            row = row + 1
        End If
    Next cell

    If row = 2 Then
        MsgBox "色付きセルは見つかりませんでした。"
    Else
        MsgBox "色付きセル一覧を作成しました。(" & row - 2 & "件)"
    End If
End Sub
マクロを実行
対象シートを
アクティブにして
マクロ起動
全セルを走査
UsedRangeを
For Eachで
ループ
色情報を記録
背景色・文字色の
ColorIndexを
新シートに出力
一覧シートを確認
どのセルに
どの色があるか
一目でわかる
AI鬼管理山崎 AI鬼管理山崎
「誰かが手動でセルに色を付けたが、なぜその色なのかわからない」というケースは、業務引き継ぎの現場でよく起きます。このマクロを使えば、全色付きセルを一覧化できるので、ルール整理や引き継ぎ資料の作成がスムーズになります。

08 Claude CodeでVBAコードを自動生成する方法 「VBAを書く」作業をAIに委ねてExcel業務を加速する

ここまでVBAのColorIndexについて詳しく解説してきましたが、正直なところ、VBAコードをゼロから手書きするのは時間がかかる作業です。色番号を調べて、コードの書き方を確認して、テストして修正して……というサイクルを毎回繰り返すのは非効率です。

この問題を解決するのが、Claude Code(AI活用)によるVBAコードの自動生成です。Anthropicが提供するClaude Codeは、日本語で業務要件を伝えるだけで、完動するVBAコードを数秒で生成してくれます。色の設定・条件付き書式・一括処理といった今まで時間がかかっていた作業も、プロンプト1つで完結します。

📚 用語解説

Claude Code:Anthropicが提供するAIコーディングエージェント。ターミナル(コマンドライン)上で動作し、自然言語の指示でコードの生成・編集・デバッグを自律的に行う。VBA・Python・JavaScript等の言語に対応しており、「VBAで〇〇する処理を書いて」と日本語で指示するだけでコードを出力してくれる。

8-1. Claude CodeでVBAを生成する具体的なプロンプト例

以下は、実際にClaude Codeに投げるプロンプトの例です。このような日本語の指示文を入力するだけで、完全なVBAコードが得られます。

やりたいことプロンプト例(Claude Codeへの指示)
数値に信号機カラーを付けたい「ExcelのVBAで、A列に数字が入っている場合、100以上は緑(ColorIndex=10)、50〜99は黄(ColorIndex=6)、49以下は赤(ColorIndex=3)で自動色付けするマクロを書いて」
シートタブを自動色分けしたい「VBAで、シートのB1セルに「完了」と入力されている場合はタブを緑に、「作業中」なら黄に、それ以外は灰色に自動変更するマクロを書いて」
色付きセルを一覧化したい「Excelシート上で背景色が設定されているセルをすべて見つけて、新しいシートにアドレス・ColorIndex・セルの値を一覧化するVBAマクロを書いて」
背景色を一括クリアしたい「VBAで選択範囲内のすべてのセルの背景色(Interior.ColorIndex)を「なし」に戻すマクロを書いて。確認ダイアログも付けて」

8-2. Claude CodeでVBAコードを使うフロー

要件を日本語で整理
「何を・どの条件で
・どう色付けするか」
を言語化する
Claude Codeに指示
整理した要件を
自然な日本語で
入力する
コードを受け取る
完動するVBAコードが
数秒で生成される
(修正指示も可能)
Excelに貼り付けて実行
VBEエディタに
コピー&ペーストして
マクロを実行
結果を確認・調整
動作確認後に
微調整が必要なら
Claude Codeに依頼
💡 VBAのデバッグもClaude Codeに頼める

エラーが出たときも、エラーメッセージとコードをそのままClaude Codeに貼り付けて「このエラーを直して」と伝えるだけで修正案を提示してくれます。「実行時エラー1004」「型が一致しません」などのVBAの典型的なエラーはもちろん、ロジックのバグにも対応できます。

代表菅澤 代表菅澤
弊社では、社内の事務担当が「VBAが全く書けない」状態でも、Claude Codeに日本語で指示を出してコードを生成→貼り付けで動かす運用ができています。最初は「本当に動くの?」と半信半疑でしたが、ColorIndex周りのマクロは特に精度が高く、ほぼ修正なしで使えるレベルです。
AI鬼管理山崎 AI鬼管理山崎
Claude Codeの強みは「生成するだけ」じゃない点です。「このマクロを、A列だけでなくB列にも対応させて」「エラーが出たらメッセージボックスを表示するようにして」という追加要件も、チャット形式で伝えれば逐次対応してくれます。まさにVBA開発のパートナーとして使えます。

09 まとめ:VBA ColorIndexをマスターしてExcel業務を効率化する 本記事のポイントと次のアクション

この記事では、VBAのColorIndexプロパティについて、基本概念から56色の完全一覧、Font・Interior・Tab別の設定・取得コード、ColorIndexとRGBの違い、実践マクロ集、そしてClaude Codeを使ったAI自動生成まで網羅的に解説しました。

✔️ColorIndexは1〜56の番号でExcelの固定パレット色を指定するプロパティ
✔️xlColorIndexAutomatic(-4105)で文字色を自動に、xlColorIndexNone(-4142)で背景色をクリア
✔️Font.ColorIndexで文字色・Interior.ColorIndexで背景色・Tab.ColorIndexでシートタブ色を制御
✔️ColorIndex 1〜16は固定色として安定。17〜56はテーマの影響を受ける場合がある
✔️RGBで細かい色を指定したいときはColorプロパティを使う(VBAの16進数指定はBGR逆順に注意)
✔️Claude Codeに日本語で指示するだけで、複雑なカラーマクロを自動生成できる
代表菅澤 代表菅澤
VBAのColorIndexは、一覧表さえ手元にあれば使いこなせるシンプルな仕組みです。今日の記事をブックマークして、必要なときにすぐ参照できる状態にしておくと便利です。そしてコードを書く手間を減らしたいなら、ぜひClaude Codeも試してみてください。業務マクロ開発のスピードが全然変わります。

VBAやExcel業務のAI活用を、AI鬼管理が一緒に設計します

ColorIndexの使い方を覚えたら、次は「このVBAコードを自動生成・保守する仕組みごと作る」という段階に進めます。
弊社では、Claude Codeを活用したExcel・業務マクロの自動化設計から伴走まで支援しています。

AI鬼管理山崎 AI鬼管理山崎
「VBAが書けないが、Excelの色付け処理・集計処理を自動化したい」という方に最適です。まずは無料相談で、あなたの業務でAIが最も貢献できる領域を一緒に特定しましょう。

NEXT STEP

この記事の内容を、あなたのビジネスで
実践してみませんか?

AI活用を自社で回せるようになりたい方へ

AI鬼管理

Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。

よくある質問

Q. ColorIndex = 0 を設定すると何が起きますか?

A. ColorIndex = 0 を設定した場合の動作はExcelのバージョンによって異なりますが、多くの環境では「塗りつぶしなし」ではなく意図しない色(黒など)が適用されることがあります。背景色をクリアして「なし(透明)」にしたいときは、必ず xlColorIndexNone(値: -4142)を使ってください。xlColorIndexNone を使うことでパレット外の「なし」状態が正確に指定できます。

Q. ColorIndexとColorプロパティは同時に使えますか?

A. 同一オブジェクトのColorIndexとColorプロパティを同時に設定した場合、後から設定した方が優先されます。たとえば Interior.ColorIndex = 3 を設定した後に Interior.Color = RGB(0, 128, 0) を設定すると、最終的には緑のRGB色になります。同じプロパティを2つの方法で設定することは混乱の原因になるため、どちらかに統一することを推奨します。

Q. ColorIndex = 56 の色は何色ですか?

A. Excelの標準パレットではColorIndex = 56は「白に近い明るいグレー」に対応していますが、正確な色はワークブックのカラーパレット設定によって変わる場合があります。確実な色を指定したい場合は、本記事の56色一覧表を参照のうえ使用するか、カラーパレットを固定する ActiveWorkbook.Colors(56) の値を事前に確認することをお勧めします。

Q. 条件付き書式の色とVBAのColorIndexは干渉しますか?

A. はい、干渉します。ExcelではVBAのColorIndex設定よりも「条件付き書式」が優先的に表示されます。つまり、VBAでColorIndexを設定しても、セルに条件付き書式が適用されている場合は条件付き書式の色が上書き表示されます。VBAで色を確実に反映させたい場合は、先に対象セルの条件付き書式を削除(xlCellTypeAllFormatConditions)するか、条件付き書式を使わない設計にする必要があります。

Q. セルの色をVBAで確認する際、-4142や-4105が返ってくるのはなぜですか?

A. -4142(xlColorIndexNone)は「塗りつぶしなし(背景が透明)」、-4105(xlColorIndexAutomatic)は「自動色(デフォルト文字色)」を意味する定数です。Interior.ColorIndexで-4142が返った場合は「セルに背景色が設定されていない」、Font.ColorIndexで-4105が返った場合は「文字色が自動(通常は黒)のまま」という意味です。これらの値は通常の1〜56の番号とは別の「特別な状態」を表します。

Q. ColorIndex 17〜56のRGB値はどこで確認できますか?

A. Excelのカラーパレット上のColorIndex 17〜56の正確なRGB値は、VBAで ActiveWorkbook.Colors(番号) を実行することで取得できます。返り値は長整数型のRGB値なので、R = 返り値 Mod 256、G = (返り値 \ 256) Mod 256、B = (返り値 \ 65536) Mod 256 で各成分を分離できます。本記事の一覧表はExcel標準パレットの代表的な値を掲載していますが、テーマや設定によって変わる可能性があるため、重要なプロジェクトでは必ずVBAで実測することを推奨します。

Q. Claude CodeでVBAコードを生成するとき、無料で使えますか?

A. Claude CodeはAnthropicのClaudeのプランに含まれており、Proプラン(月額$20・約3,000円)以上で追加料金なしで利用できます。Freeプランでも限定的に使用できますが、本格的に業務VBAコードを生成・修正し続けるならProプランが必要です。VBAコードの自動生成という使途であれば、月$20の投資で数十〜数百時間のVBA手書き作業を節約できるため、コスパの観点でも導入は十分メリットがあります。

AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年7月19日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。