水曜日, 3月 22, 2023

Excel VBA 07 
セルの文字と背景の色指定

VBAでの色指定の基本はRGB設定ですが、Officeの色番号でも指定することができます。
色番号とRGBの関係は以下の様になります。

※記述ミスを修正しました(2023/03/26)
なお色番号は以下の様に一部の色が被っています。理由は分かりません。

実はこれはExccel(Office共通)で・・・

Windowsの場合は・・・
ファイル>オプション>保存>カラー
で確認できます。

mac_OSの場合は・・・
Finder>Excel>環境設定>共有とプライバシー>互換性
で確認できます。

■Rangeの引数でセルに色を設定する
セルの文字色と背景色の設定方法を整理しました。色はRGB値で設定します。

Rangeの引数にセル名を指定すると、そのセルに色を付けられます。

セル「A4」に色を付けるには
Range("A4").Font.Colorや
Range("A4").Interior.Color
と入力します。

--------------------
Sub 色指定()
Range("A4").Font.Color = RGB(255, 0, 0) ' 文字色 赤
Range("A4").Interior.Color = RGB(255, 255, 200) ' 背景色 ライトイエロー
End Sub
--------------------

処理結果です。

■Cellsの引数でセルに色を設定する
Cellsの引数にセルの行と列の番号を指定すれば、色を付けられます。

行「3」、列「B」に色を付けるには

Cells(3, 2).Font.Colorや
Range("B3").Interior.Color
などと入力します。

--------------------
Sub 色指定()
Cells(3, 2).Font.Color = RGB(0, 0, 255) ' B3 青
End Sub
--------------------
または、
--------------------
Sub 色指定()
Cells(3, 2).Interior.Color = RGB(240, 248, 255) ' B3 アリスブルー
End Sub
--------------------
ColorIndexプロパティからも色を設定できます。それぞれの色に対応した数値を設定します。
--------------------
Sub 色指定()
Range("B3").Font.ColorIndex = 5 ' 青
Range("B3").Interior.ColorIndex = 0 ' 塗りつぶしなし
End Sub
--------------------

処理結果です。

■Rangeの引数でセルの範囲に色を設定する
セルの範囲「C2」~「E6」に同じ色を設定するには
--------------------
Sub 色指定()
Range("C2:E6").Font.Color
End Sub
--------------------
または
--------------------
Sub 色指定()
Range("C2", "E6").Font.Color
End Sub
--------------------
と入力します。

--------------------
Sub 色指定()
Range("C2:E8").Font.Color = RGB(255, 255, 255) ' 文字色 白
Range("C2", "E8").Interior.Color = RGB(255, 128, 0) ' 背景色 オレンジ
End Sub
--------------------

処理結果です。

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

Sheet2を指定するには
Worksheets("Sheet2") または Worksheets(2) 
と入力します。

■Sheet2のセル「B5」に文字色を設定する場合
--------------------
Sub 色指定()
Worksheets("Sheet2").Range("B5").Font.Color = RGB(128, 0, 255) ' 青紫
End Sub
--------------------
または
--------------------
Sub 色指定()
Worksheets(2).Range("B5").Font.Color = RGB(128, 0, 255) ' 青紫
End Sub
--------------------

処理結果です。


■Sheet3のセル「D4」に背景色を設定する場合
--------------------
Sub 色指定()
Worksheets("Sheet3").Range("D4").Interior.Color = RGB(0, 255, 0) ' 黄緑
End Sub
--------------------
または
--------------------
Sub 色指定()
Worksheets(3).Range("D4").Interior.Color = RGB(0, 255, 0) ' 黄緑
End Sub
--------------------

処理結果です。

※2023/3/18 加筆・修正