« 種々のカラーパレット | トップページ | 種々のカラーパレット 3 »

2010年2月20日 (土)

種々のカラーパレット 2

記事「種々のカラーパレット」のつづき

まずは、シアン・マゼンダ・イエロー同士のグラデーションです。

シアンからイエローのカラーパレットの場合、
シアンとイエローをそれぞれRGB関数で表すと、

RGB(0, 255, 255)
RGB(255, 255, 0)

引数Greenのところは両方とも255なので変化しません。
あとは、引数Redが0から255まで、
引数Blueが255から0まで変化させると
シアンからイエローのグラデーションができます。

シアンからイエローカラーパレットにするコード:

Sub macro100220a()
'カラーパレットを変更
'シアンからイエロー

    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 0 To 39
            r = Int(255 * i / 39)
            g = 255
            b = 255 - r
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後のシアンからイエローカラーパレットです。
Pic20100220a

マゼンダからシアンカラーパレットにするコード:

Sub macro100220b()
'カラーパレットを変更
'マゼンダからシアン

    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 0 To 39
            g = Int(255 * i / 39)
            b = 255
            r = 255 - g
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後のマゼンダからシアンカラーパレットです。
Pic20100220b

イエローからマゼンダカラーパレットにするコード:

Sub macro100220c()
'カラーパレットを変更
'イエローからマゼンダ

    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 0 To 39
            b = Int(255 * i / 39)
            r = 255
            g = 255 - b
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後のイエローからマゼンダカラーパレットです。
Pic20100220c

次は、単色濃淡グラデーションです。

赤を単色として使います。
黒から赤のグラデーションについて説明します。
黒と赤はRGB関数で表すとそれぞれ

RGB(0, 0, 0)
RGB(255, 0, 0)

つまり、引数Redを0から255まで変化させると
黒から赤のグラデーションになります。

黒から赤のカラーパレットにするコード:

Sub macro100220d()
'カラーパレットを変更
'単色濃淡グラデーション
'黒から赤

    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 0 To 39
            r = Int(255 * i / 39)
            g = 0
            b = 0
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の黒から赤のカラーパレットです。
Pic20100220d

今度は、白から赤のグラデーションです。
白と赤をRGB関数で表すとそれぞれ

RGB(255, 255, 255)
RGB(255, 0, 0)

引数Redは常に255で変化しません。
引数GreenとBlueは255から0まで変化させます。

白から赤のカラーパレットにするコード:

Sub macro100220e()
'カラーパレットを変更
'単色濃淡グラデーション
'白から赤

    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 0 To 39
            r = 255
            g = 255 - Int(255 * i / 39)
            b = 255 - Int(255 * i / 39)
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の白から赤のカラーパレットです。
Pic20100220e

いままでは、単色に赤を使っていました。
次は、単色を任意のRed、Green、Blueで設定します。
変数r0、g0、b0で任意の色のRGB関数の引数を設定します。

任意の色から白に変化するグラデーションについて説明します。

任意の色と白をRGB関数でそれぞれ表すと

RGB(r0, g0, b0)
RGB(255, 255, 255)

になります。
引数Red、Green、Blueをそれぞれ
r0から255、g0から255、b0から255まで変化させれば
任意の色から白のグラデーションになります。

任意の色から黒のグラデーションの方は
任意の色と黒はRGB関数で表すと

RGB(r0, g0, b0)
RGB(0, 0, 0)

なので、r0から0、g0から0、b0から0まで変化させれば
任意の色と黒のグラデーションになります。

任意の色から白のカラーパレットにするコード:

Sub macro100220f()
'カラーパレットを変更
'単色濃淡グラデーション
'任意の色から白

    '任意の色の設定
    Dim r0, g0, b0 As Integer
    r0 = 136
    g0 = 34
    b0 = 67
   
    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 39 To 0 Step -1
            r = r0 + Int((255 - r0) * i / 39)
            g = g0 + Int((255 - g0) * i / 39)
            b = b0 + Int((255 - b0) * i / 39)
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の任意の色から白のカラーパレットです。
Pic20100220f

任意の色から黒のカラーパレットにするコード:

Sub macro100220g()
'カラーパレットを変更
'単色濃淡グラデーション
'任意の色から黒

    '任意の色の設定
    Dim r0, g0, b0 As Integer
    r0 = 136
    g0 = 34
    b0 = 67
   
    Dim i, r, g, b As Integer
    Dim MyIndex As Variant
    MyIndex = Array(1, 53, 52, 51, 49, 11, 55, 56, _
        9, 46, 12, 10, 14, 5, 47, 16, _
        3, 45, 43, 50, 42, 41, 13, 48, _
        7, 44, 6, 4, 8, 33, 54, 15, _
        38, 40, 36, 35, 34, 37, 39, 2)

        For i = 0 To 39
            r = r0 - Int(r0 * i / 39)
            g = g0 - Int(g0 * i / 39)
            b = b0 - Int(b0 * i / 39)
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の任意の色から黒のカラーパレットです。
Pic20100220g

|

« 種々のカラーパレット | トップページ | 種々のカラーパレット 3 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 種々のカラーパレット 2:

« 種々のカラーパレット | トップページ | 種々のカラーパレット 3 »