こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでスピンボタン

ワークシート上にスピンボタンを配置しました。
Valueは、Max100、Min0 で設定しました。
やりたいのは、スピンボタンでValueを減らしていって、0になるまでは何も言わず、Valueが0の状態でさらに減らそうとした場合、メッセージを出したいのです。
Private Sub SpinButton1_Change()
If SpinButton1 <= 0 Then
MsgBox "マイナスにはできません!", vbCritical
End If
End Sub
としましたら、0になった瞬間にメッセージがでてしまいます。
If SpinButton1 < 0 Then としたら、マイナスにはならないので当たり前ですが何も出ません。
どうしたらいいでしょうか?

投稿日時 - 2017-12-29 22:36:32

QNo.9413059

困ってます

質問者が選んだベストアンサー

私だったら
最小値を0ではなく、-1など、マイナスの値に設定し

If SpinButton1.Value <= -1 Then
 SpinButton1.Value = 0
 MsgBox "マイナスにはできません!"
End If
Label1.Caption = Format(SpinButton1.Value, "0")

といったコードにします。

投稿日時 - 2017-12-30 08:22:43

お礼

HohoPapaさん、またまた助けていただきました。
ありがとうございます。
これで安心して年を越せそうです。
どうぞ、良い年をお迎えください。

投稿日時 - 2017-12-30 10:25:30

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

提示のコードは基本的に誤っています。
If SpinButton1 <= 0 Then
SpinButton1の値はアップ/ダウンを問わずボタンをクリックする度にFalseになりますの毎回メッセージボックスが表示されると思います。(False = 0)
If [スピンボタンとリンクしたセルの値] = 0 Then
[目的のセルの値] = MAX([スピンボタンとリンクしたセルの値] - 1 , 0 )
スピンボタンの上限値 = 101 、下限値 = 0 のようにすれば良いと思います。

投稿日時 - 2017-12-30 09:46:29

お礼

すみません、.valueが抜けてましたね。
でも毎回エラーは出ませんでしたよ。
ご教示、ありがとうございます。
どうぞ、良いお年をお迎えください。

投稿日時 - 2017-12-30 10:27:05