種々のカラーパレット 3
記事「種々のカラーパレット 2」のつづき
「種々のカラーパレット 2」の最後では、
任意の色から黒までのグラデーションのカラーパレットに変更しました。
次は、白から任意の色、黒の順に変化するカラーパレットです。
白から任意の色、任意の色から黒までのグラデーションを
2つのFor文で行います。
Sub macro100221a() '任意の色の設定 |
変更後の白から任意の色、黒の順に変化するカラーパレットです。
単色濃淡グラデーションはこれくらいでやめます。
今度は、任意の色0から任意の色1までのグラデーションです。
任意の色0と任意の色1をRGB関数で表すと
RGB(r0, g0, b0)
RGB(r1, g1, b1)
にします。
引数Redについて説明します。
任意の色0から任意の色1までのグラデーションで引数Redは
r0 から r1 まで変化します。
i が0から39まで変化する間に
(r1 - r0)分だけ増えるようにするには、
(r1 - r0)を39等分して
(r1 - r0) / 39
これに i を掛けると(r1 - r0) / 39ずつ増えていきます。
(r1 - r0) / 39 * i
これが引数Redに入ります。
r = (r1 - r0) * i / 39
引数Green、Blueも同様です。
Sub macro100221b() '任意の色の設定 For i = 0 To 39 |
変更後の任意の色0から任意の色1のカラーパレットです。
今度は、色相のグラデーションです。
赤、イエロー、緑、シアン、青、マゼンダ、
そして赤になっていくグラデーションのカラーパレットです。
赤からイエロー、
イエローから緑、
緑からシアン、
シアンから青、
青からマゼンダ、
マゼンダから赤の変化を
6つのfor文で分割して行います。
Sub macro100221c() Dim i, r, g, b As Integer End Sub |
変更後の色相のグラデーションカラーパレットです。
上の色相は鮮やかですが、
この色相のグラデーションを淡くしたり、
濃くしたグラデーションにしてみます。
RGB関数は、加法混色なので
ある色を淡くするには、
Red、Green、Blueに同量ずつ足します。
反対に暗くするには、
Red、Green、Blueに同量ずつ引きます。
この「同量」のところが下のコードの torn になります。
ようするに、上の色相のグラデーションのコードの
変数r、g、bに代入するところに「+ torn」を付け足しただけです。
ひとつ注意点があります。
RGB関数は、各引数が255を超えるとすべて255とみなしますが、
負の数を入れるとエラーになります。
引数が不正みたいです。
tornの値をマイナスにすると
RGB関数の各引数に入れる変数r、g、b が
マイナスになることもあります。
このような場合はすべて0にします。
Sub macro100221d() Dim i, r, g, b, torn As Integer End Sub |
変更後のトーン変化色相グラデーションカラーパレットです。
ここでは、単純に引いたり足したりしているだけですので、
淡くしたり濃くしたりするのにもっといいやり方があるかもしれません。
| 固定リンク
この記事へのコメントは終了しました。

コメント