• ベストアンサー

ユーザーフォームに書式設定は出来るのでしょうか

お世話になっています。 ユーザーフォームにテキストボックスを配置し品名・数量・単価・金額等を入力しています。 ●御指導いただきたき事   1・数量・単価を入力し終わった時、,(カンマ)を表示させたいのですが可能なのでしょうか     入力(123456789) → 表示(123,456,789)   2・可能ならば設定の方法を御指導ください。 宜しく御願いいたします。

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

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

こんにちは。 既に回答が出ているとは思いますが、少し割り込ませていただきます。 > 1・数量・単価を入力し終わった時、,(カンマ)を表示させたいのですが可能なのでしょうか > 入力(123456789) → 表示(123,456,789) これは、VB6のテキストに出てきます。 カンマを入れる場合は、Format 関数で、戻すときは、CLng や CDbl 関数を使います。しかし、Excelシートのセルに出す場合は、カンマ付きでも構いません。 コントロールの数がある場合は、例えば、こんな風にしてもよいです。 例: #1さんと被らないように、Enter キーで、変換させる方法を選んでみました。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then   TextBox1.Value = Num2Fig(TextBox1.Value) End If End Sub '------------------------------------ 'ユーザー定義関数 Function Num2Fig(ByVal arg As Variant) Dim ret As Variant If IsNumeric(arg) And InStr(arg, ",") = 0 Then   ret = Format$(arg, "#,##0") ElseIf IsNumeric(arg) And InStr(arg, ",") > 0 Then   ret = CDbl(arg) '戻す場合 Else   ret = arg End If   Num2Fig = ret End Function

oguno
質問者

お礼

Wendy02様 御多忙のところ、御回答賜りありがとうございました。 >これは、VB6のテキストに出てきます。   意味が解らなかったので、検索して見ました。   今後は質問する前に、内容が理解出来ないとは思いますがここを開いてみます。 ☆勝手なお願いですが、下記質問を御覧いただけないでしょうか。     質問投稿日時:08/12/10 22:14   質問番号:4545612

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

テキストボックスには、シートのセルの様な表示形式の設定がないです。 VBAで似たような操作をしています。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_030.html を参考にしてみてください。

oguno
質問者

お礼

hallo-2007様 参考になるアドレスご紹介いただきありがとうございました。 お気に入りに入れました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>入力(123456789) → 表示(123,456,789) よくわかりません。テキストボックスの表示をカンマ付きにしたいのですか? それなら例えばこんな感じでしょう Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)  If IsNumeric(TextBox1.Text) Then    TextBox1.Text = Format(Val(TextBox1.Value), "#,##0")  End If End Sub そうではなく、テキストボックスの内容をワークシートに転記したときに、ワークシート上の表示をカンマ付きにしたいのですか? Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)  If IsNumeric(TextBox1.Text) Then    Range("A1").Value = Val(TextBox1.Value)    Range("A1").NumberFormat = "#,##0"  End If End Sub テキストボックスの戻り値は「文字列」です。下手にカンマ付きにすると後が大変かもしれませんよ。ご注意ください

oguno
質問者

お礼

zap35様 「テキストボックスの表示をカンマ付きにしたい」方です。 質問内容をご推察いただき二通りも、御回答有難うございました。 感謝申し上げます。