カラーパレットを変更する
手動でカラーパレットを変更するには
メニュー[ツール] - [オプション]を選びます。
すると、このようなダイアログが表示されます。
このダイアログの[色]タブのところの[変更]ボタンで
カラーパレットを変更できます。
[変更]ボタンの下の[リセット]ボタンで
デフォルトのカラーパレットに戻すことができます。
VBAでカラーパレットの色を変更するには
Colors プロパティを使います。
ActiveWorkbook.Colors(1) = RGB(0, 0, 0)
のように使います。
上の例は、アクティブなワークブックのカラーパレットの
カラーインデックス1を、RGB(0, 0, 0)に設定しています。
セルの塗りつぶしをVBAで実行するときに
Cells(1, 1).Interior.ColorIndex = 1
のようにカラーインデックスで指定できます。
このカラーインデックスが
Colorsプロパティで設定する番号と同じになっています。
ですから、
ActiveWorkbook.Colors(1) = RGB(0, 0, 0)
Cells(1,1).Interior.ColorIndex = 1
と実行すると
セルA1(=Cells(1,1))の塗りつぶしがRGB(0, 0, 0)で設定されます。
ActiveWorkbookのところは
Workbooks("Book1.xls").Colors(1) = RGB(0, 0, 0)
のようにしても使えます。
カラーパレットの色は56色あるので
ActiveWorkbook.Colors(1) = RGB(0, 0, 0)
ActiveWorkbook.Colors(2) = RGB(0, 0, 128)
ActiveWorkbook.Colors(3) = RGB(0, 102, 0)
…
ActiveWorkbook.Colors(56) = RGB(255, 255, 255)
のようにカッコ内の数字を1~56まで替えて
それぞれの色を設定できます。
最初の画像から分かるように
カラーパレットは、横 8 x 縦 7 = 56色なのですが、
カラーインデックスは
上から順に1列目の左から1, 2, 3, 4, 5, 6, 7, 8
2列目の左から9, 10, 11, 12, 13, 14, 15, 16…
といった順番にはなっていません。
調べてみたところ
このような順番になっていました。
VBAでのみ色を使う場合は
カラーパレットでの並び順は
大して重要ではないかもしれませんが、
手動で色をつけるときは
並び順は分かりやすい方がいいと思います。
実際にパレットを変更してみます。
青から赤へ
定量的に変化していくパレットに変更します。
名付けて「冷静と情熱カラーパレット」~
なんて
いつかの映画のタイトルを借用して
ドーデモいいこと言ってみたりしました。
数値の大小を表すのに
色の濃度や色相の変化を使うことがあります。
例えば、テレビでよく見るサーモグラフィーなどです。
温度が高い方が赤系の色
低い方が青系の色が使われます。
こういったことに使えそうなパレットです。
コードはこちら
Sub macro100218a() Dim i, r, b As Integer For i = 0 To 39 End Sub |
変更後のパレットです。
カラーパレットを変更すると
同じワークブック内で変更前に使った色が
変化してしまうのでご注意を。
規定のカラーパレットに戻す方法はこちらです。
Sub macro100218b() ActiveWorkbook.ResetColors |
| 固定リンク
この記事へのコメントは終了しました。

コメント