プロが教えるわが家の防犯対策術!

VBAのテキストボックスで表示や入力時に、カンマ区切りにするにはどうすればいいのでしょうか?

A 回答 (4件)

ははは、タッチの差で的確なお答えが返ってきましたね。




#3のmaruru01さんありがとうございます。
ようは、分かればいいんで…(^^;

>そもそもformat文が何なのか使い方が分かりませんので
FORMAT文とは、表示の際に書式を決めるものです。maruru01さんのソースの中にありますが、"#,##0"とかが書式になります。"\#,###"とすれば数字の先頭に"\"マークがついた形で表示されます。書式について詳しく知りたい場合はヘルプを見てください。エクセルのセルの書式設定とほぼ同じ物です。
    • good
    • 0
この回答へのお礼

>"#,##0"とかが書式になります。"\#,###"とすれば数字の先頭に"\"マークがついた形で表示されます。

いろいろできるみたいですね。参考にします。

ヘルプはダラダラと書いてあって、知りたいことが何処にあるか分かりにくいです。ヘルプのヘルプがいりますね。
長々と有難うございました。

お礼日時:2003/04/18 11:02

こんにちは。

maruru01です。

テキストボックスに入力しながら、順次カンマ入りで表示させる方法です。
テキストボックス名を「Text1」とします。


Private Sub Text1_Change()

  Text1.Text = Format(Text1.Text, "#,##0")
  Text1.SelStart = Len(Text1.Text) + 1

End Sub
    • good
    • 0
この回答へのお礼

素晴らしいっす、感動っす。
また、なにかあったらお願いします。
サンクスでした。

お礼日時:2003/04/18 10:56

そうですね。



表示の方は前回の回答でOKだと思います。

入力なんですが、単純にテキストボックスの書式設定を行えば、データ入力確定時にカンマ編集されて表示されるのですが。これじゃダメなんでしょ?

「123」と入力していて、次に「4」を入れた時に「1,234」と表示されたいんですよね。

だったとすれば、VBAのイベントでKeyPressを使って、押されたキーをチェックしつつ、FORMATコマンド編集した結果を表示しながら、入力を行うプログラム書くしかないですね。

この回答への補足

回答有難うございます。

>「123」と入力していて、次に「4」を入れた時に「1,234」と表示されたいんですよね。

その通りです。

>だったとすれば、VBAのイベントでKeyPressを使って、押されたキーをチェックしつつ、FORMATコマンド編集した結果を表示しながら、入力を行うプログラム書くしかないですね。

具体的にどうすればいいのでしょうか?そもそもformat文が何なのか使い方が分かりませんので、あわせて教えてください。

補足日時:2003/04/17 20:32
    • good
    • 0

お答えします。



一応Accessと思ってお答えしています。Accessでよろしいですね?
Formatを使ってカンマ区切りで表示することが出来ます。
FORMAT( 変数, "#,###.##")
上記の場合、変数の値がカンマ区切りで、少数点が第2位まで表示されます。少数点がいらないのであれば、FORMAT( 変数, "#,###")ですね。

カンマ編集しながらの入力の設定は出来ませんので、VBAとか使ってイベントで、上記編集作業を行いながら入力することになります。

グレービーシティ(旧文化オリエント)さんなんかが、そういうツールを販売されていますので、スマートにプログラム作成を行いたいときはご利用になる方が楽でしょう。

参考URL:http://www.grapecity.com/

この回答への補足

説明不足でした、エクセルのVBAでフォーム上のテキストボックス内(照合してセルの値を表示させる場合と、入力する場合の両方で)のカンマ区切りを自動で取りたいのですができるのでしょうか?

補足日時:2003/04/17 18:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A