VBA セルの背景色や文字色を設定変更する方法 Excel

Excel VBAでセルの背景色や文字色を設定・変更する方法です。

VBA セルの背景色や文字色を設定変更する方法

セルの色を設定する基本は、Color のプロパティ もしくは ColorIndex を設定することです。背景色を設定する場合は Interior に設定し、文字色を設定する場合は Font に設定します。Color へは RGB 関数を使って RGB で示す色の値を指定するか、XlRgbColor 定数で色名を指定します。ColorIndex へは色を数値で表した 1~56 の値を指定します。

ここでは Excel VBAでセルの背景色や文字色を設定する方法 を紹介します。


環境

  • Windows 7
  • Excel 2016

セルの背景色と文字色を設定する

セル範囲の指定には Range もしくは Cells が使えます。最初に A1 セルの背景色を黒、文字色を白に設定します。設定には RGB 関数を使います。


Range("A1").Interior.Color = RGB(0, 0, 0) ' 背景色
Range("A1").Font.Color = RGB(255, 255, 255) ' 文字色

RGB 関数の使い方は、RGB(赤, 緑, 青) のように、各引数に 0 から 255 までの数値を設定します。

RGB の設定は、「その他の色」を選択し、色の設定画面を開きます。

Excel 色の設定画面

「ユーザー設定タブ」を開けば、下に色の数値が出ているので参考にしてみてください。

ユーザー設定タブで色の数値を参考に

次に A2 セルの背景色をアリスブルー、文字色をコーンフラワーブルーに設定します。設定には XlRgbColor 定数で色名を指定します。


Range("A2").Interior.Color = XlRgbColor.rgbAliceBlue ' 背景色
Range("A2").Font.Color = XlRgbColor.rgbCornflowerBlue ' 文字色

XlRgbColor 定数は、全142色です。「XlRgbColor.」の後に候補が出てきます。Ctrl + j もしくは Ctrl + Space でも候補が出てきますので参考にしてみてください。

インテリセンス機能による入力候補リスト

MSDN に色名の表がありますので、参考にどうぞ。

XlRgbColor 列挙 (Excel)

最後に A3 セルの背景色を黄、文字色を赤に設定します。こちらは ColorIndex を指定します。


Range("A3").Interior.ColorIndex = 6 ' 背景色
Range("A3").Font.ColorIndex = 3 ' 文字色

ColorIndex は、「ファイル」-「オプション」-「保存」メニューを選択し、画面下の「色」ボタンを押下すると確認できます。

Excel ColorIndexの調整機能

では早速実行してみましょう。標準モジュールを追加して下記をコピペします。


Public Sub ColorSamples()
  Sheet1.Range("A1").Value = "RGB"
  Sheet1.Range("A1").Interior.Color = RGB(0, 0, 0) ' 背景色
  Sheet1.Range("A1").Font.Color = RGB(255, 255, 255) ' 文字色
  Sheet1.Range("A2").Value = "XlRgbColor"
  Sheet1.Range("A2").Interior.Color = XlRgbColor.rgbAliceBlue ' 背景色
  Sheet1.Range("A2").Font.Color = XlRgbColor.rgbCornflowerBlue ' 文字色
  Sheet1.Range("A3").Value = "ColorIndex"
  Sheet1.Range("A3").Interior.ColorIndex = 6 ' 背景色
  Sheet1.Range("A3").Font.ColorIndex = 3 ' 文字色
End Sub

「SUB/ユーザー フォームの実行」をクリックすると、こうなります。

Excel VBA 背景色と文字色を設定

おおおー、背景色と文字色が設定されたー^^

セルの背景色と文字色をクリアする

セルの背景色と文字色のクリアには ColorIndex に 0 を指定します。


Range("A1").Interior.ColorIndex = 0 ' 背景色
Range("A1").Font.ColorIndex = 0 ' 文字色

文字色のクリアには RGB 関数を使って、自動と同じく黒にする方法もあります。


Range("A1").Font.ColorIndex = RGB(0, 0, 0) ' 背景色

では「セルの背景色と文字色を設定する」で設定した色をクリアしてみましょう。下記コードを標準モジュールにコピペします。


Public Sub ColorClear()
  Sheet1.Range("A1").Interior.ColorIndex = 0 ' 背景色
  Sheet1.Range("A1").Font.ColorIndex = 0 ' 文字色
  Sheet1.Range("A2").Interior.ColorIndex = 0 ' 背景色
  Sheet1.Range("A2").Font.ColorIndex = 0 ' 文字色
  Sheet1.Range("A3").Interior.ColorIndex = 0 ' 背景色
  Sheet1.Range("A3").Font.ColorIndex = 0 ' 文字色
End Sub

「SUB/ユーザー フォームの実行」をクリックすると、こうなります。

Excel VBA 背景色と文字色をクリア

おおおー、背景色と文字色がクリアされたー^^

カラーパレットを作る

せっかくなので ColorIndex のカラーパレットを作ってみましょう。

仕様:

横2列を使って ColorIndex の番号と色を順番に並べます。2列の左側にはインデックス番号を表示し、文字色を ColorIndex の色に設定します。右側には文字は設定せず、背景色をColorIndex の色に設定します。縦は10行まで表示し、以降は次の2列に表示します。これを繰り返し、全56色をシート2に表示します。

下記のコードを標準モジュールをにコピペします。


Public Sub ColorIndexPalette()
  Dim ColorIndex As Integer
  Dim Row As Integer
  Dim Col As Integer
  ColorIndex = 1
  For Col = 1 To 12
    For Row = 1 To 10
      ' 列が偶数の場合
      If Col Mod 2 = 0 Then
        Sheet2.Cells(Row, Col - 1).Value = ColorIndex
        Sheet2.Cells(Row, Col - 1).Font.ColorIndex = ColorIndex
        Sheet2.Cells(Row, Col).Interior.ColorIndex = ColorIndex
        If ColorIndex = 56 Then ' 全56色
          Exit Sub
        End If
        ColorIndex = ColorIndex + 1
      End If
    Next Row
  Next Col
End Sub

「SUB/ユーザー フォームの実行」をクリックすると、こうなります。

Excel VBA カラーパレット

おおおー、カラーパレットが出来上がったー^^

XlRgbColor列挙

MSDN のサイトでは、色の値しか出ていなくて、正直どんな色なのか判断できませんよね。いちいち XlRgbColor を指定してチェックするのも面倒だし。ということで、どんな色なのかを全部シート3へ出力してみましょう。

まず MSDN のサイトから表をコピーして、Excel に値を貼り付けます。

XlRgbColor 列挙 (Excel)

XlRgbColor 列挙 (Excel)

次に、下記のコードを標準モジュールをにコピペします。


Public Sub XlRgbColorPalette()
  Dim Row As Integer
  For Row = 2 To 143 ' 全142色
    Sheet3.Cells(Row, 2).Interior.Color = Sheet3.Cells(Row, 2).Value
  Next Row
End Sub

「SUB/ユーザー フォームの実行」をクリックすると、こうなります。

Excel VBA XlRgbColorで色設定

おおおー、セルに色がついたー^^

まとめ

Excel VBAでセルの背景色や文字色を設定する方法を紹介しました。

セルの色の設定は実務でも結構使います。セルの背景色や文字色を赤や黄色に変えることでアラート効果もありますし、シート全体の見栄えを良くしたりもできます。

今回作ったものはこちらにサンプルを置いておきますが、ダウンロード後の実行や修正においては全て自己責任でお願いします。

ColorSamples.xlsm

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。