• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBSで大小関係の比較処理)

VBSで大小関係の比較処理

このQ&Aのポイント
  • 帳票を電子データ化するに当たり、作成したデータファイルをカスタマイズすることになりました。言語はVBScriptです。(ASPです。)まったくの初心者です。
  • テキストボックス1とテキストボックス2と申請ボタンがあり、テキストボックス1に入力された値よりテキストボックス2に入力された値のほうが小さいときに申請ボタンを押すとエラーボックスが表示され、エラーボックスのOKボタンを押すとテキストボックス2の値を消して、テキストボックス2にカーソルを移動して入力を促す。
  • VBSで大小関係の比較処理を行いたい場合、VBScriptの条件分岐文を使用することで実現することができます。まず、テキストボックス1とテキストボックス2の値を取得し、比較します。テキストボックス1の値がテキストボックス2の値よりも大きい場合はエラーボックスを表示し、テキストボックス2の値を消去して入力を促します。この処理は、申請ボタンのクリックイベントで行われます。VBScriptの条件分岐文やテキストボックスの値の取得方法などについて学習し、実装してみてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

以下はHTMLの記述です。 === 前略 === <INPUT TYPE='TEXT' ID='T1'> <INPUT TYPE='TEXT' ID='T2'> <INPUT TYPE='BUTTON' ONCLICK='Check()' VALUE='申請'> === 中略 === <SCRIPT LANGUAGE='VBScript'> Sub Check() Dim T1, T2 Set T1 = document.getElementById("T1") Set T2 = document.getElementById("T2") If T1.value > T2.value Then   MsgBox "T1>T2です", vbCritical, "エラー"   T2.focus   Exit Sub End If 'TODO 正常時の処理をここから記述 End Sub </SCRIPT> === 後略 === 何がどう大きいか小さいかは分かりませんが、上記コードは単に文字列同士の比較になっています。もし、日付や数値の場合は変換してから比較しないと正常な結果になりません。 このScriptはクライアント側で動作するので、IE以外のブラウザではVBScriptが動作しないため無効です。できればこの部分はJavaScriptの方が良いでしょう。 尚、この処理をサーバ側Scriptで実現する方法もあります(もっと複雑な制御になる)が、手間をかける割に応答が遅く(サーバ往復のため) 効果的ではありません。

halno
質問者

補足

>何がどう大きいか小さいかは分かりませんが、上記コードは単に文字列同士の比較になっています。もし、日付や数値の場合は変換してから比較しないと正常な結果になりません。 日付や数値の場合はどのように変換すればいいのでしょうか? 丸投げで申し訳ありません。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

T1.Valueとはテキストボックス内の文字列です。 数値に変換する場合はCDbl(倍精度実数)かCLng(長整数)を使います。数値の限界や丸めは実験してみてください。 日付の場合はCDate(お勧め)、DateValue、TimeValueを使います。 とりあえず、VBSやるなら以下のサイトを見てみてください。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/vtorifunctions.asp

halno
質問者

お礼

ありがとうございました。 No.1のソースも含め、とても参考になりました。 教えていただいたサイトを参考に、もっと勉強したいと思います。 本当にありがとうございました!!

関連するQ&A