【VBA】セルの背景・文字の色を変更する | あじゅWeb

【VBA】セルの背景・文字の色を変更する

エクセル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