なんだかGoodVibes

日々の勉強メモです。

【VBA】RGBを使って背景色と文字色を変更

こんにちは。
本日は、背景色と文字色の色変えメモです。


概要

RGBを使用して背景色及びフォントの色変えを行います。
クラスモジュールの名前はSetColorClassとします。


サンプルソース

Option Explicit

' -------------------------------------
' 背景色を黒にします。
' -------------------------------------
Public Sub SetBackgroundColorBlack(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Interior.Color = RGB(0, 0, 0)
End Sub

' -------------------------------------
' 背景色を赤にします。
' -------------------------------------
Public Sub SetBackgroundColorRed(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Interior.Color = RGB(255, 0, 0)
End Sub

' -------------------------------------
' 背景色を青にします。
' -------------------------------------
Public Sub SetBackgroundColorBlue(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Interior.Color = RGB(0, 0, 255)
End Sub

' -------------------------------------
' 背景色を緑にします。
' -------------------------------------
Public Sub SetBackgroundColorGreen(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Interior.Color = RGB(0, 255, 0)
End Sub

' -------------------------------------
' 背景色をクリアします。
' -------------------------------------
Public Sub SetBackgroundColorClear(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Interior.ColorIndex = 0
End Sub

' -------------------------------------
' 文字色を白にします。
' -------------------------------------
Public Sub SetFontColorWhite(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Font.Color = RGB(255, 255, 255)
End Sub

' -------------------------------------
' 文字色を赤にします。
' -------------------------------------
Public Sub SetFontColorRed(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Font.Color = RGB(255, 0, 0)
End Sub

' -------------------------------------
' 文字色を青にします。
' -------------------------------------
Public Sub SetFontColorBlue(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Font.Color = RGB(0, 0, 255)
End Sub

' -------------------------------------
' 文字色を緑にします。
' -------------------------------------
Public Sub SetFontColorGreen(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Font.Color = RGB(0, 255, 0)
End Sub

' -------------------------------------
' 文字色をクリアします。
' -------------------------------------
Public Sub SetFontColorClear(ByVal ws As Worksheet, ByVal rowIdx As Long, ByVal colIdx As Long)
    ws.Cells(rowIdx, colIdx).Font.ColorIndex = 0
End Sub


使用方法

Sub Main()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets(1)
    
    Dim c As SetColorClass
    Set c = New SetColorClass
    
    ' 背景色をセット
    Call c.SetBackgroundColorBlack(ws, 1, 1)
    Call c.SetBackgroundColorRed(ws, 1, 2)
    Call c.SetBackgroundColorBlue(ws, 1, 3)
    Call c.SetBackgroundColorGreen(ws, 1, 4)
    
    ' 文字色をセット
    Call c.SetFontColorWhite(ws, 1, 1)
    Call c.SetFontColorRed(ws, 2, 1)
    Call c.SetFontColorBlue(ws, 3, 1)
    Call c.SetFontColorGreen(ws, 4, 1)

    ' 背景色のクリア
    Call c.SetBackgroundColorClear(ws, 1, 5)

    ' 文字色のクリア
    Call c.SetFontColorClear(ws, 5, 1)

    Set c = Nothing
End Sub

色変えしたいときに毎回セットするよりも、
クラスモジュール使って事前に関数作っておくと後々便利です。



以上です。