こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL2007セルの色を数式で取得したい

EXCEL2007セルの色を数式で取得したい

EXCEL2007で条件付き書式を使って現在使って特定の値が入っているセルを
条件付き書式を使って背景を赤色を変えるというシートを作成しました。

さらに、特定のセルをダブルクリックすると書式を水色に変わるという処理
をVBAで実現したのですが、既に条件付き書式によって赤くなっているセルの
背景色を水色に変えることができません。

つまり、書式設定した背景色が条件付き書式の背景色につぶされてしまいます。

書式設定した背景色(水色)の方を優先させたいので、条件付き書式の条件に
セルの書式に背景色が設定されているときには条件外とするようにしたいのですが。

どうやって、数式で書式設定した背景色を取得できますか?

もしくは、他の方法で実現できるアイデアがありましたら、紹介してください。
どうぞ、よろしくお願いいたします。

投稿日時 - 2010-08-23 14:46:44

QNo.6129653

すぐに回答ほしいです

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

水色に塗りつぶすと同時に、条件付書式を解除してしまったらいかが
でしょうか。
Private Sub Worksheet_BeforeDoubleClick _
    (ByVal Target As Range, Cancel As Boolean)
 With Target
  .Interior.ColorIndex = 8
  .FormatConditions.Delete
 End With
End Sub

解除した条件付書式を再使用することが前提でしたら、ダミーセルに
条件付書式をコピーしておき、水色になったセルをダブルクリックで
戻す処理も考えられます。
以下は、当該セルの200個右のセルをダミーとして使用した例です。
Private Sub Worksheet_BeforeDoubleClick _
    (ByVal Target As Range, Cancel As Boolean)
 Application.ScreenUpdating = False
 With Target
  Select Case .FormatConditions.Count
   Case Is <> 0
    .Copy
    .Offset(0, 200).PasteSpecial Paste:=xlFormats
    .FormatConditions.Delete
    .Interior.ColorIndex = 8
   Case Else
    .Interior.ColorIndex = xlNone
    .Offset(0, 200).Copy
    .PasteSpecial Paste:=xlFormats
    .Offset(0, 200).Clear
  End Select
  .Select
 End With
 Application.CutCopyMode = False
 Application.ScreenUpdating = True
End Sub

投稿日時 - 2010-08-23 17:24:12

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちは。

 条件付き書式の中の条件式ではセルの色などを調べることはできないと思います。

 条件付き書式と同様な処理をVBAで記述して、「特定の値が入っているセル」等のイベントに記述したらどうでしょう。

では。

投稿日時 - 2010-08-23 17:10:04

あなたにオススメの質問