tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: テキストボックスの3桁毎のカンマ表示
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。