VBSで大小関係の比較処理

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

VBSで大小関係の比較処理

帳票を電子データ化するに当たり、作成したデータファイルをカスタマイズすることになりました。 言語はVBScriptです。(ASPです。) まったくの初心者です。 テキストボックス1とテキストボックス2と申請ボタンがあり、 テキストボックス1に入力された値よりテキストボックス2に 入力された値のほうが小さいときに申請ボタンを押すと エラーボックスが表示され、 エラーボックスのOKボタンを押すとテキストボックス2の値を消して、 テキストボックス2にカーソルを移動して入力を促す。 ということをしたいのですが、どのようにすればいいのでしょうか? 本当に何もわからないのでよろしくお願いいたします。

  • halno
  • お礼率76% (10/13)

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

  • ベストアンサー
  • 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

  • テキストボックスでEnterを押した時の処理

    VisualStudioのASP.NETで開発しています。 今回、お聞きしたいのは、 テキストボックスとコマンドボタンが同じページに複数あって、 このテキストボックスにカーソルがある時にEnterを押せば、 このコマンドボタンが押される。という処理をするには、 どのようにすればいいのでしょうか? 普段、色々なサイトを見てみますと、 テキストボックスにカーソルがあるとき、 その後、押すであろうコマンドボタンに、 うっすらカーソルがあってるというか、 選択状態になっていますよね? それを指定する方法をご存知の方いらっしゃいませんでしょうか? なんだかうまく説明できませんけども、 どうぞ、よろしくお願いしますm(_ _)m

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

  • 他フレームのテキストボックス操作について

    ------------------------------- frameA: [テキストボックス:件数表示] [テキストボックス:検索条件] [SUBMITボタン] ------------------------------- frameB: ~検索条件によりデータ表示~ ------------------------------- ASP,VBScript,Oracleを使用しています。 frameAの[検索条件]を入力し、[SUBMITボタン]押下時にDBからのデータをframeBに表示するようにしています。 frameBへデータ表示後、frameAの[件数表示]のテキストボックスに対してデータを返したいのですが、なにか方法はありますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • javascriptのわかる方へ

    ASP初心者です。 現在、ASPで開発をしています。 script言語はjavascriptを使っています。 ASPだけでなく、javascriptも初心者なので、本を読んでもさっぱりわかりません。 そこで質問いたします。 テキストボックスに値を入力させ、ボタンがクリックされたら、次のページで入力内容を表示させたいのですが、 1.次のページを表示させるにはどのように記述するのでしょうか? 2.入力された値を次のページで参照するにはどのように記述すればよいのでしょ うか? よろしくおねがいします。m(_ _)m

  • VBSのプログラム

    VBSのプログラムで質問です。 (1)ラジオボタンA、B (2)テキストボックス があって、 Aを選択するとテキストボックスが入力可能になり、 Bを選択するとテキストボックスが入力不可能になるプログラムを作りたいのですが、 どのようなプログラムを作ればいいでしょうか?

  • 日付のエラー

    aspx(vbscript)でプログラムを作っています。 ある申請書を作っているのですが、その中で テキストボックスに日付を入力して、その日付が[今日]より 前だとエラーになるというコードを作りたいのですが、 If Trim(textbox1.value) <>"" and Datevalue(textbox1.value) < Date Then msgbox "日付が違います。" End If としたのですが、テキストボックスに何も入力しないとエラーになって動いてくれません。テキストボックスに入力すればちゃんと動きます。 この項目は必須項目ではないのでテキストボックスに入力せずに申請する場合もあるので困っています。どのようにすればちゃんと動作してくれるのでしょうか。  

  • 1つのテキストボックスを、2つのボタンで利用したいのです。

    ASP初心者です。 宜しくお願いします。 1つの画面に 1.「検索ボタン」 2.「EXCEL出力」ボタン 3.「テキストボックス1」 4.「テキストボックス2」 を作成しました。 「検索ボタン」を押下した時も「EXCEL出力ボタン」を押下した時も、 テキストボックス1と2に入力された値を利用するにはどのようにしたら良いのでしょうか? (テキストボックスへ入力された値は、DBへの問い合わせの際のwhere句指定で使用します。) ボタンが1つだけの時は<form>~</from>の間に、テキストボックスの記述を行い、 受け側ではRequest.Formで値を取得する事ができたのですが、 テキストボックスを共用しようとした途端、分からなくなってしまいました。 有識者の皆様、よろしくお願い致します。

  • asp.net の質問です。

    asp.net初心者です。言語はvbを使用しています。 ボタンのクリック時にイベントを走らせる方法は なんとなくわかりますが(理解しているというより動く) テキストボックスの値が変わったときに 変更されたタイミングで別のテキストボックスの値を 設定するというのはWebプログラミングでは 難しいことなのでしょうか? 方法と解説を教えていただけると助かるのですが。 aspの本も買ったり、web検索したりしたのですが いまいちよく分からないというか 情報がないというか・・・困っています。 どなたかお力添えお願いします。

  • VC++2008にて、画面の動的変更処理について

    現在VC++2008のMFCにて開発を行っております。 ダイアログのテキストボックスAの値を変更し、 カーソルが移動した際に 他のテキストボックスBの値を、Aの値により処理がかかる のような処理は無理なのでしょうか? やはり、ボタン押下でしか画面の更新は無理なのでしょうか? ご教授頂ければ幸いです。

  • ASP.NET/VBでのユーザコントロールを使用したプログラム

    開発環境:VS2005 言語:ASP.NET(VB) 質問させてください。 現在ASP.NETでプログラムを作っています。 プログラム等は経験なくほぼ初心者です。 内容としては テキストボックス(txtB)1個のユーザコントロールを ボタン(btn1)1個とテキストボックス(txtA)1個のフォーム(aspx)に貼り付け、 ボタンを押下することでフォームのテキストボックス内の値を ユーザコントロールのテキストボックスに表示させるという プログラムを作りたいのですがうまくいきません。 色々調べたのですが、 ユーザコントロールのテキスト内の値をフォームのテキストに表示させる方法は あったのですが逆の方法は見つけられませんでした。 説明等わかりにくいところもあるかもしれませんが 回答よろしくお願いいたします。

専門家に質問してみよう