エクセルVBA if、Elseifの使い方について
調べたり、試行錯誤したのですが分からないので教えてください。
A列の最大値により表示されるメッセージを場合分けします。
(1)最大値が1~9の場合→「終了します」のメッセージを表示させる。
(2)最大値が0の場合 →「該当なし。シートを削除しますか?」のメッセージを表示させる。
(3)最大値が10の場合 →「すべて選択しています。シートを削除しますか?」のメッセージを表示させる。
メッセージをクリックした結果
(1)「はい」をクリックして終了。
(2)「はい」をクリックすれば、シートを削除。「いいえ」をクリックして終了。
(3)「はい」をクリックすれば、シートを削除。「いいえ」をクリックして終了。
'メッセージ
Dim maxval As Long
maxval = Application.Max(sheet1.Range("A:A"))
If maxval >= 1 And maxval <= 9 Then
MsgBox " 終了します"
ElseIf maxval = 0 And vbYes = MsgBox("該当なし。シートを削除しますか?", vbYesNo) Then
Application.DisplayAlerts = False
sheet1.Delete
Application.DisplayAlerts = True
ElseIf maxval = 10 And vbYes = MsgBox("すべて選択しています。シートを削除しますか?", vbYesNo) Then
Application.DisplayAlerts = False
sheet1.Delete
Application.DisplayAlerts = True
End If
End Sub
(1)最大値が1~9の場合は成功します。
(2)(3)最大値が0の場合や10の場合に、「該当なし。シートを削除しますか?」と「すべて選択しています。シートを削除しますか?」の両方が、表示されてしまいます。
(2)(3)の場合に、それぞれのメッセージしか表示されないようにするにはどうしたらよいのでしょうか。
よろしくお願いします。