• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA Interior.Color)

Excel VBAでの色設定に関する問題

このQ&Aのポイント
  • Excel VBAでセルの色を設定する際に、期待した値と異なる色が表示される問題が発生しています。
  • 具体的には、値として「薄緑」を入力したのに、実際に表示される色が異なり、色消しの機能も正常に動作しません。
  • また、色として「白」を設定した場合と、colorindexとしてxlnoneを入力した場合の見た目も異なります。なぜでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

エクセルのバージョンは? ここを読んでみればだいたい分かるでしょう。 http://officetanaka.net/excel/vba/cell/cell04.htm Excel 2003なら、エクセルで使える色はカラーパレットに登録されている56色だけです。 カラーパレットには任意の色を指定することができますが、カラーパレットにない色は使用することができません。 Excel 2007以降ならエクセルで使える色は1600万色ですが、ColorIndexで使うカラーパレットは56色のままです。 >colorに何を入力するとcolorindexにxlnoneを入力したのと同じになるのでしょうか。 xlnoneは、塗りつぶしをしないということです。 Excel 2003では、塗りつぶしをしない場合は背景色は白ですから、カラーパレットに白色がなければ何を入れても同じにはなりません。

qso
質問者

お礼

ありがとうございます。これからはある程度勝手に変わるということを前提にマクロを組みたいと思います。助かりました。

qso
質問者

補足

ありがとうございます。 バージョンは2003でした。 教えていただいたページを見ました。そこに以下のような記述がありました。これで勝手に数字が変わっていたんだとわかりました。 「Excel 2003までは、Colorプロパティで中間色を指定したとき、Excelが表示できる56色の中から、指定された色に最も近い(とExcelが判断した)色が設定されます。」 もうひとつ教えていただければと思います。質問のしかたがあいまいで申し訳ありませんでした。.interior.colorindex=xlnoneとするとセルの境界の薄い線が表示されます。それはxlNoneは塗りつぶしをしないという事ですね。一方、.interior.color=白 とした場合、背景色は白になりますが、それとともにセルの境界の薄い線が消えます。これは境界まで白に塗ってしまったということだと思います。つまり、.interior.colorindex=xlnone によって「塗りつぶしをしない」という事を実現できるわけですが、.interior.color=なにか ということによって「塗りつぶしをしない」ということを実現できるのでしょうか。また、.interior.colorindexを使わずに「塗りつぶしをしない」ということを実現できるのでしょうか。

その他の回答 (1)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

>.interior.color=なにか ということによって「塗りつぶしをしない」ということを実現できるのでしょうか。 >また、.interior.colorindexを使わずに「塗りつぶしをしない」ということを実現できるのでしょうか。 できません。 Colorプロパティは塗りつぶしなしをサポートしていません。

qso
質問者

お礼

ありがとうございます。サポートしていないのですね。別の方法を考えます。

関連するQ&A