忍者ブログ

マインのブログ

マインが何かを気まぐれに書く日記です。

[PR]

カテゴリー:

2024/04/25(Thu)13:05

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

[Excel VBA] セルの色を取得する

カテゴリー:役に立つかも

2009/06/28(Sun)17:17

まあ、たまにはこういうことも書いてみようかと。

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列のセルの色を取得できます。

使うと下のようになります。
ExcelVBA1.JPG


注意点です。
1つ、上に書いたソースをコピペしてもうまくいかない(コンパイルエラーになる)場合は
手で入力してください。(改行コードとかの違いかなー)
もう1つはセルの色を変えても関数の値は即座に反映されません。
自動的に再計算されないのです。
なので、更新する場合はセルを編集しなおすか、Alt+Ctrl+F9でワークシートを更新してください。

以下、参考サイトです。

・Excel術 - 色付きセルのみを合計する [SumColor]
http://takashixxx.blog88.fc2.com/blog-entry-41.html

拍手[0回]

PR

No.1740|Comment(0)Trackback()

Comment

Comment Write
Name
Title
Mail
URL

Pass Vodafone絵文字 i-mode絵文字 Ezweb絵文字 

Trackback

URL :