【先着1,000名様!】1,000円分をプレゼント!

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

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVB2005のTextBoxでカンマ区切りの表示

よろしくお願いします。開発環境はVB2005です。
フォーム上に配置したTextBoxに金額を入れるのですが、わかりやすく読めるようにユーザーが数字を入力したら自動的に3桁のカンマ区切りで表示したいのですが、どのような方法があるのか教えてください。

Aベストアンサー

じゃんぬねっと です。

Dim i As Integer = "123456789"
Me.TextBox1.Text = i.ToString("#,##0")

でしょう。

QエクセルVBA テキストボックスに3桁ごとにコンマ

エクセルVBAの質問です。
TextBoxに金額を入力してもらうのですが、入力時3桁ごとにコンマが打たれるように表示できないでしょうか?

Aベストアンサー

こんにちは。

TextBoxのChangeイベントを使うのはどうでしょうか。

Private Sub TextBox1_Change()
TextBox1.Text = Format(TextBox1.Text, "#,##0")
End Sub

計算に使うときはデータ型変換関数を使うといいでしょう。金額と言うことなので小数はないとしてCLngを使うといいでしょう。

QVBA テキストボックスに3桁カンマ表示させたい

お世話になります。

お世話になります。

VBAでフォームを作成しました。

”金額”というテキストボックスの数字を下記の様に表示したかったので記述しましたところエラーメッセージが出てしまいます。

Me.金額.Format = "合計:###,###,###,###円"

※エラーメッセージ
「メソッドまたはデータメンバが見つかりません」というエラーが出ています。

どなたかご教授いただけませんでしょうか?
よろしくお願い致します。

環境 Windows XP SP3 Excel2003

Aベストアンサー

テキストボックスの内容をほかに使うのであればテキストボックスに数値だけを表示し、前後にラベルをつけたほうが良いような気がする。 (そのような形式にすると、文字列になって数値処理が面倒になるような気がする。)
表示目的だけなら、textboxのconfirmedのイベントなどで
Me.金額.text = "合計:" & format(Me.金額.text,"###,###,###,###") & "円"
とするとか。

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QVB.NETのテキストボックスの書式指定

VB.NETで開発練習中です。

フォームへ呼び出したデーターを、数値データであれば
カンマ区切りとか、小数点以下の桁数を指定するのは
どうしたらできるのでしょうか?
ソースのACCESSのテーブルには指定してあっても、
呼び出したデータには当然反映されませんよね。
初歩的ですがどなたか教えてください。
よろしくお願いします。

Aベストアンサー

No.3です。

私のレスは間違いでした。

FormのLoadイベントでテキストボックスに値を入れているのですね?

であれば、TextBoxのTextChangedイベントが発生します。このイベントで処理をします。

テキストボックスが多数あるのであれば、コントロール配列を使って処理をすればいいでしょう。

QVB.NETのコンボボックスについて

VB6からVB.NETでプログラミングを始めました。
コンボボックスのクリアの仕方や設定の仕方、また
取り出し方等を教えて下さい。

色々とヘルプも見てみたのですが、よく解りません。
宜しくお願い致します。

Aベストアンサー

クリアだけだと思ってました。
追記します。

Itemを操作します


'登録
For i = 1 To 10
  Me.ComboBox1.Items.Add(i.ToString)
Next

'取得
For i = 0 To Me.ComboBox1.Items.Count - 1
  MsgBox(Me.ComboBox1.Items(i).ToString)
Next

'完全クリア
Me.ComboBox1.Items.Clear()

部分クリア
Me.ComboBox1.Items.RemoveAt(Index値)

Qラジオボタンの初期指定

ラジオボタンを12個使用する画面を今作っているのですが、初期立ち上げ時に1番目のラジオボタンを選択した状態にするのはどうすれば良いのでしょうか?

プログラムの流れ上選んでいなくても、1番目を選んだ状態に次のウィンドウは開くのですが、聞く話で、それは不安定要素があるって聞いた物ですから。

Aベストアンサー

VB.NETだったら
デザイン時に
Checkedをtrue

QVB.NETでラベルの大きさってどうやって変えるの?

VB.NETでラベルの大きさってどうやって変えるの?
バージョンは2008

Aベストアンサー

あれ?
普通に
Widthプロパティ
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.width%28VS.100%29.aspx
やHeightプロパティを変更すればできるはずだけど、コード、IDE問わず。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.height%28VS.100%29.aspx

#まぁAutoSizeプロパティをfalseにしないと、Textプロパティに代入された文字列を格納するのに必要な最低限の大きさに自動で調整されちゃうみたいだけど。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.autosize.aspx

QVB.NETのDataGridで、選択行の特定の列の内容を取得したい

タイトルにあるとおり、DataGridを使用している場合、実行時に選択された行の特定の列の内容を取得するにはどのようにすればよいのでしょうか?

DataGridは複雑で、まだよくわかっていません。
よろしくお願いします。

Aベストアンサー

選択している行番号は、dataGrid1.CurrentRowIndexでわかります。
行、列を指定して各セルにアクセスするには、
dataGrid1(行番号,列番号)でいいので
dataGrid1(dataGrid1.CurrentRowIndex,列番号)
で選択されている行の特定の列の内容を取得できます。
註:番号は、0始まり


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

人気Q&Aランキング