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値非アクティブアクティブ
vbBlackRGB(0, 0, 0)シートの見出し(黒:非アクティブ)
シートの見出し(黒:アクティブ)
vbRedRGB(255, 0, 0)シートの見出し(赤:非アクティブ)シートの見出し(赤:アクティブ)
vbGreenRGB(0, 255, 0)シートの見出し(緑:非アクティブ)シートの見出し(緑:アクティブ)
vbBlueRGB(0, 0, 255)シートの見出し(青:非アクティブ)シートの見出し(青:アクティブ)
vbYellowRGB(255, 255, 0)シートの見出し(黄:非アクティブ)シートの見出し(黄:アクティブ)
マゼンタvbMagentaRGB(255, 0, 255)シートの見出し(マゼンタ:アクティブ)シートの見出し(マゼンタ:アクティブ)
シアンvbCyanRGB(0, 255, 255)シートの見出し(シアン:非アクティブ)シートの見出し(シアン:アクティブ)
vbWhiteRGB(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
【実行サンプル】

● 実行前
プログラム実行前の画像

● 実行後
プログラム実行後の画像

ページの先頭へ