• 締切済み

テキストボックスでの数値の表示のしかた

VBをつい最近はじめた者です。(^^; テキストボックスに、例えば '234'と入力したとき、同じテキストボックスに'000234'というように、あらかじめ決めた桁数(この場合6桁)を満たすように、上位の桁に0を表示させるようにするにはどうしたら良いでしょうか。 また、はじめは '000000' と表示させておき、入力後に'000234'と表示できるとなお良いです。 プロパティのMaxLengthで'6'の設定はしてあります。

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

Masked Edit を使っても良いんじゃないでしょうか。 プロジェクトのコンポーネントから、 Microsoft Masked Edit Control 6.0 を選んで、フォームに同コントロールを貼り付け、 右クリックのプロパティから  入力マスクが######  プロンプト文字が0  フォントは等幅フォントに ってな感じで指定すれば… 234を入力したい場合でも頭3桁に0を入力しなくてはいけない等の若干のクセはありますが、その辺は使ってみて感触を掴んでくださいな。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

Private Sub TextBox1_GotFocus() TextBox1.Text = "000000" End Sub Private Sub TextBox1_LostFocus() t = TextBox1.Text TextBox1.Text = Right(t, 6) End Sub

回答No.2

#1です。 見直したら、ミスがありました。2つ目を入れ替えてください。 フォーカスがあたる度に"000000"を表示したいのであればText1_GotFocusイベントで"000000"をセット。 Private Sub Text1_GotFocus()  Text1.Text = "000000"  Text1.SelStart = 0  Text1.SelLength = Len(Text1.Text) End Sub です。(冷汗)

kistune
質問者

お礼

ありがとうございます。できました。 フォーカスが当たって"000000"を表示させたあと、入力するときにはこれを自動的に選択して消せるようにしたいので、 Private Sub Text1_GotFocus()With Text1 …… With Text1 .SelStart = 0 .SelLength = Len(.Text) End With を入れて使うことにしました。

回答No.1

"000000"と表示は最初だけなら、Form_Loadイベントで"000000"をセット。 Private Sub Form_Load()  Text1.Text = "000000" End Sub フォーカスがあたる度に"000000"を表示したいのであればText1_GotFocusイベントで"000000"をセット。 Private Sub ()  Text1.Text = "000000" End Sub 入力後に"000234"と表示するには、 LostFocusのイベントで再表示したらどうでしょうか。 Private Sub Text1_LostFocus()  Text1.Text = Format(Val(Text1.Text), "000000") End Sub ではでは

関連するQ&A

  • ACCESS2003のテキストボックスの最大桁数について

    Access2003のテキストボックスには、MaxLengthプロパティがありません。変わりに以下のような、コードで対応しようと試みたのですが、いまいち動きが悪いのです。以下のコードは、最大4桁までテキストボックスに入力可能とします。 Private Sub txtBox_KeyPress(KeyAscii As Integer)   If Len(txtBox.Text) > 3 Then     KeyAscii = 0   End If End Sub 最大入力桁数4桁を実現していますが、4桁入力後『Insert』キーを押下して、上書きモードでの修正ができません。 以下例1はOKですが、例2が実現できません。 例1:1回目新規入力『12』 ⇒ 2回目修正『123』⇒3回目修正『1234』 例2:1回目新規入力『1234』 ⇒ 2回目修正『9999』 VBのMaxLengthプロパティのようなことはできないのでしょうか?

  • レポートのテキストボックスでこんなのを表示したいんですが

    Access97にてレポートを作成しています。 レポート内のテキストボックスに単純に数値を表示したいのですが、 以下の要件を満たしたいんです。 ・1000以上の数値ならカンマで区切る ・小数点以下の数値がない場合は整数部分だけ表示 ・小数点以下の数値がある場合は小数点以下の数字を桁に応じて表示 例 「945」→「945」 「1283」→「1,283」 「10.42」→「10.42」 「8.2」→「8.2」 テキストボックスのプロパティ「書式」を「数値」、 かつ「小数点以下桁数」を「自動」にしても、なぜか全ての数値が 小数点以下2桁まで表示されてしまいます。 お知恵をおかしください。 よろしくお願いします。

  • テキストボックスのフォーカス移動

    こんにちは。 htmlページで<input type="text"/>に既定の桁数を入力したら次のinputにフォーカスを 移動させたいと考えています。 下の例の場合、1番目のテキストボックスに既定の桁数5ケタを入力したら、フォーカス を2番目のテキストボックスに移動させ、2番目のテキストボックスに4ケタ入力したら 3番目のテキストボックスにフォーカスを移動させるようにしたいと思っています。 スクリプトの再利用ができるよう、たとえば同じname属性を与えればその範囲内で 簡単にフォーカスを移動させられるようなものにしたいと思うのですが、うまくいきません。 何か良い書き方はありませんでしょうか? <div>  <input type="text" name="hoge" maxlength="5" onkeyup="test(this)"/>  <input type="text" name="hoge" maxlength="4" onkeyup="test(this)"/>  <input type="text" name="hoge" maxlength="5" onkeyup="test(this)"/>  <input type="text" name="hoge" maxlength="2" onkeyup="test(this)"/> </div>  ・  ・ <script type="text/javascript"> function test(elm) {  if (elm.value.length >= elm.maxLength) {   /*(気持ちとしては、ここにこのような感じのことを書きたいのですが・・・)     var arr_elm = document.getElementsByName(elm.name);     var n = elm.index + 1     arr_elm[n].focus();   */   } } </script>

  • 複数行のテキストボックスを受け取って、改行させたい。

    複数行のテキストボックスを受け取って、改行させたい。 お世話になります。ASP.NET VB2005を使っています。 Byrefでテキストボックスと、ByValで何桁目で改行させたいかを受け取って、 テキストボックスの内容を指定桁数で改行を入れたいのですが、 どのようにすればいいのでしょうか? 1行目が何桁あるかを判断する。 指定された桁数以上あったら改行させる。 という事を実現したいと考えています。 以上です、宜しくお願い致します。

  • VB2005 テキストボックスの最大入力値設定について

    いつもお世話になっております。 VB2005のテキストボックスで、全角半角入り混じっての 最大30バイトまで入力可能にしたいのですが、現在ある MaxLengthプロパティではうまく制御ができません。 テキストのロストフォーカスや、チェンジイベント時に チェックする以外に方法はないのでしょうか。 何かもっといい方法があれば教えて頂きたいのですが・・・。 どうか宜しくお願いいたします。

  • テキストボックスの設定。

    テキストボックスのプロパティ等で、定型入力の設定はできますか? 電話番号を入力すると、 01234567890 → 012-3456-7890 と表示したいです。 よろしくお願いします。

  • テキストボックスの少数点以下表示について

    お願いします。 アクセス2002を使っています。 フォームのテキストボックスの数値表示についてお尋ねします。 たとえば「1.75」という小数点以下2桁まで表示させたいのですが、コントロールで書式を「標準」に、小数点以下表示桁数を「2」と指定しても結果は「2.00」と表示されます。 入力した1.75をそのまま1.75で表示させるにはどうすればいいのでしょうか。 宜しくお願いします。

  • Access97のテキストボックスプロパティの入力規制について

    質問はAccessのテキストボックスに パスワードを入力する機能についてです。 パスワードは6桁の半角英数字のみ入力可能にしたいです。 現在、以下のことを試し、 半角英数字が6桁入力できるようになりました。 テキストボックスのプロパティで 定型入力部分に「password」と設定しテキストボックスに パスワードが「****」で表示できるようにしました。 そして6桁にしたいので、 入力規制の部分に「like "??????"」と設定しました。 問題は半角英数字は入力できるのですが、 スペースや記号も入力できてしまうことです。 スペースや記号は入力できないように設定することは可能でしょうか? また入力規制の部分で、半角英文字、半角数字を設定することは 可能でしょうか? 何か解決法がありましたら、教えてください。 よろしくお願いします。

  • テキストボックスに再表示させるには?

    こんばんは。 vb始めたばかりの初心者ですがお願いします。 環境はvb6.0を使用してます。 vb6.0で【1*2+9】という感じで数式を書く電卓を作っているのですが、 電卓はなんとかできたのですが、 プログラムを終了してマタ実行した時に前回入力した式をテキストボックスに表示させたいのですが、どの様なソースを書けばいいのか誰か教えて下さい。 お願いします。

  • テキストボックスでのデータ表示方法

    こんにちは いつもお世話になります。 VB.NET 2003 + Access2000 の環境です。 データセットを使ってデータを読み込んできた場合、データグリッドに表示させるときには、FORMATで指定できるのは知っていたのですが、テキストボックスに表示させるにはどうしたらよいのでしょうか? たとえば数値データを3桁区切りに表示させたいとか、¥マークを付けたいとか・・・。 入力のときにカンマを表示させる方法はこの過去ログにありましたが、すでに入力されている(カンマなしの)データを呼び込んできた場合の方法をご教示ください。 よろしくお願いいたします。

専門家に質問してみよう