
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

No.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
ご回答いただきありがとうございました。
無事に処理することができました。
こんなシンプルなやり方もあるんですね。勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA 空白セルがあったら...
-
VBA サンダーバードのメール自...
-
複数セルに〇印をつけるマクロ
-
Excel VBA コンボボックスで空...
-
クリップボードの内容を変数に...
-
GridViewの行選択イベントを発...
-
【VB.NET】DataGridViewセルの...
-
エクセル: セルの枠を超えて表示
-
エクセルでの計算式で求められ...
-
エクセル:マクロ「Application...
-
エクセルで表示形式の時刻の「0...
-
EXCELで特定のセルに表示...
-
IF関数で空欄("")の時、Null...
-
エクセルのセル内に全角数字を...
-
エクセルで任意のセルをクリッ...
-
エクセルの画面で十字マークが...
-
エクセルで指定したセルのどれ...
-
エクセルで連続データから、数...
-
Excelで全角の数字が半角になっ...
-
貼り付けで複数セルに貼り付けたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 空白セルがあったら...
-
Excel VBA コンボボックスで空...
-
VBA 別ブックから条件に合うも...
-
Excelマクロで空白セルの大小比...
-
クリップボードの内容を変数に...
-
Excel 入力規則のリストのカー...
-
【VBA】セルが空白の場合に処理...
-
複数セルに〇印をつけるマクロ
-
【VB.NET】DataGridViewセルの...
-
マクロについて質問です 範囲内...
-
DataGridViewでセルを結合したい
-
VBA サンダーバードのメール自...
-
VBA 文字列を1文字ずつ調べて"...
-
JTableにおけるセルの結合について
-
VBAを用いて特定の範囲のセルの...
-
マウスを乗せたときにセルの色...
-
Excel VBA 多重ループについて
-
FireFoxについて
-
VBAの参照方法について
-
Goolgeスプレッドシートの内容...
おすすめ情報