• 締切済み

インプットボックスに数値を入力するまで繰り返すためには、どのように書いたらよろしいでしょうか??

宜しくお願い致します。 現在このように記述しています。 a = InputBox(prompt:="a数値を入力してください", title:="a数値") Do While a = "" Or IsNumeric(a) = False msgbox prompt:="数値を入力してください", title:="未入力" a = InputBox(prompt:="a数値を入力してください", title:="未入力") Loop このように記述するとループに入っているのでインプットボックスが表示されたときにキャンセルボタンを押しても脱出することができないので、他の方法でループかできるはずだと考えていますが、方法の検討がつきません。 どなたかその方法に関して御教授お願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

1回は実行しないとならないから Sub etst01() Do a = InputBox("a=") Loop Until a <> "" And IsNumeric(a) = True MsgBox a End Sub でどうですか。 ーー ほか下記を参考に http://excelvba.pc-users.net/fol6/6_4.html

すると、全ての回答が全文表示されます。
  • t-aka
  • ベストアンサー率36% (114/314)
回答No.1

安直に考えればInputBoxの次の行に If a="" Then Exit Do にすればいいと思います。 ただ Do While a="" ~ と条件式を書いているので コードとしていまいちスッキリしない感じです。 Do  a = InputBox(数値を入力してください)  If a="" Then Exit Do  If IsNumeric(a) Then   Exit Do  Else   MsgBox 正しく数値を入力してください  End If Loop とかはどうでしょうか。 ある程度は好みなのでこれが正解というのは ないと思いますが。 あと、当方携帯より入力しています。 一部記述を簡略化している点はご容赦ください。

すると、全ての回答が全文表示されます。

関連するQ&A