【VBA】 色をカラーコードやRGBに変換する

スポンサーリンク

VBAでセルの背景色などの色を取得すると数値型で値で返ってきます。

例えば、紫色(#7030A0)だと以下のような数値が返ってきます。

10498160

今回は取得した色を、カラーコードやRGBに変換する方法について説明していきます。

色を変換するコード

色をRGBに変換する

''' <summary>
''' 色をRGBに変換する
''' </summary>
''' <returns>RGB値(R,G,B)</returns>
''' <remarks></remarks>
Function GetColorToRGB(ByVal color As Long) As Variant
    Dim colorCode As String: colorCode = Hex(color)
    Dim i As Integer
    For i = Len(colorCode) To 5
        colorCode = "0" & colorCode
    Next
    GetColorToRGB = Array(Val("&H" & Mid(colorCode, 5, 2)), Val("&H" & Mid(colorCode, 3, 2)), Val("&H" & Mid(colorCode, 1, 2)))
End Function

色をカラーコードに変換する

''' <summary>
'''色をカラーコードに変換する
''' </summary>
''' <param name="color">色情報(数値)</param>
''' <returns>カラーコード</returns>
''' <remarks></remarks>
''' ''' <summary>
Function GetColorToCode(ByVal color As Long)
    Dim colorCode As String: colorCode = Hex(color)
    Dim i As Integer
    For i = Len(colorCode) To 5
        colorCode = "0" & colorCode
    Next
    GetColorToCode = Mid(colorCode, 5, 2) & Mid(colorCode, 3, 2) & Mid(colorCode, 1, 2)
End Function

使用例

選択されたセルの背景色をRGBとカラーコードに変換するコードです。

Sub Macro1()
    With Selection.Interior
        Debug.Print "RGB:" & Join(GetColorToRGB(.color), ",")
        Debug.Print "#" & GetColorToCode(.color)
    End With
End Sub
タイトルとURLをコピーしました