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