- ベストアンサー
VBAでInputBoxの再入力をさせるには?
エクセルのVBAでInputBoxの間違えた入力をしてしまった時エラーが出てしまいます。 間違えた入力をした際、エラーではなく、再入力をさせるように促す処理をするにはどうしたらいいですか? 再入力システムにしたいのですが、できずに困っています。 わかる方がいましたら、教えていただけないでしょうか? よろしくお願いいたします。
- みんなの回答 (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
その他の回答 (2)
- hallo-2007
- ベストアンサー率41% (888/2115)
>再入力をさせるように促す処理をするにはどうしたらいいですか? 再入力よりも数値しか入力できない。 全角で数字を入力しても変換してくれると便利ですよね。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070308/264274/ が参考になると思います。 inputBoxではなく Application.InputBox を使います。
- imogasi
- ベストアンサー率27% (4737/17069)
標準モジュールで 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を使わないコードは(後者)は、ほかに色々ある。
お礼
ありがとうございます。 integer型にstring型を入れた場合のエラーはどう訂正すればよいですか?