• ベストアンサー

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

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

  • oguno
  • お礼率61% (179/289)

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

  • ベストアンサー
  • 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様 「テキストボックスの表示をカンマ付きにしたい」方です。 質問内容をご推察いただき二通りも、御回答有難うございました。 感謝申し上げます。

関連するQ&A

  • ユーザーフォームのテキストボックスの書式設定について

    ユーザーフォームのテキストボックスの書式設定について TextBox1に金額、TextBox2に日付を入力し、Sheet1に転記するような フォームを作っています。 TextBox1には、 Private Sub TextBox1_Change() y = TextBox1.Text TextBox1.Text = Format$(CLng(y), "#,##0") End Sub としています。 TextBox2には、書式をH○○.○.○という設定にしたいのですが、 どのようにしたらよいでしょうか。

  • ユーザーフォーム中の入力順番指定について

    お世話になります。VBA初心者です。自作のユーザーフォームに配置したテキストボックスやボタンの間をTABキーでカーソル移動する時の順番を指定したい(例えばテキストボックス1→OKボタン→テキストボックス2)のですが可能でしょうか。設定可能ならば、どのようにしたらよいのでしょうか、どなたかご指導お願いします。

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

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

  • ユーザーフォームで数字にカンマを付けたい

    今EXCEL2003を使用しています。 ユーザーフォームのテキストボックスに数値を入力した際 例えば1000→1,000のように自動で千単位でカンマを表示させる事は可能でしょうか?

  • ユーザーフォームについて

    エクセル2002です。 ユーザーフォーム内のテキストボックスを使用して、 (1)A1のセルに1と入力されている状態でマクロを起動した場合、 (2)ユーザーフォーム内のテキストボックスには2と表示される (3)ユーザーフォーム内のボタンを押すと、A2のセルに2と入力される。 このような流れで、A列のデータ最終行に番号をふっていきたいです。 (A列のデータ最終行がA30なら、A31に31と番号をふる) ユーザーフォームのテキストボックスとボタンは作ってあるのですが、 それぞれに入れるコードを教えていただけないでしょうか。 よろしくお願いします。

  • エクセルのユーザーフォームの日付を和暦で表示したい

    いつもお世話になります。 エクセルのユーザーフォーム作成に初めて挑戦しております。 ワークシートに日付の元データがあり、ユーザフォームにテキストボックスを配置しその日付データを表示させています。(例:2006/8/3) やりたいことは、そのユーザーフォームにもうひとつ別のテキストボックスを作成し上記の日付データを和暦で自動的に表示させたいのです。(例:上記のテキストボックスが2006/8/3の場合、こちらのテキストボックスはH18.8.3と表示) 初心者ですが、よろしくお願いします。

  • エクセルのユーザーフォームについて

    パスワード入力用のしかけです。 ワークシートに配置したコマンドボタンを押してユーザーフォームを呼び出します。 Private Sub CommandButton1_Click() UserForm1.Show End Sub ユーザーフォームにはテキストボックスとコマンドボタンを配置しております。 テキストボックスのPasswordCharには * を設定しました。 Private Sub CommandButton1_Click() If StrConv(TextBox1.Text, vbLowerCase) = "abcd" Then MsgBox "OK!" Unload Me Else TextBox1.Text = "" TextBox1.SetFocus End If End Sub これで、ABCDまたはabcdと入力され、ユーザーフォーム上のコマンドボタンをクリックすれば、ユーザーフォームは消えます。 でも、いちいちマウスでクリックするのが面倒なのでEnterキー1回でユーザーフォームを消したいのです。 今でも、一度Enterキーを押すと、ボタンにフォーカスが移動するので、さらにEnterで消えますが、二度ではなくEnterキー1回でユーザーフォームを消すにはどうすればよいのでしょうか? ユーザーフォームは使ったことがないのでわかりません。 よろしくお願いします。

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

  • エクセルのユーザーフォームのテキストボックスに日付が入力できない

    いつもお世話になります。初心者ですのでよろしくお願いします。 初めてエクセルのユーザーフォーム作成に挑戦しています。 フォームに日付を入力するためのテキストボックスを配置したのですが、yyyy/m/dで入力しようとして2006/8まで入力すると勝手に2006/8/1/と入力されてしまいます。2006/8/25と入力できるようにするにはどうしたらよろしいでしょうか? よろしくお願いします。

  • ユーザーフォーム内のテキストボックス内の書式設定

    A1セルに12.345と入力してあり、書式は「数値」で小数点以下の桁数2にしてあり、 「12.35」と表示されます。 VBAを起動して、ユーザーフォームを挿入し、 テキストボックスを作成し、 TextBox1の「ControlSource」にA1と入力すると TextBox1には「12.345」と表示されます。 エクセルのA1と同じ様に TextBox1も「12.35」と表示したいのですがどうすればいいのでしょうか? エクセル2003です。 よろしくお願い致します。

専門家に質問してみよう