VBA セルの背景色や文字色を設定変更する方法 ホームページ制作 | 墨田区

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

LINEで送る
Pocket

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で色設定

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


まとめ

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

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


おつかれさまでした。

LINEで送る
Pocket

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

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL