教えて!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色の中から目的の色を指定できることを覚えておいてください。