まあ、たまにはこういうことも書いてみようかと。
Excelのマクロやユーザー定義関数を追加する方法は
Excelのマニュアルを見てもらえると分かると思います。
面倒な方はVisual Basic Editor(Alt + F11、または「ツール」-「マクロ」)でエディターを開いて、
標準モジュールの挿入をしてもらえればいいかと。
今回はExcelでセルの色を取得する方法です。
対象はExcel2000、Excel2003です。
色の取得といっても、「このセルは赤です」みたいな感じではなく、
色のインデックスの値が分かるだけです。
まあ、使い道としては
「条件付書式で今日の列に色付けしてるんだけど、すでに色のついているセルには違う色をつけたい」
くらいですかね。
・・・、あんま使わないですね・・・。
さて、前フリはここまでにして、さっそくソースを。
-----ソース------
Function CellColor(objCell As Range) As Integer
Application.Volatile
CellColor=objCell.Interior.ColorIndex
End Function
-----ここまで-----
ぶっちゃけ、VBAよく分かってないので細かい説明は出来ません。
が、これでセルの色を取得できます。
引数にセルを指定して、関数として使います。
使い方の例は以下のとおりです。
----使い方の例-----
1. =CellColor(A1)
2. =CellColor(INDIRECT("A"&ROW()))
----ここまで---------
1のように入力するとA5のセルの色を取得できます。
2のように入力すると入力したセルと同じ行のA列のセルの色を取得できます。
使うと下のようになります。
注意点です。
1つ、上に書いたソースをコピペしてもうまくいかない(コンパイルエラーになる)場合は
手で入力してください。(改行コードとかの違いかなー)
もう1つはセルの色を変えても関数の値は即座に反映されません。
自動的に再計算されないのです。
なので、更新する場合はセルを編集しなおすか、Alt+Ctrl+F9でワークシートを更新してください。
以下、参考サイトです。
・Excel術 - 色付きセルのみを合計する [SumColor]
http://takashixxx.blog88.fc2.com/blog-entry-41.html[0回]
PR