プロが教える店舗&オフィスのセキュリティ対策術

Excelで対象のシートを選択した際に、前週の商品単価からプラスマイナス10円以上超過した場合にてメッセージを表示させるマクロを作りたく以下のVBAコードを書いてみましたが、添付画像のように空白セル(B6)があるとメッセージが表示されてしまいます。空白セルを無視することはできないでしょうか?
Private Sub Worksheet_Activate()
If Range("B3") <= Range("B2") - 10 Or Range("B3") >= Range("B2") + 10 Or _
Range("B4") <= Range("B3") - 10 Or Range("B4") >= Range("B3") + 10 Or _
Range("B5") <= Range("B4") - 10 Or Range("B5") >= Range("B4") + 10 Or _
Range("B6") <= Range("B5") - 10 Or Range("B6") >= Range("B5") + 10 Then
MsgBox ("±10円をオーバーしています!")
End If
End Sub

「Excelマクロで空白セルの大小比較処理」の質問画像

A 回答 (1件)

比較使用するセルが空白でないこと(セルの値<>"")を条件に含めれば良いです。

但し、そうすると今の書き方では、長くなるので、以下のようにしました。

Private Sub Worksheet_Activate()
Dim pr As Range
Dim r As Range
Set pr = Range("B2")
For Each r In Range("B3:B6")
If pr.Value <> "" And r.Value <> "" And Abs(pr.Value - r.Value) >= 10 Then
MsgBox ("±10円をオーバーしています!")
Exit For
End If
Set pr = r
Next
End Sub
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。
無事に処理することができました。
こんなシンプルなやり方もあるんですね。勉強になりました。

お礼日時:2023/09/29 15:55

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

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


このQ&Aを見た人がよく見るQ&A