• ベストアンサー

エクセルVBA ユーザーフォームのtextboxの書式設定って?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは、 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

tmgolf
質問者

お礼

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

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >If KeyCode = 13 Then の「13」とは何を意味しているのでしょうか。 keycodeの事もあまり理解できていないので これは、わたし流なのかもしれませんが、TextBox_Change だと、いちいち、入力の最中にプログラムが働いて、結構、ウットウしいので、Enter(= 13 = CR ) の時だけ、プログラムが働くようにしています。

tmgolf
質問者

お礼

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

関連するQ&A