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

お世話になります。VBAを勉強中の者です。
自分なりに調査してみたのですが、解決できなかったので質問させて頂くことにしました。

EXCEL2003を使ってカラーチャートを作成しています。
1セル1色を、(色の)漏れがなく、かつ、ダブり無く塗りつぶし、
1つのシートのセルを全て使って256×256×256色のグラデーションを作成しようとしています。

上述カラーチャートを作成するにあたり、
まずは簡単なSubプロシージャを作成することにしました。
RGB関数のRedの値を0から255まで変化させ順次セルを塗りつぶすことで
黒→赤 のグラデーションを得ようと考えたのです。

作成したコードは以下の通りです。
このコードを実行すると、意図している黒から赤への連続的なグラデーションは得られず、
Redの値が0から64までは黒、65から192までは栗色っぽい色、193から255までは赤
という3色しか表示されない結果となりました。

Excelは、セルの塗りつぶしやフォントの色などをカラーインデックスという形で
保持しているということまでは、調査で把握しました。256色の連続的なグラデーション
ではなく、3色のグラデーションとなってしまったのは、RGB関数で指定した値が
カラーインディックスに丸め込まれたからであるとは予想がつきますが、
RGB関数で指定した色でセルを塗りつぶす方法が分かりません。

グラデーションを得るにはどうすれば良いのでしょうか?
お力をお借りしたいです。宜しくお願い致します。

- - - - - - - - - - - - -
Sub RGB_Color_Red()
Dim n As Long
Dim cnst As Long
cnst = 0
For n = 1 To 256
Cells(n, 1).Interior.Color = RGB(n - 1, cnst, cnst)
Next
End Sub
- - - - - - - - - - - - -

A 回答 (1件)

可能な前提で質問してるところ悪いんだけど


https://www.google.com/search?q=excel2003+%E8%89 …
    • good
    • 0
この回答へのお礼

お忙しい所、ご返答下さり誠にありがとうございました!
RGB関数で設定できる色が出せないのは、Excelの仕様というのは盲点でした。
オートシェイプの塗りつぶしをする場合は、
256×256×256色選択できたから、セルも同様に考えておりました。
Excel2003の場合、セル、文字は56色しか使用できないのですね。
そもそもできるのかという視点をもって取り組めばよかったのですね。
どうもありがとうございました!

お礼日時:2011/12/11 00:10

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