カラーパレットの操作
エクセルのカラーパレットは”セルの書式設定”ダイアログで確認できるように
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

Excel97,2000



戻る


Excel Word Access VBA! モーグ