即効テクニック |
ブックのカラーパレットを設定します。パレットには、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値を取得するようにすれば、対象ブックのカラーパレットの状態に関係なく、コード記述時に想定した色を使用することができます。