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

エクセルでユーザーフォームを作成しています。
金額を入力するTextBoxを作ったのですが、
その表示方法を「,」(カンマ)で桁区切り
で表示さいたいのですが、方法ってありますか?
TextBoxプロパティーを色々見ているのですが、
セルの書式設定みたいなものは無さそうなのですが、
方法があれば、教えていただきたく思います。
宜しくお願いいたします。

A 回答 (2件)

こんにちは、



TextBox には書式はありませんから、以下のようにFormat 関数を使います。
テキストボックスの文字は右揃えは、そのプロパティの TextAlign =3 '-fmTextAlignRigh に設定します。


Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim str1 As String
If KeyCode = 13 Then
 str1 = TextBox1.Text
 If IsNumeric(str1) Then
  TextBox1.Text = Format$(CLng(str1), "#,##0")
 End If
End If
End Sub

また、その数字を使って計算する場合は、Clng /CDbl で数値に変換します。

Private Sub CommandButton1_Click()
'計算する場合
Dim str1 As Variant
 str1 = TextBox1.Text
 If IsNumeric(str1) Then
 str1 = CLng(str1) * 10  '計算する場合は、Clng で変換
 TextBox2.Text = Format$(CLng(str1), "#,##0")
 End If
End Sub
    • good
    • 0
この回答へのお礼

早速のご返答ありがとうございます。
やはり、書式設定みたいなのは無いのですね。
コード方を作成していただき、誠にありがとう
ございます。
カンマを表示させるのに、こんなにコードが
必要なのですね。
おかげさまで、このコードを参考に、カンマ
導入をしていけそうです。
で、少し、このコードについて質問なのですが
>If KeyCode = 13 Then
の「13」とは何を意味しているのでしょうか。
keycodeの事もあまり理解できていないので
もし、お手数でなければお願いいたします。

お礼日時:2007/06/23 14:10

こんにちは。



>If KeyCode = 13 Then
の「13」とは何を意味しているのでしょうか。
keycodeの事もあまり理解できていないので

これは、わたし流なのかもしれませんが、TextBox_Change だと、いちいち、入力の最中にプログラムが働いて、結構、ウットウしいので、Enter(= 13 = CR ) の時だけ、プログラムが働くようにしています。
    • good
    • 0
この回答へのお礼

なるほど
「enter処理の時に」と言うことなのですね。
とても勉強になりました。
ありがとうございますー

お礼日時:2007/06/23 14:24

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

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


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