ANo1です。
もう1例です。
Sub 消去する()
If Application.WorksheetFunction.CountA(Range("E10:E109")) = 0 Then
MsgBox ("個数が入っていません"), vbExclamation
Else
If MsgBox("すべてのデータを消去します。" & vbNewLine & _
"いいですか?", vbYesNo + vbQuestion, "データを消去") = vbYes Then
Range("E10:E109").ClearContents
End If
End If
End Sub
'// 選択範囲を記憶する
Dim Rng As Range
Set Rng = Range("E10:E109")
'// 選択範囲内の数値を調べる
Dim cnt As Double
cnt = WorksheetFunction.Count(Rng)
Dim cntFound As Boolean '// 選択範囲に数値は見つかったか
cntFound = (cnt <> 0)
If cntFound Then
'// 数値がある場合
Else
'// 数値がない場合
End If
こんな感じにして、数値がある場合・ない場合で処理を分けてはいかがでしょうか。
Sub 消去する()
If Application.CountA(Range("E10:E109")) = 0 Then
MsgBox ("個数が入っていません"), vbExclamation
Exit Sub
End If
タイトル = "データを消去"
メッセージ = "すべてのデータを消去します。いいですか?"
スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal
yesno = MsgBox(メッセージ, スタイル, タイトル)
If yesno = vbYes Then
Range("E10:E109").Select
Selection.ClearContents
End If
End Sub
ではいかがでしょう。
お礼
emaxemaxさん、ありがとうございました。 お礼を記入して、ベストアンサーのボタンを押したらお礼が消えてしまったみたいで・・・。 皆さんが一生懸命に考えてくださっている間、私は風呂に入っていました。 台風の影響で停電したら困りますからね。 二つも教えていただきありがとうございました。 どちらも思い通りに動いてくれました。 大変助かりました。 今後も質問をすることがあると思いますが、よろしくお願いします。