こんにちは、管理人のりゅうです。
新しくシートを作成した場合は、不要なシートを識別したい場合、シートの色を変更して識別したい場合があるかと思います。
シートの色を変更するには、WorksheetsオブジェクトのColorIndex/Colorプロパティを使用しましょう。
本記事では、ColorIndex/Colorプロパティの「基本的な使い方」「応用パターン」「注意点」について解説します。
シートの色を変更する
サンプルコードを交えて解説いたします。
前提として、見出しの色変更には以下の2通りの方法があります。
- ColorIndex指定
- RGB指定
サンプルコード
Public Sub changeWorksheetColor()
' Sheet1を黄色に変更(ColorIndex指定)
ThisWorkbook.Worksheets("Sheet1").Tab.ColorIndex = 6
' Sheet2灰色に変更(RGB指定)
ThisWorkbook.Worksheets("Sheet2").Tab.Color = RGB(128, 128, 128)
' Sheet3の色を色なしに変更
ThisWorkbook.Worksheets("Sheet3").Tab.ColorIndex = xlColorIndexNone
End Sub
実行結果
実行前

実行後

補足事項
ColorIndexとColorのどちらを使うべきか?
各プロパティのメリット・デメリットを以下に示します。
項目 | ColorIndex | Color |
---|---|---|
値の形式 | 1 – 56の番号 + xlColorIndexNone(色なし) | RGB(赤, 緑, 青) ※各色 0 – 255 |
利用できる色数 | 56色 | 約 1,670万色 |
メリット | ・記載がシンプルでスッキリする ・ColorIndex = xlColorIndexNoneで「色なし」に変更可能 | ・細かい色の調整が可能 ・テーマ・バージョンに関わらず、一貫した色を設定できる。 |
デメリット | ・色の種類が少ない ・指定した色が、テーマ・バージョンによって異なる可能性あり | ・記述がやや冗長になってしまう。 ・「色なし」への変更不可。 |
ColorIndexプロパティは、1 – 56色の中に設定したい色がある場合は、記述がスッキリするのでオススメです。
ただし、指定した色がテーマ・バージョンによって異なる可能性があるため、他者に送付する資料などをVBAで生成する場合は、Colorプロパティをオススメでします。
Colorプロパティは、記載がやや冗長になりますが、細かい色の調整が可能で、テーマやバージョンによって色が異ならないのでオススメです。
「色なし」に変更する場合は ColorIndexプロパティしか出来ないので注意しましょう。
代表的な色の一覧
よく使う色のColorIndexとRGB値について、参考として以下に示します。
以下以外の色については、【Excel VBA】色の一覧表 – (ColorIndex/RGB値/16進数/XlRgbColor定数)にてまとめています。
色 | ColorIndex | RGB値 |
---|---|---|
1 | RGB(0, 0, 0) | |
2 | RGB(255, 255, 255) | |
3 | RGB(255, 0, 0) | |
4 | RGB(0, 255, 0) | |
5 | RGB(0, 0, 255) | |
6 | RGB(255, 255, 0) | |
15 | RGB(192, 192, 192) | |
16 | RGB(128, 128, 128) |
よく使う応用サンプルコード
複数シートの色を変更する
以下は、ブック内に「月報」という名前が含まれるシートがあれば、青色に変更します。
「月報_202507」「月報_202508」などの命名規則の場合は、これらが一括で青色に変更されます。
Sub ChangeSheetColorByName()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
' 名前に「月報」が含まれていたらタブ色を青に変更
If InStr(ws.Name, "月報") > 0 Then
ws.Tab.Color = RGB(0, 112, 192)
End If
Next ws
End Sub
すべてのシートの色をクリアする
Public Sub clearWorksheetColor()
Dim ws As Worksheet ' Worksheetオブジェクト
' すべてのシート分ループ
For Each ws In ThisWorkbook.Worksheets
' シートの見出しを色なしに変更
ws.Tab.ColorIndex = xlColorIndexNone
Next ws
End Sub
まとめ
今回は、シートの色を変更する方法について解説しました。
ColorIndex/Colorプロパティにて、シートの色を使い分けることで、資料としての視認性や可読性を高めることができます。
本記事の注意点などを読んで頂き、シートの色分けをしてみましょう!
関連記事はこちら
- 【Excel VBA】新しいシートを追加する方法|Worksheets.Addの使い方と命名・末尾追加も解説
- 【Excel VBA】シートの存在チェック(同名シートの存在チェック)
- 【Excel VBA】シートの移動(Moveメソッド)
- 【Excel VBA】色の一覧表 (ColorIndex/RGB値/16進数/XlRgbColor定数)
- 【Excel VBA】シートの保護(Protect)
- 【Excel VBA】シートの削除(Worksheets.Delete)
オススメの書籍

Excel VBAを始めてみたばかりの方へオススメです!
本記事のような具体的なコードも大事ですが、Excel VBA全体の流れを体系的に学べる書籍が 1冊あると理解が一気に進みます。

本のタイトルの通りで、まさに辞典のように何でも載っています。
メジャーなサンプルコードからマイナーなものまで載っていて、パラパラめくるだけでも楽しいです。
約1,000ページもあるので重いですが、購入すると電子版も付いてくるのでオススメです!
コメント