- ベストアンサー
エクセルVBA ユーザーフォームのtextboxの書式設定って?
エクセルでユーザーフォームを作成しています。 金額を入力するTextBoxを作ったのですが、 その表示方法を「,」(カンマ)で桁区切り で表示さいたいのですが、方法ってありますか? TextBoxプロパティーを色々見ているのですが、 セルの書式設定みたいなものは無さそうなのですが、 方法があれば、教えていただきたく思います。 宜しくお願いいたします。
- みんなの回答 (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
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >If KeyCode = 13 Then の「13」とは何を意味しているのでしょうか。 keycodeの事もあまり理解できていないので これは、わたし流なのかもしれませんが、TextBox_Change だと、いちいち、入力の最中にプログラムが働いて、結構、ウットウしいので、Enter(= 13 = CR ) の時だけ、プログラムが働くようにしています。
お礼
なるほど 「enter処理の時に」と言うことなのですね。 とても勉強になりました。 ありがとうございますー
お礼
早速のご返答ありがとうございます。 やはり、書式設定みたいなのは無いのですね。 コード方を作成していただき、誠にありがとう ございます。 カンマを表示させるのに、こんなにコードが 必要なのですね。 おかげさまで、このコードを参考に、カンマ 導入をしていけそうです。 で、少し、このコードについて質問なのですが >If KeyCode = 13 Then の「13」とは何を意味しているのでしょうか。 keycodeの事もあまり理解できていないので もし、お手数でなければお願いいたします。