dポイントプレゼントキャンペーン実施中!

よろしくお願いします。

たとえば、セルA1のセルをピンクにしていたとします。そこで、B1に関数か何かを使ってA1セルの色を特定するコードを取得したいのです。
(その後、オートフィルでA列のピンク色のついたセルだけをB列のコードを使って選びたいのです)

雑誌の立ち読みで、可能なことまではわかっているのですが、やり方を忘れてしまいました。
その雑誌では「名前」と「マクロの色コード」と「関数」で可能だったように記憶しています。
よろしくお願いいたします。

A 回答 (4件)

通常の関数では不可能ですが


VBAでできるようです。

参考URL:http://hp.vector.co.jp/authors/VA016119/hajimete …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ご紹介いただいたサイトで非常に詳しい内容の解説があり、大変勉強になりました。ありがとうございます。

お礼日時:2006/05/13 01:03

ユーザー関数を定義します。


VBE画面の標準モジュール(ここに必ず)に
Function clget(a)
clget = a.Interior.ColorIndex
End Function
を貼り付け
セルのB1に=clget(A1)といれると、A1セルのパターン色が赤の場合3が返ります。
関数名は別の名でもよい。
文字色に場合
a.Font.ColorIndex
にすると良い。
雑誌にはエクセル4.0マクロとか言うのが載っていたかもしれない。
    • good
    • 2
この回答へのお礼

imogasiさん、いつもお世話になります。
ごめんなさい。先着順でのポイントになってしまいました。ただ、シンプルな内容のVBAで大変、勉強になりました。心からありがとうございます。

お礼日時:2006/05/13 01:08

#02です


複数のセルを選択していっぺんに処理するなら、次のようになります

Sub CLindex()
For Each c In Selection
c.Offset(rowOffset:=0, columnOffset:=1).Value = c.Interior.ColorIndex
Next
End Sub
    • good
    • 0
この回答へのお礼

2度にわたってのご回答ありがとうございました。
マクロの実行でとてもスムーズにできました。
今回は関数を勉強したかった点と先着順で次点ポイントとなったことをお許しください。
ただ、関数では再計算できない注意点があることからも教えてくださった実際にはマクロの実行が確実ですね。そういう面からは最高のお答えをいただきました。感謝申し上げます。

お礼日時:2006/05/13 01:06

カラーインデックス(色コード)を知りたいセルをアクティブにして、以下のマクロを実行してみて下さい。

右隣のセルに表示されます

Sub CLindex()

Selection.Offset(rowOffset:=0, columnOffset:=1).Value = Selection.Interior.ColorIndex

End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!