Excel VBA シートの見出し色を指定する

ExcelVBA-基礎編

今回はExcelのシートの見出し色を指定する方法をご説明します。

シートの見出しというのはExcelファイルを開いた時の「Sheet1」などのシート名の部分のことです。

このシートの見出しが多いときは、色分けして目立たせたい事があります。

そんなシートの見出しの色を変更する方法です。

シートの色を指定するには、Worksheetの「Tab」オブジェクトを使用します。

色を指定する方法はいくつかありますので、それぞれご説明します。

他のシートの操作については下記記事をご覧ください。

1.シートの見出し色を指定

シートの見出し色を指定するには、Worksheetの「Tab」オブジェクトを使用します。

worksheets(“シート名”).tab」で指定できます。

一括ですべてのシートを指定するには「Worksheets.Tab」ではエラーになりますので、ループ処理する必要があります。

色の指定方法

色の指定方法は次の3つあります。

  • Colorプロパティ
  • Color Indexプロパティ
  • ThemeColorプロパティ
Color

ColorプロパティはRGBで指定します。

worksheets(“シート名”).tab.color=RGB(赤,緑,青)で指定します。

RGBは256*256*256色(1600万色)あるため、ネットで検索して調べるか、
「その他の色」→「色の設定」→「ユーザー設定」で色を指定するとRGBが取得できます。

Color Index

Excel2003までで指定できた1~56のカラーです。

worksheets(“シート名”).tab.colorindex=カラー番号(1~56)で指定します。

Excel2007以降であればColorプロパティのRGBで指定する事をおおすめします。

ThemeColor

Excel2007で搭載された機能で、カラー選択時の「標準の色」に出ている10個のカラーです。

こちらはExcelのバージョンでパレットの設定が違うため、使用するExcelのバージョンで色が変更されます。

2.シートの見出し色を指定するサンプルコード

Colorプロパティ

Colorプロパティはカラーの番号、もしくはRGBで指定します。

Sub Sample1()

Worksheets("Sheet1").Tab.Color = RGB(255, 0, 0)'シートを赤くします

End Sub

ColorIndexプロパティ

ColorIndexプロパティは1~56の番号でカラーを指定します。

Sub Sample2()

Worksheets("Sheet1").Tab.ColorIndex = 56

End Sub

ThemeColorプロパティ

Excel2007で搭載された機能で、カラー選択時の「標準の色」に出ている10個のカラーです。

Sub Sample3()

Worksheets("Sheet3").Tab.ThemeColor = 5

End Sub

シートの色を戻す

シートの色を戻すには「Tab.ColorIndex = xlNone」を指定する事で色を解除できます。

「For Each In Next」ループでシートをループして、すべて色を解除するコードです。

Sub Sample4()

Dim WS As Worksheet

For Each WS In Worksheets

    WS.Tab.ColorIndex = xlNone

Next

End Sub

ループでシート名の見出し色を変更する

For Each In Next」ループでシートをループして、すべて赤色に変更するコードです。

一括ですべてのシートを指定するには「Worksheets.Tab」ではエラーになりますので、ループ処理する必要があります。

Sub Sample5()

Dim WS As Worksheet

For Each WS In Worksheets

    WS.Tab.Color = RGB(255, 0, 0)

Next

End Sub

シート名で判定して一致した場合色を変更する

実際に実務で使いそうなサンプルコードです。

シートをすべてループして、特定の文字列を含むシート名の場合のみ色を付けるコードです。

「2018」を含むシートのみ変更します。

Sub Sample6()

Dim WS As Worksheet

For Each WS In Worksheets
    
    If InStr(WS.Name, "2018") <> 0 Then
        
        WS.Tab.Color = RGB(255, 0, 0)
    
    End If
    
Next

End Sub
タイトルとURLをコピーしました