• ベストアンサー

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

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

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1605/2442)
回答No.4

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

morinosatou
質問者

お礼

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

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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/760)
回答No.3

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

morinosatou
質問者

お礼

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

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

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

morinosatou
質問者

お礼

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

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

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

関連するQ&A

  • Excel VBA 条件付書式の条件満たすセル取得

    Excel2010のVBAで条件付書式の条件を満たすセルの番地を取得したい 具体的には、 Excel2010のあるシートのあるセル範囲(例えばA1~XFD1048576)に 条件付き書式が付けてあって、 (例えば、数式の条件が満たされたら背景色を赤色にするなど) この条件を満たすセルに指定した書式が付けられて表示されています。 この状態で、VBAで、この条件を満たしたセルの番地を、 順番に取得したいのですが、どのように記述すればよいでしょうか。 【追記】 数式をすべてのセルに入れて検出する方法や セルをひとつずつ数式に当てはめてみていく方法は、 セルが膨大なため容量的・時間的にNGです。 このため、条件付き書式で回避しています。 条件付き書式の判定結果である書式(この場合でしたら背景色が赤色) で判断する必要があります。(書式は背景色が赤色でなくてもいいです) よく分かりませんが、検索の中の書式で指定しても、 この条件付き書式の判定結果の書式はヒットしませんでした。

  • エクセルの条件付き書式

    エクセル2019を使用しています。 数字の入ったセルが並んでいます。 条件付き書式を使って、添付画像のように背景に色を付けたいです。 指定された範囲(今回は隣り合うセル)と比べて、そのセルが最大値だったら背景色を付ける。 ・セルBは、隣り合うセル(AとC)と比べて最大だから背景色が付いています。 ・セルCは、隣り合うセル(BとD)と比べて最大ではないので色が付いていません。 実際には結構なセル数と行がありますので、なんとか簡単にできないか悩んでいます。 良いやり方があれば教えてください。

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • エクセルの条件付き書式について

    A1セルに「100」が入力された場合、B1セルの色を赤に、同様にして200:青、300:黄、400:緑、500:赤、600:青、700:黄、800:緑という風にB1セルの色を変えたいと思います。 条件付き書式は3つまでしかないのですが、色のパターンは4種類なので、元の書式と合わせると4パターンです。 条件付書式で、A1セルの値が200又は600ならB1セルの色を青にするにはどうすればよろしいでしょうか。 つたない文章でわかりにくいかと思いますが、よろしくご回答ください。

  • EXCELの条件付書式エクスポート

    EXCEL2003 シートに埋め込まれた条件付き書式の一覧をリストみたいな構成で確認できないものでしょうか? A3にㇾ無しの時、A3セルの背景色は黄色 A3にㇾが入った時、A3セルの背景色を黄色→白色に変更、 B3セルの背景色を白色→グレー B3にㇾ無しの時、B3セルの背景色は黄色 B3にㇾが入った時、B3セルの背景色を黄色→白色に変更、 A3セルの背景色を白色→グレー みたいな条件付き書式が、1シート上の複数セルに設定されているシートがあります。 条件付き書式が入ったセルを不用意にコピーされると、 条件不要なセルに条件付き書式が入っているかどうかわからなくなります。 1シートに設定されている条件付きを全て把握可能な方法はないでしょうか? 少なくともどこかのセルに式が入っているかどうかをリストみたいな構成で把握できたら 助かります。 A3セルの条件内容 条件1が背景グレー 条件2が背景黄色 条件1:=IF($B$3="レ",1,0) …(1) 条件2:=$A$3=""       …(2) B3セルの条件内容 条件1が背景グレー 条件2が背景黄色 条件1:=IF($A$3="レ",1,0) …(3) 条件2:=$B$3=""       …(4) 1ページ上の(1)~(4)の式を全て把握できないかという事です。 背景色等、他の条件まで把握できると良いですが、 式がトリガになるので条件付き書式セルを把握したいのです。

  • エクセルの書式設定の「#」

    エクセル2002の書式設定についてですが、セルの書式設定の「表示形式」で「ユーザー定義」にします。そして種類のところには「#」と入れました。 セルに「999」と入力すると「999」と表示されました。 ところが「ユーザー定義」の種類のところには「#,」と入れました。 するとセルに「999」と入れても「1」と表示されます。 またセルに「9999」と入れたら「10」と表示されました。 これはどうしてでしょうか?

  • Excel VBA背景色について。

    A1からE1までの行にそれぞれ違う文字が入ります。 そしてF1からJ1にはA1~E1を検索値にしてvlookup関数で文字の種類番号が表示されるようになっています。そして種類は全部で9種類あり、A1からE1まではその9種類のどれかに該当すれば条件付き書式で背景色がつくようになっています。 A1~E1はそれぞれ違う文字が入りますが、5つ全て種類は同じです。 例えばA1がvlookup関数の検索にヒットして9種類の内の1番に該当するならば、B1からE1まで全て1番という事になります。C1が4番に該当したらA1からE1全て4番ということになります。 しかし、A1からE1まで全てがvlookup関数にヒットするわけではありません。 A1とD1だけが該当してB1、C1、E1は該当せず背景は白のままです。全てヒットして綺麗に前セルの背景が一色になることもありますが、大体は1つ2つしかヒットしません。どれか一つでも該当したらその5つの種類は同じです。 そこで、該当しなかったセルの背景も同じように背景色をつけたいのですがどうすれば良いでしょうか。条件書式で重ねれば良いとも思いましたが、それぞれのセルには既に9種類の色分けをするために9つのルールが入っているので、重ねればさらに膨大な条件書式の量になるので、色の値を返せるVBAでスマートに解決できないかと思い質問させて頂きました。 説明下手でわかりにくいと思いますが、VBAでどうにか良い方法はないでしょうか。 よろしくお願いしますm(_ _ )m

  • Excel2007 条件付き書式について

    過去の質問事項も確認しましたが、一致する内容がありません でしたので、質問をさせて頂きます。 使用しているOS:WinXP Pro SP3 Excel2007の条件付き書式ですが、条件を満たした場合、即座に 書式が反映しないのは何故でしょうか?シートを開き直したり、 プリントプレビューなど、画面を一度別のものに変えると設定 した書式が反映されます。 具体例 条件付き書式の設定は、セルA1が○の場合、B1~20が赤の塗つぶ しになる。(式:=$A$1="○"、書式設定:赤の塗つぶし/B1~20) ・セルA1に○と入力してEnterキーを押した場合  ⇒セルB1~20の状況:設定した書式が反映されない。 ・プリントプレビューなど別画面に切り替えて、元のシートを  開いた場合  ⇒セルB1~20の状況:設定した書式が反映される。 この該当するExcelファイルの容量が大きい(4Mくらいある)の で、処理が遅くなって発生している問題なのでしょうか? ちなみに、新しいBookで同様の設定を行うと、きちんと書式の 設定が反映されます。 どうかご教授お願い致します。

  • Excelの書式設定

    Excel2002の書式設定についてお尋ねします。 セルの書式設定の「表示形式」で「ユーザー定義」についてですが、 種類のところに「;;;」を入力するとデータが消えることを知りました。 この「;;;」の意味はなんですか? 表示を消すという意味ですか?数式バーには入力したものは残っているのですがどういう意味なのでしょうか?。

  • エクセルの条件付き書式に関して

    エクセルの条件付き書式の件で教えて頂けないでしょうか。 条件1 A1セルが空白の時にはC1の背景を青色 こちらはD1セルの条件1に「=ISBLANK(A1)」と設定しました。 次にB1のセルの結果が5%~-5%(0.05~-0.05)の範囲であればC1の背景を緑で文字色は黒。 B1のセルの結果が上記範囲外であればC1の背景を緑で文字を赤色の太い文字にしたいのですが、数式の記述方法が分かりません。 教えて頂きたく、宜しくお願いいたします。

専門家に質問してみよう