Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


64541 / 76738 ←次へ | 前へ→

【16777】Re:inputboxのキャンセルについて
お礼  hisao E-MAIL  - 04/8/9(月) 16:43 -

引用なし
パスワード
   ▼ichinose さん:

早速 お返事有難う御座いました。
IROCさん、つんさん、ichinoseさん 有難う御座いました。
特に ichinoseさんのご回答には いつもながら感激しました。

>▼hisao さん、IROCさん、こんにちは。
>
>
>>すみません。初歩的なことで又教えてください。
>>inputboxに入れる変数がdateの場合、
>>キャンセル等の場合
>>if A="" then とするとエラーになりますね。
>
>と言う事は、ApplicationのInputboxメソッドではなく、
>関数のInputboxを使用していると言うことですね?
>
>これって、「キャンセル」を押すと、""が戻り値として返されてしまいますから、
>基本的には、受け側の変数をDate型では厳しいですよね。
>一度、String型の変数で戻り値を受ける方法等をとらなければなりませんね!!
>でも、正確には、これでも厳しいんですよ。
>
>「キャンセル」が押されたときと 何も入力せずに「OK」が押されたときの
>区別が付きませんから・・・・。
>もっともこの場合は、同じと見なしてもたいした事はなさそうだけど・・。
>
>>キャンセルした場合処理を分岐するには どうすれば宜しいでしょうか。
>
>冒頭に記述したようにこういう場合は、Inputbox関数ではなく、
>ApplicationのInputboxメソッドを使用する方が多いようですよ!!
>
>正確には、Vatiant変数で受けてBoolean型か否かで判断するのですが、
>'==============================================
>Sub test()
>  Dim ans As date
>  ans = application.InputBox("日付入力してね", Type:=1)
>  If ans <= 0 Then
>   MsgBox "値は、無効"
>  Else
>   MsgBox ans
>   End If
>End Sub
>こんなんでもよいでしょうか?
>上記コードは、「キャンセル」を押したときと「0」を入力して「OK」を押したときは
>同じように無効になってしまいますが・・・。
0 hits

【16769】inputboxのキャンセルについて hisao 04/8/9(月) 15:09 質問
【16770】Re:inputboxのキャンセルについて IROC 04/8/9(月) 15:13 回答
【16771】Re:inputboxのキャンセルについて つん 04/8/9(月) 15:32 発言
【16772】Re:inputboxのキャンセルについて ichinose 04/8/9(月) 15:40 回答
【16777】Re:inputboxのキャンセルについて hisao 04/8/9(月) 16:43 お礼

64541 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free