Excel VBAでシートの見出しの色を変更する方法
今回の目標
「マクロでシートの色を変えられない?」や「ブックのシートの色を元に戻せない?」と思ったあなたへ。
この記事では、シートの見出しの色を変更する方法や、ブックのシート全ての見出しの色を元に戻す方法等を解説します!
実務で使える具体例つきです。
目標リスト
- シートの見出しの色を変更できるようになる
- シートの見出しの色を元に戻せるようになる
説明
シートの見出しの色を変更する方法
Excelでは、シートの見出し(シートの下にあるシート名が書かれたタブのこと)の色を変更できます。
マクロで、シートの見出しの色を変更したり、元に戻したりすることができます。
シートオブジェクト.Tab.Color プロパティ
シートの見出しの色を変更する場合、シートオブジェクトにある Tab オブジェクト の color プロパティを使用します。
Tab オブジェクトは、シートの見出しのことです。
color プロパティは、変数と同様の扱いで、シートの見出しの色の取得や代入(変更)が出来ます。
シートオブジェクト.Tab.Color
色の指定方法について
ExcelVBAで色を指定する場合、主に2通りあります。
1つ目は定数を使用する方法です。「vbBlack」なら黒、「vbGreen」なら緑です。標準で8種類あります。
2つ目は定数をRGB関数を使用する方法です。Red(赤)、Green(緑)、Blue(青)」の3色を 0〜255 の数値で混ぜて、好きな色を作れます。
例えば、RGB(255, 0, 0) は赤、RGB(0, 255, 0) は緑、RGB(0, 0, 255) は青になります。
他には、RGB(255, 255, 255) は白、RGB(0, 0, 0) は黒、RGB(255, 255, 0) は黄色、RGB(0, 255, 255) は水色、RGB(255, 0, 255) はマゼンタになります。
※明るい色は、背景色を灰色にしています。
色のサンプル
シートの見出しの色は、アクティブなシートと非アクティブなシートで見え方が異なります。 下の表では、定数と対応するRGB値を示しています。画像で色の違いを確認してみましょう。
色 | 定数 | RGB値 | 非アクティブ | アクティブ |
---|---|---|---|---|
黒 | vbBlack | RGB(0, 0, 0) | ![]() | ![]() |
赤 | vbRed | RGB(255, 0, 0) | ![]() | ![]() |
緑 | vbGreen | RGB(0, 255, 0) | ![]() | ![]() |
青 | vbBlue | RGB(0, 0, 255) | ![]() | ![]() |
黄 | vbYellow | RGB(255, 255, 0) | ![]() | ![]() |
マゼンタ | vbMagenta | RGB(255, 0, 255) | ![]() | ![]() |
シアン | vbCyan | RGB(0, 255, 255) | ![]() | ![]() |
白 | vbWhite | RGB(255, 255, 255) | ![]() | ![]() |
無色 | False (色の変更無) | False | ![]() | ![]() |
シートの見出しの色を変更する
1.定数を使ってシートの見出しを変更する
定数を使ってシートの見出しを変更する方法です。
サンプルコードでは、定数を使い、"Sheet1" を「赤」、"Sheet2" を「緑」、"Sheet3" を「青」に変更します。
サンプルコード
Sub SampleSheetTabColor1()
' "Sheet1" の見出しを「赤」にする
Worksheets("Sheet1").Tab.Color = vbRed
' "Sheet2" の見出しを「緑」にする
Worksheets("Sheet2").Tab.Color = vbGreen
' "Sheet3" の見出しを「青」にする
Worksheets("Sheet3").Tab.Color = vbBlue
End Sub
● 実行前
● 実行後
2.RGB関数を使ってシートの見出しを変更する
RGB関数を使ってシートの見出しを変更する方法です。
サンプルコードでは、RGB関数を使い、"Sheet1" を「赤」、"Sheet2" を「緑」、"Sheet3" を「青」に変更します。
サンプルコード
Sub SampleSheetTabColor2()
' "Sheet1" の見出しを「赤」にする
Worksheets("Sheet1").Tab.Color = RGB(255, 0, 0)
' "Sheet2" の見出しを「緑」にする
Worksheets("Sheet2").Tab.Color = RGB(0, 255, 0)
' "Sheet3" の見出しを「青」にする
Worksheets("Sheet3").Tab.Color = RGB(0, 0, 255)
End Sub
● 実行前
● 実行後
3.シートの見出しの色を他シートと入れ替える
シートの見出しの色を他シートと入れ替える方法です。
1つ目のシートの見出しの色(以下、シートの色)を変数に代入し、1つ目のシートの色を2つ目のシートの色を代入します。
最後に、2つ目のシートの色を1つ目のシートの色に代入して完了です。
サンプルコードでは、"Sheet1" と "Sheet2" のシートの色を入れ替えています。
サンプルコード
Sub SampleSheetTabColor3()
Dim col As Long
' "Sheet1" の見出しの色を取得する
col = Worksheets("Sheet1").Tab.Color
' "Sheet1" の見出しの色を "Sheet2" の色にする
Worksheets("Sheet1").Tab.Color = _
Worksheets("Sheet2").Tab.Color
' "Sheet2" の見出しの色を "Sheet1" の色にする
Worksheets("Sheet2").Tab.Color = col
End Sub
● 実行前
● 実行後
4.シートの見出しの色を元に戻す
シートの見出しの色を元に戻す方法です。
「Tab.Color」に "False" を代入することで元に戻せます。
サンプルコードでは、全てのシートの見出しの色を元に戻しています。
サンプルコード
Sub SampleSheetTabColor4()
Dim ws As Worksheet
' 全シートの見出しの色を元に戻す
For Each ws In Worksheets
ws.Tab.Color = False
Next ws
End Sub
● 実行前
● 実行後