RGB関数を使うとき
RGB(red, green, blue)のred, green, blueのそれぞれに
0から255までの整数を指定します。
理論的には256*256*256=16777216通り指定できますが
実際にはそれだけの種類で表示されません。
経験的にそのことはわかっていたのです。
が、いまいち頭がすっきりしないので、
すべての組み合わせの表示を
実際に見てみようと思ったわけです。
仕組みはいたって単純。
あるredの値で、行方向にgreenを、列方向にblueを
0から255まで変化させて
セルの内部の色を指定するだけ。
コード内ではred, green,blueはそれぞれr, g, b
red軸で変化するカラーパレットSub Macro100104a() 'カラーパレット 'r軸で変化 Dim ColorTable As String Dim MyR, MyC As Integer Dim r, g, b As Integer Range(toA1("R2C1:R257")).Delete Range(toA1("R2C1:R257")).ColumnWidth = 3 / 4 Range(toA1("R2C1:R257")).RowHeight = 21.75 / 3 For r = 0 To 255 Step 8 Cells(1, 1) = "R=" & r Application.ScreenUpdating = False For g = 0 To 255 For b = 0 To 255 Cells(g + 2, b + 1).Interior.Color = RGB(r, g, b) Next b Next g Application.ScreenUpdating = True Next r End Sub |
上記のコードを実行するとこのように

この画像は静止画ですが実際にはアニメのように動きます。
全体を見るにはExcelの表示倍率を25%程度にしてください。
意外にも、私ごのみの
パウル・クレーやカンディンスキー風の
抽象絵画的な動画になりました
左上から右下にかけて無彩色が動いていくのが
わかります。
色の勢力図といったところでしょうか。
いや、色の群雄割拠?
色の戦国時代?
色の「信長の野望」!?
ある時点で色がパッと塗り変わるところなんか
「信長の野望」で侵略成功したときを思い出します。
せっかくなので、
green軸、blue軸で変化するコードも作りました。
green軸で変化するカラーパレットSub Macro100104b() 'カラーパレット 'g軸で変化 Dim ColorTable As String Dim MyR, MyC As Integer Dim r, g, b As Integer Range(toA1("R2C1:R257")).Delete Range(toA1("R2C1:R257")).ColumnWidth = 3 / 4 Range(toA1("R2C1:R257")).RowHeight = 21.75 / 3 For g = 0 To 255 Step 8 Cells(1, 1) = "R=" & r Application.ScreenUpdating = False For r = 0 To 255 For b = 0 To 255 Cells(r + 2, b + 1).Interior.Color = RGB(r, g, b) Next b Next r Application.ScreenUpdating = True Next g End Sub |
green軸表示例:

blue軸で変化するカラーパレットSub Macro100104c() 'カラーパレット 'b軸で変化 Dim ColorTable As String Dim MyR, MyC As Integer Dim r, g, b As Integer Range(toA1("R2C1:R257")).Delete Range(toA1("R2C1:R257")).ColumnWidth = 3 / 4 Range(toA1("R2C1:R257")).RowHeight = 21.75 / 3 For b = 0 To 255 Step 8 Cells(1, 1) = "R=" & r Application.ScreenUpdating = False For r = 0 To 255 For g = 0 To 255 Cells(r + 2, g + 1).Interior.Color = RGB(r, g, b) Next g Next r Application.ScreenUpdating = True Next b End Sub |
blue軸表示例:
いや~楽しいですね。
この抽象感!!
RGB関数でまだまだ遊べそうです。
コメント