エクセルVBAで使用するコードの備忘録。VBAで指定したセルの背景色・文字色を変更するコード。 セルの背景色を透明にする方法についても説明します。
セルの背景色を変更する
セルの背景色を変更するは、変更したいセルを表すオブジェクト配下にあるInteriorオブジェクトのColorプロパティから変更します。InteriorオブジェクトにはColorIndexというプロパティもあり、こちらを変更することでも背景色の変更は可能ですが、規定のカラーパレットからしか選択できないため柔軟性に欠けます。背景色なしを指定するのには便利なので、セルの色を透明にする際に使うのが良いです。
下記サンプルコードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
Public Sub ChangeBackgroundColor()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- Rangeで指定する場合 ---'
'色を付ける
ws.Range("[セルアドレス(A1など)]").Interior.Color = RGB([Red値], [Green値], [Blue値])
'透明にする
ws.Range("[セルアドレス(A1など)]").Interior.ColorIndex = xlColorIndexNone
'--- Cellsで指定する場合 ---'
'色を付ける
ws.Cells([行番号], [列番号]).Interior.Color = RGB([Red値], [Green値], [Blue値])
'透明にする
ws.Cells([行番号], [列番号]).Interior.ColorIndex = xlColorIndexNone
End Sub
セルの文字色を変更する
セルの文字色を変更するには、変更したいセルを表すオブジェクト配下にあるFontオブジェクトのColorプロパティから変更します。FontオブジェクトにはColorIndexというプロパティもあり、こちらを変更することでも文字色の変更は可能ですが、規定のカラーパレットからしか選択できないため柔軟性に欠けます。文字色自動(デフォルト)を指定するのには便利なので、文字色を元に戻す際に使うのが良いです。
下記サンプルコードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
Public Sub ChangeFontColor()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- Rangeで指定する場合 ---'
'色を変更する
ws.Range("[セルアドレス(A1など)]").Font.Color = RGB([Red値], [Green値], [Blue値])
'色をデフォルト(自動)に戻す
ws.Range("[セルアドレス(A1など)]").Font.ColorIndex = xlColorIndexAutomatic
'--- Cellsで指定する場合 ---'
'色を変更する
ws.Cells([行番号], [列番号]).Interior.Color = RGB([Red値], [Green値], [Blue値])
'色をデフォルト(自動)に戻す
ws.Cells([行番号], [列番号]).Interior.ColorIndex = xlColorIndexAutomatic
End Sub