• ベストアンサー

エクセルマクロでinputboxメソッドゼロ入力

エクセル2007です。 以下のマクロで、inputboxメソッドで質問させると、キャンセルボタンを押すと、うまいぐあいに止まります。 しかし、0を押しても、止まってしまいます。本当は、C2にゼロと表示させたいのです。 Sub 練習() Dim myR myR = Application.InputBox(prompt:="数量を入力しなさい", Type:=1) If myR = False Then Exit Sub Range("C2").Value = myR End Sub

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。 Sub 練習()   Dim myR   myR = Application.InputBox(prompt:="数量を入力しなさい", Type:=1)   If VarType(myR) = vbBoolean Then Exit Sub   Range("C2").Value = myR End Sub Application.InputBox メソッドの場合は、 戻り値のデータ型で判別します。

kiki2926
質問者

お礼

ありがとうございました。 望んでいたとおりになりました。心から御礼申し上げます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >If myR = False Then Exit Sub の部分を >If myR = "" Then Exit Sub としてみてはどうでしょうか? FALSE=0 のコトですので、 何も変化なくマクロが終わってしまいます。 尚、質問のコードではインプットボックスタイプを >Type:=1 とされていらっしゃるので、 数値の場合がTRUE・文字列の場合はFALSEとなります。 というコトは >If myR = True Then Exit Sub としても大丈夫だと思います。m(_ _)m

kiki2926
質問者

お礼

ありがとうございました。 Sub 練習() Dim myR myR = Application.InputBox(prompt:="数量を入力しなさい", Type:=1) If myR = "" Then Exit Sub Range("C2").Value = myR End Sub にしたら、0を入力したらちゃんと0が出ましたが、キャンセルボタンを押すと、C2にfalseがでました。 falseが出るのは、うーむです。