HSLからRGBへの変換(Microsoft Excel)
Basselには、HSLカラー値(色相、彩度、明度の値)をRGBカラー値(赤、青、緑の値)に変換できる式が必要です。彼は、誰かがこれを行うワークシートの数式またはマクロでそれを行う方法のいずれかを彼に示すことができるかどうか疑問に思います。
HSLからRGB値への変換は、特に簡単な作業ではありません。その背後にある数学に興味がある人は、https://en.wikipedia.org/wiki/HSL_and_HSV [このトピックに関するウィキペディアの記事をチェックしてください]。
変換を頻繁に行う必要がない場合、最も簡単な方法は次の手順に従うことです。
。リボンの[ホーム]タブを表示します。
。 [フォント]グループで、[塗りつぶしの色]ツールの右側にある下向き矢印をクリックします。 Excelは、色の小さなパレットと他のいくつかのオプションを表示します。
。その他の色を選択します。 Excelに[色]ダイアログボックスが表示されます。
。 [カスタム]タブが表示されていることを確認します。
。 [カラーモデル]ドロップダウンリストを使用して、[HSL]を選択します。 (図1を参照)
。ダイアログボックスの下部に、Hue、Sat、およびLumの個々の値が表示されます。これらの値を任意の値に変更します。
。 [カラーモデル]ドロップダウンリストを使用して、[RGB]を選択しました。ダイアログボックスの下部に表示される値は、HSL値(手順6で入力)です
RGBに変換されます。
。完了したら、[キャンセル]をクリックします。
このアプローチでは、各HSL値が0〜255の範囲で表現できることを前提としています。ただし、HSL値が角度(色相の場合)またはパーセンテージ(彩度と輝度の場合)の場合は、次のものが必要になります。手順6で入力する前に、手動で変換します。角度に255を掛けてから、360で割ると、角度の値を変換できます。
パーセンテージは、2.55を掛けることで変換できます。
より頻繁に値を取得する必要がある場合は、変換を行うための独自のユーザー定義関数を作成すると役立ちます。次の例では、3つのパラメーター(色相、彩度、輝度)を受け入れ、コンマで区切られた10進数のRGB値を含む文字列を返します。
Function HSLtoRGB(Hue As Integer, Saturation As Integer, _ Luminance As Integer) As String Dim r As Integer Dim g As Integer Dim b As Integer Dim C As Double Dim X As Double Dim m As Double Dim rfrac As Double Dim gfrac As Double Dim bfrac As Double Dim hangle As Double Dim hfrac As Double Dim sfrac As Double Dim lfrac As Double If (Saturation = 0) Then r = 255 g = 255 b = 255 Else lfrac = Luminance / 255 hangle = Hue / 255 360 sfrac = Saturation / 255 C = (1 - Abs(2 lfrac - 1)) sfrac hfrac = hangle / 60 hfrac = hfrac - Int(hfrac / 2) 2 'fmod calc X = (1 - Abs(hfrac - 1)) C m = lfrac - C / 2 Select Case hangle Case Is < 60 rfrac = C gfrac = X bfrac = 0 Case Is < 120 rfrac = X gfrac = C bfrac = 0 Case Is < 180 rfrac = 0 gfrac = C bfrac = X Case Is < 240 rfrac = 0 gfrac = X bfrac = C Case Is < 300 rfrac = X gfrac = 0 bfrac = C Case Else rfrac = C gfrac = 0 bfrac = X End Select r = Round((rfrac + m) 255) g = Round((gfrac + m) * 255) b = Round((bfrac + m) * 255) End If HSLtoRGB = Str(r) & "," & Str(g) & "," & Str(b) End Function
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13535)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。