記事「種々のカラーパレット」のつづき
まずは、シアン・マゼンダ・イエロー同士のグラデーションです。
シアンからイエローのカラーパレットの場合、
シアンとイエローをそれぞれ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 |
変更後のシアンからイエローカラーパレットです。
マゼンダからシアンカラーパレットにするコード: 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 |
変更後のマゼンダからシアンカラーパレットです。
イエローからマゼンダカラーパレットにするコード: 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 |
変更後のイエローからマゼンダカラーパレットです。
次は、単色濃淡グラデーションです。
赤を単色として使います。
黒から赤のグラデーションについて説明します。
黒と赤は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 |
変更後の黒から赤のカラーパレットです。
今度は、白から赤のグラデーションです。
白と赤を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 |
変更後の白から赤のカラーパレットです。
いままでは、単色に赤を使っていました。
次は、単色を任意の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 |
変更後の任意の色から白のカラーパレットです。
任意の色から黒のカラーパレットにするコード: 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 |
変更後の任意の色から黒のカラーパレットです。
コメント