• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 条件付き書式で空欄は適用除外したい)

VBAで条件付き書式を設定する際に空欄のセルは適用除外したい

このQ&Aのポイント
  • Excel2002又は2003のVBAにおいて条件付き書式をマクロを組んで設定している際、空欄(未入力状態のセル)も条件に合致してしまいます。この現象を回避する方法はあるのでしょうか?
  • マクロで条件付き書式を設定しているため、条件付き書式の設定を行うエクセル上の操作ではなく、マクロで選択したセルに書式の設定を行いたいです。
  • 空欄になっているセルに半角スペースなどを入れることで色が付かなくなることを確認していますが、さらに条件を追加するなどしてこの現象を回避する方法はありますか?

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

  • ベストアンサー
  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.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でと述べましたが、考えてみるとこちらの方が早いとおもいます。失礼しました。

doradora55
質問者

お礼

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

doradora55
質問者

補足

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

その他の回答 (1)

  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.1

おはようございます IF 値>-10 AND 値<=5 AND 値<>0 THEN  青 IF 値<=-10 THEN  赤 ではないでしょうか。

doradora55
質問者

補足

朝早くから回答ありがとうございます! 回答いただいた方法だと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 = 赤(実際は変数名) ※なお、質問しておいて申し訳ないのですが、もうすぐ出かけるので補足等を求められた場合、返事が遅れるかもしれません。ご容赦ください