必要要件
・アクティブセルに対して動作
・背景色と文字色はあらかじめ幾つかセットを決めておく
・ひとつのボタンに1セットとし、必要なセット数だけボタンをつくる
・初期値に戻すボタンもつくる
●ソースコード
---------------------------------------------------------------------------------------------------
Dim work As Range 'アクティブセルのアドレスを格納する変数を定義
Set work = Selection 'アクティブセルのアドレスを変数workに退避
ActiveCell.Interior.ColorIndex = 3 '背景色をセット
ActiveCell.Font.ColorIndex = 2 '文字色をセット
work.Select '変数workからアクティブセルを元に戻す
---------------------------------------------------------------------------------------------------
文字色と背景色は、必要に応じ変えてゆく。
背景色なしの場合は、番号の代わりにxlColorIndexNoneを書く
文字色を自動にする場合は、番号の代わりにxlAutomaticを書く
新しいEXCELで、色指定をRGBで行う場合は、番号の代わりにRGB(赤色,緑色,青色)と書く
改良
ActiveCellでは、範囲指定できないので、かわりにSelectionを使用する。今までどおり、単一セルへの指定もできる。
具体的には、
ActiveCell.Interior.ColorIndex = 3 → Selection.Interior.ColorIndex = 3
ActiveCell.Font.ColorIndex = 2 → Selection.Font.ColorIndex = 2
と変える。
●ソースコード
---------------------------------------------------------------------------------------------------
Dim work As Range 'アクティブセルのアドレスを格納する変数を定義
Set work = Selection 'アクティブセルのアドレスを変数workに退避
Selection.Interior.ColorIndex = 3 '背景色をセット
Selection.Font.ColorIndex = 2 '文字色をセット
work.Select '変数workからアクティブセルを元に戻す
---------------------------------------------------------------------------------------------------
色について
excel2000では背景色と文字色は色パレットにより決められいるため、これ以外の色は使えない。色は、カラー番号で指定する。
デフォルトの色パレット
新しいexcelでは、もっと多くの色が使える。(ColorIndex→Colorにすればよい)
初期値のカラーパレット(上段は色名、下段はカラー番号)※1
数字順に色を並べてみた
(抜けている数字の色を補ってある)※2
おまけ
セルの数字を読み取って、その値の背景色にするマクロ。
✱ActiveCell.Interior.ColorIndexをActiveCell.Font.ColorIndexにすると文字色の変更になる
●ソースコード
-----------------------------------------------------------------------------------------------------
Dim work As Range 'アクティブセルのアドレスを格納する変数を定義
Set work = ActiveCell 'アクティブセルのアドレスを変数workに退避
If ActiveCell.Value <> "" Then 'もし空文字でなければ
ActiveCell.Interior.ColorIndex = ActiveCell.Value '背景色の数字を読み取ってセット
End If
work.Select '変数workからアクティブセルを元に戻す
------------------------------------------------------------------------------------------------------
参考
※1 office TANAKA
※2 だめだま
0 件のコメント:
コメントを投稿