エクセルのカラーパレットは”セルの書式設定”ダイアログで確認できるように
56色で構成されています。このカラーパレットをエクセルではブックごとにも
っておりますので、細かい色の操作を行おうとするときにはパレットを変更した
作業用のブックをつかう、一時的にVBAでカラーパレットを変更する、などの方法
が考えられます。
VBAからカラーパレットに対応する色の変更を行うにはブックのColorsプロパティ
ーを使用します。
(Sample1)
ActiveWorkbook.Colors(4) = RGB(250, 150, 250)
また、他のブックのカラーパレットを流用するには、対象ブックが開かれていると
して・・・
(Sample2)・・・ブック名”元パレット”からカラーパレットを移植します。
ActiveWorkbook.Colors = Workbooks("元パレット.xls").Colors
※カラーパレットのリセット
ActiveWorkbook.ResetColors
限られた56色のパレットを利用して、例えば同系色のグラデーションを表現しよ
うとする場合、上記のような方法でColorsプロパティーのインデックス指定で色を
変更します。
具体的に作成したいグラデーションの配色のRGB値などをグラフィックソフト等で
調べ、その範囲内で収まるようにVBAで色を変更します。例えばピンクから白への
グラデーションを作成するとします。
※以下のサンプルは細かい色指定を行うための例です。実際にシート上でグラデー
ションを行うにはオートシェープなどを使う方が効率的です。
(Sample3)
(R:255,G:150,B:255・・・からGを255までの範囲で指定)
※ChangeParetteでパレット変更、PatinCellでセルの配色を行います。
Sub ChangeParette()
Dim i As Integer, j As Integer
With ThisWorkbook
For i = 0 To 55
j = 150 + i * 2
If j > 255 Then j = 255
.Colors(i + 1) = RGB(255, j, 255)
Next i
End With
End Sub
’グラデーションの配色テスト
Sub PatinCell()
Dim i As Integer
Dim Rng As Range
Set Rng = ActiveWindow.VisibleRange
For i = 1 To 56
Rng.Resize(1).Offset(i - 1).Interior.Color = _
ThisWorkbook.Colors(i)
Next i
ActiveSheet.Cells.RowHeight = 6.5’確認のためセルの高さを変更
End Sub
|