|
▼Porta さん:
InputBox関数は InputBox$関数なので、返される値は文字列型となります。
だから
> Dim ss As String
と宣言しておいて、StrPtr(ss) でキャンセルされたときの判断をしている
わけです。
>小生はApplication.InputBoxを使いたく(InputBoxは横長になりすぎるためですが)貴殿のInputBoxをApplication.InputBoxに変更しました。
>
>そうすると、「Cancel」又は「×」を押したときの表示が
>"入力値は有効な日付ではありません"となります。
Application.InputBox のばあいは、すでにおやりになっているように、
Dim ch (As Variant)
と Variant型変数で受けて、戻り値が Falseだったら Cancelされたことを
判定してください。
そのあと、「有効な日付」かどうかは 別途、
IsDate(ch)
で判別することになるんでしょうか
>
>また
> If ss = False Then
> MsgBox "Cancelが押されました", vbExclamation
> Exit Sub
> End If
>を付け加えるとそれなりに表示できますが
>
>例えば「Y」を入力してOKを押すとこの上のコード部分で
>エラーが発生します。
>inputboxにType:=1で無いためだと思いますが。
>
>根本的なところを理解できていないのかも知れません…
>InputBoxとApplication.InputBoxの基本的な理解が出来ていないから
>こんな質問になってしましました。(お許しください)
|
|