プロが教えるわが家の防犯対策術!

vlookupで表引きをして所定の範囲にある値を持ってくる一覧表を作成しています。この際に見やすくするため、値を持ってくる表引きのマスタに設定されている塗りつぶしの色ごと参照させたいのですが、どのようにしたら良いでしょうか。中間色なども多く使用しており、また参照するマスタ部の数値範囲も変わることがあるため、条件付書式以外の方法があったら教えてください。

A 回答 (3件)

関数式で書式であるセルの塗りつぶし色(パターン)を左右することはできません。


関数はセルの値しか扱いませんし結果もセルの値が返るだけです。(条件付書式の中に関数らしきものは使う場合がありますが。)
セルの色コードさえ取ることができません(ただし議論あり)。
ですからVBAでやらざるを得ません。その覚悟はありますか。
>中間色なども多く使用しており
何色ぐらい使ってますか。標準のパレット色を変えてますか。
中間色と条件付書式を使わないこととの関連はないのでは。
    • good
    • 0
この回答へのお礼

色は15色くらいですがマスタ自体の行数が時期によって変わるので色数も数色は前後します。条件付書式は条件が3つまでしか入れられなかったので使えないと判断しました(間違ってたらすいません)。VBAの学習が必要ですね。時間をかけてやってみます。ありがとうございました。

お礼日時:2006/02/15 22:20

色はでたらめですが、colorindexの56種でよいなら(ご希望の中間色というわけには行かないかもしれないが)


C1:D7に
02
103
204
305
406
507
1008
と入れて、(C列は数値区分、D列は色のコード)
A列に数を入れる。
そして、標準モジュールに下記を貼り付けて、実行する。
Sub test01()
d = Range("a65536").End(xlUp).Row
For i = 1 To d
c = Application.WorksheetFunction.VLookup(Cells(i, "a"), Range("c1:d10"), 2, True)
Cells(i, "a").Interior.ColorIndex = c
Next i
End Sub
自分の場合とこをどう直すと良いか勉強する、でやってみてください。
    • good
    • 2
この回答へのお礼

ありがとうございます。とりあえず上記の通りでやってみましたが、なぜかエラーになってしまいます。エラーメッセージも禁止アイコンと「400」のみの表示で、ヘルプボタンを押してもヘルプのウインドウは表示されるものの空白です。環境の問題でしょうか?
ステップ実行をしてみたところ、c = Application.WorksheetFunction... のところで上記エラーが出ます。

お礼日時:2006/02/17 08:53

#2です。


>c = Application.WorksheetFunction... のところで
を下記にして実行してください・
継続行の書き方は、スペース+アンダーバー+改行でやります。
OKWAVEで横が長いと、勝手に機械的に行変更が起こるようです。すこしVBAになれた人なら、原因を見破りますが・・
c = Application.WorksheetFunction.VLookup(Cells(i, "a"), Range("c1:d10"), _
2, True)
もう一度やってみましたが、その点以外はうまくいきます。
    • good
    • 0
この回答へのお礼

上記の通りやってみたところうまく動きました。使っているシートにも反映し色を塗ることが出来ました。ありがとうございました。

お礼日時:2006/02/20 11:25

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A