アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2002又は2003のVBAにおいて条件付き書式をマクロを組んで設定しているのですが、
設定1:5以下の場合、青
設定2:-10以下の場合、赤
のように設定したのですが、空欄(未入力状態のセル)も青くなってしまいます。
空欄になっているセルに半角スペース等を入れれば色は付かなくなることを確認はしたのですが、条件付書式にさらに条件を追加する等で、この現象を回避する方法はないでしょうか?

なお、マクロで条件付書式の設定してあるセルを選択し、条件付書式を一括で書き換えています(色の設定や範囲指定を別設定で変えられるように)。
そのため、条件付き書式でエクセル上の操作で行う設定ではなくマクロで選択したセルに書式の設定を行うようにしたいのですが・・・

※書き込むカテゴリに少し迷ったのですが、こちらで質問させていただきます。
よろしくお願いします。

A 回答 (2件)

NO1です


ここは素直に第3の条件を入れましょう。
-10以下、0、5より小さいの順で分けます。条件3(FormatConditions(3))にxlNoneを入れると勝手に3つ条件が2つに変更されるようです。ですので1番目か2番目に入れます。

With Cells
.FormatConditions.Delete
.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, Formula1:="-10"
.FormatConditions(1).Interior.ColorIndex = 3
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="0"
.FormatConditions(2).Interior.Pattern = xlNone
.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="5"
.FormatConditions(3).Interior.ColorIndex = 5
End With

>Range(Cells(1, 1), Cells(65535, 255)).SpecialCells(xlCellTypeAllFormatConditions).Select
ですと、更のシート(条件を設定していない)ではエラーになると思います。

はじめは不用意にIFでと述べましたが、考えてみるとこちらの方が早いとおもいます。失礼しました。

この回答への補足

回答、ありがとうございます

サラのシートの場合を全く考えてなかったのには気づきませんでした。ありがとうございます!
マクロの記録から作るとこういうポカをよくやってしまう・・・
まだ組み込んで確認をしてませんので、締め切りませんがほんとに助かりました。のちのち謎のエラーで苦しめられるところだった(--;

補足日時:2007/02/20 18:14
    • good
    • 0
この回答へのお礼

別件でものすごく忙しくなり、この件は手放してしまうことになりそうですが、条件付き書式が一件もない場合エラーになる等、とても参考になりました。ありがとうございました。

お礼日時:2007/02/24 04:10

おはようございます


IF 値>-10 AND 値<=5 AND 値<>0 THEN
 青
IF 値<=-10 THEN
 赤
ではないでしょうか。

この回答への補足

朝早くから回答ありがとうございます!
回答いただいた方法だと0が青くならないのかな?と。

 なお質問に入れ忘れていましたマクロのソースを補足として追加します。SpecialCellsで条件付書式を選択肢、条件を再設定しています。
 また、セルの値を比較する場合の自セル値の参照(自セルの相対参照を設定する必要がある?)の設定の仕方がよくわからないのですが、SpecialCellsを使っているとうまく設定できなかったりするんでしょうか?

' 条件付書式の設定されているセルを選択
Range(Cells(1, 1), Cells(65535, 255)).SpecialCells(xlCellTypeAllFormatConditions).Select
' 条件付書式を削除
Selection.FormatConditions.Delete
' 5未満
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:=5(実際は変数名)
'セル背景色
Selection.FormatConditions(1).Interior.ColorIndex = 青(実際は変数名)
' -10以下
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, Formula1:=-10(実際は変数名)
'セル背景色
Selection.FormatConditions(2).Interior.ColorIndex = 赤(実際は変数名)

※なお、質問しておいて申し訳ないのですが、もうすぐ出かけるので補足等を求められた場合、返事が遅れるかもしれません。ご容赦ください

補足日時:2007/02/19 06:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています