- ベストアンサー
カンマ区切り
VBAのテキストボックスで表示や入力時に、カンマ区切りにするにはどうすればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ははは、タッチの差で的確なお答えが返ってきましたね。 #3のmaruru01さんありがとうございます。 ようは、分かればいいんで…(^^; >そもそもformat文が何なのか使い方が分かりませんので FORMAT文とは、表示の際に書式を決めるものです。maruru01さんのソースの中にありますが、"#,##0"とかが書式になります。"\#,###"とすれば数字の先頭に"\"マークがついた形で表示されます。書式について詳しく知りたい場合はヘルプを見てください。エクセルのセルの書式設定とほぼ同じ物です。
その他の回答 (3)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 テキストボックスに入力しながら、順次カンマ入りで表示させる方法です。 テキストボックス名を「Text1」とします。 Private Sub Text1_Change() Text1.Text = Format(Text1.Text, "#,##0") Text1.SelStart = Len(Text1.Text) + 1 End Sub
お礼
素晴らしいっす、感動っす。 また、なにかあったらお願いします。 サンクスでした。
- PAPA0427
- ベストアンサー率22% (559/2488)
そうですね。 表示の方は前回の回答でOKだと思います。 入力なんですが、単純にテキストボックスの書式設定を行えば、データ入力確定時にカンマ編集されて表示されるのですが。これじゃダメなんでしょ? 「123」と入力していて、次に「4」を入れた時に「1,234」と表示されたいんですよね。 だったとすれば、VBAのイベントでKeyPressを使って、押されたキーをチェックしつつ、FORMATコマンド編集した結果を表示しながら、入力を行うプログラム書くしかないですね。
補足
回答有難うございます。 >「123」と入力していて、次に「4」を入れた時に「1,234」と表示されたいんですよね。 その通りです。 >だったとすれば、VBAのイベントでKeyPressを使って、押されたキーをチェックしつつ、FORMATコマンド編集した結果を表示しながら、入力を行うプログラム書くしかないですね。 具体的にどうすればいいのでしょうか?そもそもformat文が何なのか使い方が分かりませんので、あわせて教えてください。
- PAPA0427
- ベストアンサー率22% (559/2488)
お答えします。 一応Accessと思ってお答えしています。Accessでよろしいですね? Formatを使ってカンマ区切りで表示することが出来ます。 FORMAT( 変数, "#,###.##") 上記の場合、変数の値がカンマ区切りで、少数点が第2位まで表示されます。少数点がいらないのであれば、FORMAT( 変数, "#,###")ですね。 カンマ編集しながらの入力の設定は出来ませんので、VBAとか使ってイベントで、上記編集作業を行いながら入力することになります。 グレービーシティ(旧文化オリエント)さんなんかが、そういうツールを販売されていますので、スマートにプログラム作成を行いたいときはご利用になる方が楽でしょう。
- 参考URL:
- http://www.grapecity.com/
補足
説明不足でした、エクセルのVBAでフォーム上のテキストボックス内(照合してセルの値を表示させる場合と、入力する場合の両方で)のカンマ区切りを自動で取りたいのですができるのでしょうか?
お礼
>"#,##0"とかが書式になります。"\#,###"とすれば数字の先頭に"\"マークがついた形で表示されます。 いろいろできるみたいですね。参考にします。 ヘルプはダラダラと書いてあって、知りたいことが何処にあるか分かりにくいです。ヘルプのヘルプがいりますね。 長々と有難うございました。