• ベストアンサー

inputbox のキャンセルの戻り値について(VBA×エクセル)

VBA初心者で、ユーザフォームにはまだ手出ししたくなく、INPUTBOXで値を取得しているのですが、 INPUTBOXでキャンセルボタンを押したときに、マクロを終了するように書きたいのですが、どのように記述したらよいのでしょうか? INPUTBOXからはどんな値が返ってきているかわからず、 メッセージボックスで確認してみたのですが、空欄なので、 IF RetIPT ="" then マクロ終了 endif としてみたのですが、「マクロ終了」には進んでくれず... 回答をお願いします~

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 InputBox は次の2種類あります。恐らくInputBox メソッドをお使 いかと。 【InputBox 関数】   例)strRET = InputBox("入力して下さい")   この場合、Cancel ボタンクリックで「長さ 0 の文字列」が   返されます。次のように判定します。   If strRET="" Then     Msgbox "Cancel ボタンが押されました"     Exit Sub   End If 【InputBox メソッド】   例)strRET = Application.InputBox("入力して下さい")   この場合、Cancel ボタンクリックで False が返されます。   次のように判定します。   If UCase$(strRET) = "FALSE" Then     MsgBox "Cancel ボタンが押されました"     Exit Sub   End If

noname#61366
質問者

お礼

KenKen_SPさん、ご回答ありがとうございます。 私が使用しているのは上記です。 ご指示のように「""を返したら、終わりにする」と記述しているのに、 思うような動きをしてくれなかったものですから.... 私の書き方が間違えていないことがわかりましたので、 別のところが間違えているか調べてみたいと思います。 ありがとうございました。