• ベストアンサー

Excelの条件付き書式の背景色を取得すると・・

Excel2016を使用しています。 セルの背景色を取得するユーザー定義関数を作って色番号を調べました。 (1)条件付き書式でセルの背景色を塗りつぶしたセル(B1) (2)直接背景色を塗りつぶしたセル(B2) (3)背景色を塗りつしていないセル(B3) 上記3種類を調べたところ、(2)だけは色番号を示し、(1)(3)は何も塗りつぶしていないという結果になりました。 どうして(1)は色を反映していないのでしょうか?

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.4

条件付き書式で付けられたセルの背景色は、通常のInterior.Colorでは取得できず Range("B1").DisplayFormat.Interior.ColorIndex Range("B1").DisplayFormat.Interior.Color で取得できますが、ユーザー定義関数では使えません。

morinosatou
質問者

お礼

詳しく解説して戴きありがとうございました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

質問の状況の説明が不十分では。補足すべきと思うが。 >ユーザー定義関数を作って 余りやらない話と思うが、VBAは少しは、わかるのだろうね。 そしてVBAで組んだのではないのか?もしそうなら、そのコードを、質問に上げないで質問するのはおかしくない? もっと言えば、肉眼ではその色はシートセルに見えて居るの? ひょっとして、条件の指定が、質問者の意図のためには、正しくない場合もあり得る。 >色番号 これにもいろいろあると思うが? Interior.Color =vbBlue= Interior.ColorIndex = Interior.Color =RGB( Interior.Color =色番号数値 が多いと思うが。 細かく言えば、 「様々な色の指定方法」 https://dz11.hatenadiary.jp/entry/2017/12/07/085840

morinosatou
質問者

お礼

詳しく解説して戴きありがとうございました。

  • okwavey3
  • ベストアンサー率19% (147/761)
回答No.3

それぞれの認識が仕様と異なるため (1)条件付き書式でセルの背景色を塗りつぶしたセル(B1) →背景色を指定していないセルに、条件付き書式が指定されている。 (2)直接背景色を塗りつぶしたセル(B2) →背景色が指定してされている (3)背景色を塗りつしていないセル(B3) →背景色を指定していない。

morinosatou
質問者

お礼

ありがとうございました。

  • asciiz
  • ベストアンサー率70% (6803/9675)
回答No.2

「条件付き書式」は「書式」であり、「背景色」ではないからだと思われます。 つまり二つは同じところを塗るけれど、全く別のものであると。 実際、「条件付き書式」が設定されているセルにおいて、背景色をつけた場合、すべての条件に該当しない場合、背景色が表示されます。 背景色が塗られているのに、条件によって取得できる色コードが違ったら、逆におかしいことになってしまいますね。 「背景色を調べる」関数では、条件付き書式によって塗られた色を調べることはできない。という、単純な話になるかと思います。

morinosatou
質問者

お礼

詳しく解説して戴きありがとうございました。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.1

B1の背景色を塗りつぶしていないからだと思います。 B1を赤や青で塗りつぶしてみてください。

関連するQ&A