教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】セルの背景色(Interior.ColorIndex)を変更する方法を教えて!

構文

構文は以下の通りです。

Range("セル範囲").Interior.ColorIndex = カラーインデックス

解説

●Range("セル範囲"):操作したいセル範囲を指定する部分です。例えば、単一のセルを操作する場合は"A1"のようにセルのアドレスを指定します。また、複数のセルを一括して操作したい場合は、"A1:C10"のように範囲を指定することもできます。
●Interior.ColorIndex:セルの背景色を設定するプロパティです。
●カラーインデックス:0から56までの数値を指定します。各数値に対応する色はExcelのカラーパレットによって割り当てられています。以下に対応するカラーインデックスを示します。

1: 黒色
2: 白色
3: 赤色
4: 緑色
5: 青色
6: 黄色
7: マゼンタ(紫色)
8: シアン(青緑色)
9: 濃い赤
10: 濃い緑
11: 濃い青
12: 濃い黄色
13: 濃いマゼンタ
14: 濃いシアン
15: オレンジ
16: 濃い青緑色
17: ダークブルー
18: ピンク
19: グレー(25%)
20: グレー(50%)
21: グレー(75%)
22: ライトターコイズ
23: 浅い青
24: 浅い黄色
25: 緑(25%)
26: 濃いオレンジ
27: ダークモーブ
28: オリーブグリーン
29: ブラウン
30: プラム
31: インディゴ
32: グレー(80%)
33: パウダーブルー
34: グレー(5%)
35: ライトオレンジ
36: ライム
37: レッド
38: ライトブルー
39: ライトピンク
40: ゴールデンロッド
41: ライトヴィオレット
42: ティール
43: ブルー
44: スカイブルー
45: ライトターコイズ
46: パープル
47: グレー(15%)
48: ダークティール
49: グレー(22%)
50: オリーブ
51: ブラウン
52: パステルブルー
53: パステルピンク
54: パステルイエロー
55: ライトグリーン
56: ライトティール

使い方

具体的な使い方を紹介します。

1.カラーインデックスの指定方法

例えば、セルA1の背景色を黄色に設定したい場合は次のようにします。

Range("A1").Interior.ColorIndex = 6

2.色の削除

背景色を削除してデフォルトの白色に戻したい場合は、カラーインデックスに0を指定します。

Range("A1").Interior.ColorIndex = 0

プログラミング例

以下に実際のプログラミング例を紹介します。

Sub 背景色を変更する()     Dim score As Integer
    score = Range("A1").Value
    If score >= 80 Then
        Range("A1").Interior.ColorIndex = 4 ' 緑色
    ElseIf score >= 60 Then
        Range("A1").Interior.ColorIndex = 6 ' 黄色
    Else
        Range("A1").Interior.ColorIndex = 3 ' 赤色
    End If End Sub

この例では、セルA1に入力された値に応じて、80以上なら緑色、60以上なら黄色、それ以下なら赤色となります。

まとめ

Interior.ColorIndexプロパティは、セルの背景色をプログラム的に変更することができます。カラーインデックスを利用して、56色の中から目的の色を指定できることを覚えておいてください。