Page 586 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼InputBoxについて 一二三 03/1/20(月) 13:28 ┗Application.InputBox JuJu 03/1/20(月) 13:58 ┗Re:Application.InputBox Jaka 03/1/20(月) 14:16 ┗Valiant型 JuJu 03/1/20(月) 17:33 ┗Re:Valiant型 Jaka 03/1/21(火) 10:15 ┣ありがとうございました。 一二三 03/1/21(火) 12:48 ┗またごみ JuJu 03/1/22(水) 12:51 ─────────────────────────────────────── ■題名 : InputBoxについて ■名前 : 一二三 ■日付 : 03/1/20(月) 13:28 -------------------------------------------------------------------------
InputBoxで、テキストボックスの内容がNULLとした場合、OKまたは、キャンセル を押すと、NULL(長さ0)が返ってきますが、このとき、テキストボックスがNULL でOKボタン(もしくは、enterキー)を押された返却か、キャンセルボタンによる 返却か判断したいのですが、できるのでしょうか。 できる方法を教えて下さい。 |
一二三さん、こんにちはぁ >InputBoxで、テキストボックスの内容がNULLとした場合、OKまたは、キャンセル >を押すと、NULL(長さ0)が返ってきますが、このとき、テキストボックスがNULL >でOKボタン(もしくは、enterキー)を押された返却か、キャンセルボタンによる >返却か判断したいのですが、できるのでしょうか。 >できる方法を教えて下さい。 Application.InputBoxを使ってみてはどうでしょうか? Sub Macro1() Dim varInput As Variant varInput = Application.InputBox("値を入力してね", "") If VarType(varInput) <> vbBoolean Then ' 入力されたよ Else ' キャンセルされたよ End If End Sub こんな感じです。 ではではぁ |
一二三さん、JuJu さん こんにちはぁ 私の受け取り方は、JuJuさんとちょっと違いますが。 Dim hi As Variant hi = Application.InputBox("入力して下さい。", "タイトル", , , 2) If hi = False Then MsgBox "キャンセル又は閉じるボタン" ElseIf hi = "" Then MsgBox "OKで、入力無し" Else MsgBox "okで、入力あり" End If |
Jakaさん、こんにちはぁ Valiant型は結構癖があって、型変換しないて評価すると動きがあやしいですよ。 例えば、Valiant型とBoolean型を比較するときは、Valiant型側の変数が、 「数字か数字に変換可能な文字列で値が0」の時と、 「大文字小文字を区別せずに"FALSE"」の時は、Falseと判断されます。 それ以外は、Trueですね。 なので、そのまま Valiant型変数 を False で評価した場合、 False(Boolean)の他に 0(Numeric) と "0"(String) と "FALSE"(String) も一致することがあります。 VBSで何度はまったことか(;_;) (変数全部Valiantなんていやぁぁぁぁ) 詳細もMSのサイトに載ってないし、将来仕様がまた変わりそうで怖い^^; (探したのが結構昔なので、今はあるのかな) Valiant型については、V3の初期の方に書いた記憶があるのですが、ログ飛んじゃった(;_;) ではではぁ PS. 約束通り、今年から元気になれたかな(*^_^*) |
JuJuさん おはようございます。 言われてみれば、JuJuさんのおっしゃる通りなんで、抵抗が出来ません。 Valiant型は、Falseも0または、0000等も同じように扱っちゃいますが、そう言うのは無しって事で.....、最後のあがき。 と、言う事で一二三さん色々模索してください。 >PS. 約束通り、今年から元気になれたかな(*^_^*) 約束で元気に成っちゃう所がすごいですねぇ! 私はどうも煙草の吸いすぎで、気管支炎?なのか咳が年末に風邪ひいてから止まらないですぅ。 胃潰瘍は、何とか直りましたが薬はまだ飲んでますぅ。 今年もよろしくですぅ。(*^_^*)v |
JuJuさん、Jakaさん ありがとうございました。 おかげでなんとかできました。 以下のようにしてみました。 dim val As Variant do val = Application.InputBox("入力して下さい。", "タイトル",Type:= 2) If val = False Then Exit Sub ' キャンセル→処理中止 If Len(val) > 0 Then Exit Do ' 未入力→メッセージ表示・再入力 MsgBox "入力されていません。", vbCritical Loop MsgBox val & " が入力されました" |
Jakaさん、こんにちはぁ 月曜はJakaさんが帰っちゃう前に急いで回答しようと思ってたのですが、遅れてしまいました^^; 私は未だにValiant型ではまってしまうので、まだまだ使いこなせてないのでしょう^^; 個人的には、じゃじゃ馬っぷりが好きなんですけどね^^;; >言われてみれば、JuJuさんのおっしゃる通りなんで、抵抗が出来ません。 あげあし取りでごめんなさい(^^*) >約束で元気に成っちゃう所がすごいですねぇ! いや、カラ元気です^^; どちらかというと、何もやりたくない状態かも(ぉぃ >私はどうも煙草の吸いすぎで、気管支炎?なのか咳が年末に風邪ひいてから止まらないですぅ。 体調崩すほど吸っちゃだめ〜 >胃潰瘍は、何とか直りましたが薬はまだ飲んでますぅ。 しかも、胃潰瘍だったのですか(>_<) 私は、不健康な生活をしてるので、いつかつけが回ってきそうで怖い(笑) うじゃうじゃ |