重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Sub test()
Range("A1,B2,C3").FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="9", Formula2:="14"
Range("A1,B2,C3").FormatConditions(1).Interior.ColorIndex = 3
End Sub
 
これが上手くいきません。
意味としては、("A1,B2,C3")に入力される数値が9~14以外の場合、セルを赤で塗りつぶすです。
どなたか教えていただけませんでしょうか?

質問者からの補足コメント

  • へこむわー

    何故かA1のセルのみ上手くいっています。

      補足日時:2021/03/28 16:50

A 回答 (6件)

#5です


>段階で設定した書式が残っていた、と言う事でしょうか??
条件付き書式、あまり詳しくないのですが、条件、、なので実行順位があるのだと思います。
VBAで条件付き書式を設定してマクロ無しファイルで配布するなどの場合、使わない事はないと思うのですが、私は、実はVBAからは使ったことが無いです。
ご質問から離れてしまいますが、マクロ有効ブックで良いのなら、下記のようなコードを私の場合は対応します。

対象のシートモジュールに
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1,B2,C3")) Is Nothing Then
Application.EnableEvents = False
With Target
If .Value = 9 Or .Value = 14 Then
.Interior.ColorIndex = 0
Else
.Interior.ColorIndex = 3
End If
End With
Application.EnableEvents = True
End If
End Sub

使ったことが無かったので私自身も調べてみました。
参考になるかも知れません。
https://excel-ubara.com/excelvba1/EXCELVBA391.html
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます‼️
この質問で書いたコードに辿り着くまでに、書いたコードの条件が残ってしまっていた様です。
そしてまた、この御回答のコードの方が好きです、いつもありがとうございます!
またお世話になりたいと思います!

お礼日時:2021/03/29 05:50

連投すみません。


ご質問のコードで合っていると思いますので、手動で条件付き書式を確認してみてください。
    • good
    • 0
この回答へのお礼

ありがとう

Qさんお世話になります。
訳が判らなかったのですが、一度条件付き書式を全てクリアしたらできました!!
ありがとうございます!!!!
恐らく色々試行錯誤している段階で設定した書式が残っていた、と言う事でしょうか??

お礼日時:2021/03/28 17:22

こんにちは



他にも条件付き書式が設定されているのかな・・・

以下ではいかがでしょうか?
With Range("A1,B2,C3").FormatConditions.Add(Type:=xlCellValue, Operator:=xlNotBetween, Formula1:=9, Formula2:=14)
.Interior.ColorIndex = 3
End With

あるいは、
Range("A1,B2,C3").FormatConditions.Add(Type:=xlCellValue, _
Operator:=xlNotBetween, Formula1:=9, Formula2:=14) _
.Interior.ColorIndex = 3

とか。
    • good
    • 1
この回答へのお礼

助かりました

色々試行錯誤していまして、それが条件として残ってしまう事をしりませんでした!!
ありがとうございます! 
大変勉強になりました!!

お礼日時:2021/03/28 17:22

#2コピペで間違えました。


.Range("A1,B2,C3").FormatConditions(1).Interior.ColorIndex = 3

下記に訂正
.FormatConditions(1).Interior.ColorIndex = 3
    • good
    • 1
この回答へのお礼

ありがとう

ありがとうございます!

お礼日時:2021/03/28 17:24

こんにちは、


これではどうでしょう
With Range("A1,B2,C3")
.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="9", Formula2:="14"
.Range("A1,B2,C3").FormatConditions(1).Interior.ColorIndex = 3
End With
    • good
    • 1
この回答へのお礼

ありがとう

ありがとうございます!

お礼日時:2021/03/28 17:24

"9" ではなく 9 とか?


14の方も
    • good
    • 0
この回答へのお礼

がんばります

御回答ありがとうございます。
出来ませんでした。

お礼日時:2021/03/28 16:13

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