VBA セルの色をクリアする (Interior.ColorIndex)

はじめに

Excel VBA マクロでセルの色をクリアする方法を紹介します。

Range("B1").Interior.Color または Cells(1, 2).Interior.Color プロパティから、セルの背景色を塗りつぶしなしにできます。

Font.ColorIndex プロパティから、セルの文字色を黒色にできます。

ClearFormats メソッドから、セルの色や罫線などの書式を削除できます。

その他をクリアするには「セルをクリアする」をご覧ください。
セルを範囲指定するすべての方法は「セルを範囲指定して取得する」をご覧ください。
  • 目次
    • セルの色をクリアする
    • セルの範囲の色をクリアする
    • 別シートのセルの色をクリアする

セルの色をクリアする

Range の引数にセル名を指定すると、そのセルの色をクリアします。

セル「A1」の背景色を塗りつぶしなしにするには Range("A1").Interior.ColorIndex を入力します。

Range("A1").Interior.ColorIndex = 0 ' 背景色を塗りつぶしなし
Range("A1").Font.ColorIndex = 1     ' 文字色を黒色
1

Cells の引数にセルの行と列の番号を指定すると、そのセルの色をクリアします。

行「2」、列「A」の背景色を塗りつぶしなしにするには Cells(2, 1).Interior.ColorIndex を入力します。

Cells(1, 1).Interior.ColorIndex = 0 ' A1
Cells(2, 1).Interior.ColorIndex = 0 ' A2
Cells(1, 2).Interior.ColorIndex = 0 ' B1
Cells(2, 2).Interior.ColorIndex = 0 ' B2

ColorIndex の値に対応した色は次の通りです。

colorindex

ClearFormats メソッドから、色や罫線などの書式をクリアできます。

Range("A1").ClearFormats ' 書式をクリア

セルの範囲の色をクリアする

セルの範囲「A1」~「B2」の色をクリアするには Range("A1:B2").Interior.ColorIndex または Range("A1", "B2").Interior.ColorIndex を入力します。

Range("A1:B2").Interior.ColorIndex = 0 ' 背景色
Range("A1", "B2").Font.ColorIndex = 1  ' 文字色
Range("A1:B2").ClearFormats ' 書式をクリア
2

シート全体のセルの色をクリアするには Cells.Interior.ColorIndex を入力します。

Cells.Interior.ColorIndex = 0 ' 背景色
Cells.Font.ColorIndex = 1     ' 文字色
Cells.ClearFormats ' 書式をクリア

別シートのセルの色をクリアする

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。

sheet1
' Sheet1 のセル「A1」の色をクリア
Worksheets("Sheet1").Range("A1").Interior.ColorIndex = 0 ' 背景色
Worksheets(1).Range("A1").Font.ColorIndex = 1 ' 文字色

' Sheet2 のセル「A1」の色をクリア
Worksheets("Sheet2").Range("A1").Interior.ColorIndex = 0 ' 背景色
Worksheets(2).Range("A1").Font.ColorIndex = 1 ' 文字色

Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。

' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"

標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。

' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"