Excelでセルの色を変える - Interior.Colorでうまくいかない(Excel VBA)
前回のExcel VBAでは、オレンジが46など、
Excel VBA特有の色の指定の仕方をしました。
⇒例)
Range("A1").Interior.ColorIndex = 46
ところで、Excel VBAでは、このような指定の仕方以外にも
RGBを指定して色を変えられるようです。
⇒例)
Range("A1").Interior.Color = RGB(255, 255, 0)
そこで、その方法を使ってみましたが、うまく行かないこともあるような・・・。
理論上は任意の色を作り出せるはずですが、できないことがあります。
(私のやり方が悪いのかもしれないですが・・・)
ためしにサンプルを作ってみました。
RGBの値を1ずつ変えながら実行するだけのものです。
本当ならきれいなグラデーションとなるはずが、色が分離してしまっています↓
![]()
↑色が分かれてしまっている(Excel VBAでのセルの色分けテスト)
![]()
↑本来はこうなるはず(Visual C#での色塗りテスト)
もう一例やってみたので紹介します(続きから)
やはりだめなよう。
![]()
↑色が分かれてしまっている(Excel VBAでのセルの色分けテスト)
しかも、途中に変な灰色がはいっている・・・。
![]()
↑本来はこうなるはず(Visual C#での色塗りテスト)
回避方法がわかる方、教えてください・・・。
追記:
以下のページに同じ悩みがありました。やはり同時に使える色が限られているようです。
Excelのセルの色の変更方法
同時に使える色が限られてはいますが、
下記のように、カラーパレットを変更すると任意の色にすることはできます。
ThisWorkbook.Colors(1) = RGB(255, 123, 0)
以下のページが参考になります。
エクセル:カラーパレット
http://adamontn.blog.ocn.ne.jp/analyst/2007/05/post_4164.html
※カラーパレットの変更はExcelのメニューバーの
ツール⇒オプション⇒タブ「色」 からも可能
![]()
応援お願いします(人気blogランキングへ)