お世話になります。inputフィールドの戻り値について教えてください。
1:何も入力しないでOKボタンを押したときの戻り値はブランク、
2:入力してもしなくてもキャンセルボタンを押したときの戻り値はブランク、
この2つの違いを見分けるにはどうしたらよいのでしょうか?
んぅ…もしかしてVB6のInputBox?それともVB.NETのInputBox?それとも他の?
VB6のInputBoxでキャンセルを押した場合は、
vbNullStringが返ってくるという情報を聞いたことがあるけど…
.NETは良く分からない。
何のinputフィールドなのか書かないと答えようが無いですが、
とりあえずVB6のInputBoxの場合はこんな感じです
(1)初期値指定が無い場合
以下の3つを区別出来ません。
・何も入力せずにOKをクリック
・色々入力内容を編集して最終的に入力内容が空の状態でOKをクリック
・キャンセルをクリック
(2)初期値が空の文字列ではない場合
以下の2つの区別が出来ません。
・色々入力内容を編集して最終的に入力内容が空の状態でOKをクリック
・キャンセルをクリック
また、以下の2つの区別も出来ません。
・何も入力操作をしないでOKをクリック
・色々入力内容を編集して結局最終的に初期値と同じ状態でOKをクリック
どちらの動作でも意図に沿わない場合は自分で入力画面を自作しましょう。
※駄レス
VB6だったら、OKとCancelの区別が付きます。
dim st as string
st=inputbox("OKかキャンセルかの区別")
if strptr(st)=0 then
msgbox "キャンセル"
else
msgbox st & vbnewline & "でOKを押した"
endif
ガッさん、ひろさんありがとうございます。VB6で開発中なので、ガッさんの条件判断で私のやりたいことは解決しました。ありがとうございました。
VBScriptの場合: → IsEmpty関数でチェックできます。
キャンセルされた場合、IsEmpty()はTrueを返します。
キャンセル時は Empty、何も入力せずにOKした場合は長さゼロの文字列です。
旧VB/VBAの場合: → StrPtr関数でチェックできます。
キャンセルされた場合、StrPtr()は 0 を返します。
キャンセル時は vbNullString、何も入力せずにOKした場合は長さゼロの文字列です。
VB.NETの場合: → 区別できないようです。
キャンセルされた場合、何も入力せずにOKした場合、ともに、
長さゼロの文字列が返されます。
ツイート | ![]() |