| 
    
     |  | ▼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」を押したときは
 >同じように無効になってしまいますが・・・。
 
 
 |  |