タイトル | : Re: テキストボックスの3桁毎のカンマ表示 |
記事No | : 12674 |
投稿日 | : 2008/07/02(Wed) 16:18 |
投稿者 | : Do_Shirouto |
> > VB6,SP5、WindowsXPの環境です。 > それ以外に必要でしたら追記しますのでレスください。 > > テキストボックスに金額を入れると(例えば「3000000」)をいれると > 3,000,000にしたくて、 > > Private Sub Text1_Change() > Form1.Text1.Text = Format(Form1.Text1.Text, "#,##0") > End Sub > (Form1.Text1のAlgnmentは右揃え、MaxLengthは0です。) > > と、した分けですが、どう言うことか、「3000」を打った時点で > 「|3,000」となり、次の桁を打っても入力されないのです。 > (↑で、3の前にある「|」はカーソルの位置です。) > プロパティーで何か設定するヶ所があったり、 > プログラムそのものが悪いのでしょうか? > > 具体的に操作を下に示します。 > ("「」"をテキストボックスに見立ててください > "|"はカーソルに見立ててください) > > @初期値 > 「 |」 > A"3"を入力 > 「 3|」 > B十の位の"0"を入力 > 「 30|」 > C百の位の"0"を入力 > 「 300|」 > D千の位の"0"を入力 > 「 |3,000」 > E万の位の"0"を入力 > 「 |3,000」←以降"0"を入力しても同じ > > 但し、万の位以降"0"以外の数字ならばOKとなります。 > どうも、千の位を入力後にカーソルが一番先頭に来るのが > 問題みたいです。 > 連続して「3000000」)をいれると3,000,000となる様な対策はあるのでしょか?
私は下記のようにしていますが、 何の不都合もありませんが、 初心者なので間違っているかもしれません。 Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Text1.Text = Format(Format(Text1.Text), "###,###,##0") Text1.SelStart = Len(Text1.Text) End Sub
|