« カラーパレットを変更する | トップページ | 種々のカラーパレット 2 »

2010年2月19日 (金)

種々のカラーパレット

記事「カラーパレ ットを変更する」において
カラーパレットを変更する方法について書きました。

今回は、
いろいろな色のカラーパレットを作りたいと思います。
上記記事の中の
冷静と情熱カラーパレットに変更するコードの
RGB関数の引数Red、Green、Blueの値のところを変更して、
違う色のカラーパレットにします。

まずは、白から黒へ徐々に変化していくカラーパレットにします。
無彩色はRedとGreenとBlueの値が同じです。
例えば、
Red = Green = Blue = 255なら、白で
Red = Green = Blue = 0は、黒
Red = Green = Blue = 123は、なんらかの濃さのグレー
になります。

グレースケールカラーパレットにするコード:

Sub macro100219a()
'カラーパレットを変更
'グレースケール

    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 = r
            b = r
            Debug.Print r
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i

End Sub

変更後のグレースケールカラーパレットです。
Pic20100219a

次は、
緑から赤へ、青から緑へ変化するカラーパレット。
青から赤へ変化するカラーパレットは、
冷静と情熱カラーパレットに変更するコードでできます。
原理はそのコードと同じです。

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

Sub macro100219b()
'カラーパレットを変更
'緑から赤へ

    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 - r
            b = 0
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i

End Sub

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

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

Sub macro100219c()
'カラーパレットを変更
'青から緑

    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 = 0
            g = Int(255 * i / 39)
            b = 255 - g
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の青から緑のカラーパレットです。
Pic20100219c

加法混色の三原色と減法混色の三原色の関係は
次のようになっています。

赤 + 緑 = シアン
緑 + 青 = イエロー
青 + 赤 = マゼンダ

RGB関数では、

RGB(255, 255, 0) = イエロー
RGB(0, 255, 255) = シアン
RGB(255, 0, 255) = マゼンダ

になります。

次は、シアン・マゼンダ・イエローを使っていきます。

青からイエローのカラーパレットの場合を説明しますと、
青はRGB(0, 0, 255)、
イエローはRGB(255, 255, 0)なので、
RGB(0, 0, 255)からRGB(255, 255, 0)に徐々に変化させます。
RGB関数の引数RedとGreenを同じ値にする以外は
赤から青のカラーパレットに変更するときと
あまりかわりません。

青からイエローのカラーパレットにするコード:

Sub macro100219d()
'カラーパレットを変更
'青からイエロー

    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 = r
            b = 255 - r
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の青からイエローのカラーパレットです。
Pic20100219d

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

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

    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 - r
            b = r
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

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

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

Sub macro100219f()
'カラーパレットを変更
'赤からシアン

    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 = g
            r = 255 - g
            ActiveWorkbook.Colors(MyIndex(i)) = RGB(r, g, b)
        Next i
       
End Sub

変更後の赤からシアンのカラーパレットです。
Pic20100219f

|

« カラーパレットを変更する | トップページ | 種々のカラーパレット 2 »

コメント

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

トラックバック


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

« カラーパレットを変更する | トップページ | 種々のカラーパレット 2 »