カンパ〜イ!←最初の1杯目、なに頼む?

エクセルのVBAでInputBoxの間違えた入力をしてしまった時エラーが出てしまいます。

間違えた入力をした際、エラーではなく、再入力をさせるように促す処理をするにはどうしたらいいですか?

再入力システムにしたいのですが、できずに困っています。
わかる方がいましたら、教えていただけないでしょうか?
よろしくお願いいたします。

A 回答 (3件)

#1です。


Sub test01()
p1:
x = InputBox("数字を入力")
If x = "" Then Exit Sub
If Not IsNumeric(x) Then
MsgBox "数字ではありません。再入力 "
GoTo p1
End If
If x > 10 Then '条件を書く
MsgBox "10以下を入力 再入力"
GoTo p1
End If
MsgBox x
'処理
End Sub
    • good
    • 4

>再入力をさせるように促す処理をするにはどうしたらいいですか?


再入力よりも数値しか入力できない。
全角で数字を入力しても変換してくれると便利ですよね。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070 …
が参考になると思います。
inputBoxではなく
Application.InputBox を使います。
    • good
    • 0

標準モジュールで


Sub test01()
p1:
x = InputBox("数字を入力")
If x > 10 Then '条件を書く
MsgBox "10以下を入力"
GoTo p1
End If
MsgBox x
'処理
End Sub
のようなことか。
ーーー
Goto文がイヤなら
Sub test02()
Do
x = InputBox("数字を入力")
Loop Until x <= 10
MsgBox x '確認
'処理
End Sub
Gotoを使わないコードは(後者)は、ほかに色々ある。
    • good
    • 0
この回答へのお礼

ありがとうございます。
integer型にstring型を入れた場合のエラーはどう訂正すればよいですか?

お礼日時:2011/10/21 14:43

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

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


おすすめ情報

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