ブックのカラーパレットを設定します。パレットには、56種類のカラーインデックスがあり、引数Indexでパレットの何番目かを特定します。引数を省略した場合には、パレットの56色すべてを含む配列を取得します。なお、各色はRGB値で表されます。
●詳細●
構文 Object.Colors(Index) 設定/取得
設定項目 内容
Object Workbookオブジェクト [省略不可]
Index カラーインデックス番号を指定 [省略可能]
カラーパレットの何番が何色になるかは、次のサンプル1で確かめてください。
●サンプル1●
Sub ColorsSamp1()
Dim i As Integer
With Range("A1:G8")
For i = 1 To 56
.Cells(i).Interior.Color = ActiveWorkbook.Colors(i) '---(1)
'.Cells(i).ColorIndex = i '---(1)と同じ意味
.Cells(i).Value = i
Next i
End With
End Sub
通常、(1)のコードは、その次の行のコードのように記述しますが、今回に限っては意味をわかりやすくするためにこうしています。
なお、カラーパレットはブック単位で管理されており、カラーパレットの色をユーザーが変更することができます。次のサンプル2は1〜28番目までのパレットを白に、19〜56番目のパレットを黒に設定します。
●サンプル2●
Sub ColorsSamp2()
Dim i As Integer
For i = 1 To 56
If i <= 28 Then
ActiveWorkbook.Colors(i) = RGB(255, 255, 255) '---白に設定
Else
ActiveWorkbook.Colors(i) = RGB(0, 0, 0) '---黒に設定
End If
Next i
End Sub
サンプル2実行後のブックの「塗りつぶしの色」ツールバーは変更されます。
なお、カラーパレットを他のブックからコピーしたり、既定の状態に戻したりすることが可能です。次の例を参考にしてください。
●サンプル3●
Sub ColorsSamp3()
ActiveWorkbook.Colors = ThisWorkbook.Colors
'---アクティブブックに、コードの記述されたブックのカラーパレットをコピー
End Sub
●サンプル4●
Sub ColorsSamp4()
ActiveWorkbook.ResetColors
'---アクティブブックのカラーパレットをリセット
End Sub
●ポイント●
コードを記述しているブックのカラーパレットを常に一定の状態に保っておき、ThisWorkbookオブジェクトのカラーパレットからRGB値を取得するようにすれば、対象ブックのカラーパレットの状態に関係なく、コード記述時に想定した色を使用することができます。