• ベストアンサー

VBAで入力した数字の書式が上手くいきません

VBAの学習を始めました。使用EXCELのVersionは2000です。 フォーム上のTextBoxへ数字を入力し、それをSheetのセルに代入したのですが、セルの左側に寄ってしまい、3桁のカンマ表示も出来ません。 勿論、表のセルには「数字・カンマ表示」の書式設定は行ってありますので、キーボードから直接入力した場合には正しく表示されます。 (以前同じようなsheetを作った時には上手くいったので理由が解りません) どこが間違っているのでしょうか?アドバイスの程、宜しくお願い申し上げます。 

  • ippu
  • お礼率91% (251/273)

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

  • ベストアンサー
  • Nanimono
  • ベストアンサー率50% (1/2)
回答No.3

テキストボックスに値を入力した場合は、数字を入力しても文字列として扱われます。 おそらく以前うまくいった時は、Sheetに代入する前にテキストボックスの値に適した型になるように変換してから代入したのでは? ・今回  Cells(1, 1).Value = TextBox1 ・前回  Cells(1, 1).Value = Val(TextBox1)

ippu
質問者

お礼

解決しました。心より感謝しています。本当に有難うございました。

その他の回答 (2)

  • oneworld
  • ベストアンサー率29% (17/58)
回答No.2

セルへ直接 textbox の値を代入すると、その値は数値ではなくテキスト扱いにされます。 数値宣言をした変数へtextboxの値を代入してから、セルへ変数を代入すれば数値書式設定通りに表示されます。

ippu
質問者

お礼

アドバイス有難うございました。未だ解決できませんが頑張ります。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>TextBoxへ数字を入力し、それを・・・ Textboxのイベントは何で数字を拾いましたか? セルへの入力途中にあると言うことではないでしょうか。

ippu
質問者

お礼

アドバイス有難うございました。未だ解決できませんが頑張ります。

関連するQ&A

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

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

  • ユーザーフォームからセルに入力すると書式が限定される?

    ユーザーフォームを作成して、その中にあるテキストボックスに入力した文字列(具体的には100-200というように数字‐数字というタイプ)をエクセルのワークシートに入力すると月日表示になってしまいます。別に代入先のセルの書式を固定しているわけではないのですが・・。何でなのか心当たりのある方いらっしゃませんか?(^^;)

  • Excel VBA(Win2000、Office2000)

    現在、VBAでExcelのシートに書き込むフォームを作っており、日付に関することで困っています。 フォーム上には複数のComboBox、TextBoxが並んでおり、OKボタンをクリックすることで、フォーム上に並んだ、ComboBox、TextBoxの値をセルに書き込むようにしています。 問題の日付に関する質問についてですが・・・ ユーザーフォーム上に 年を入力するComboBox1 → 2004 月を入力するComboBox2 → 5 日を入力するComboBox3 → 7 *いづれも、プルダウンから数字を選択して入力するようにしています。 この3つの入力値を合わせて、2004/05/07と認識させて、TextBox1に"金"と表示させたいのですが、どのようにしたら良いでしょうか? TextBox1表示されるタイミングは、日を入力するComboBox3が入力された時としたいです。 宜しくお願い致します。

  • 置換のことで

    エクセルの置換のVBAのことですが。 あるシートに沢山の文字列が入力されています。 abcという文字列が含まれるセルの最後の部分は、必ず以下のようになります。 カンマ 半角スペース 数字 カンマ 半角スペース 数字  閉じカッコ  ,             13    ,            56       ) 数字はばらばらで、1桁か2桁のどちらかで0はないです。 このような状況で、閉じカッコの左側の数字を全て 1 に置換するVBAが知りたいのですが。

  • VBA テキストボックスで計算

    VBAの勉強を始めたばかりで、見よう見まねで色々作っています。 ユーザーフォームのテキストボックスに、計算結果を表示したいのですが、行き詰まってしまいました。 textbox1 textbox2  .  .  textbox5 があり、textbox6に、1~5に入力された数字を足して、消費税額が出るようにしたいです。 例えば textbox1・・・100,000 textbox2・・・200,000 と入っていたら textbox6に 【消費税額 15,000円】 と表示させたいです。 textbox1~5は、1から順番に数字を入れていきますが、全てに入るとは限りません。 不足情報等がありましたら、ご指摘下さい。 ご教授の程、よろしくお願いします。

  • エクセルVBA テキストボックスに3桁ごとにコンマ

    エクセルVBAの質問です。 TextBoxに金額を入力してもらうのですが、入力時3桁ごとにコンマが打たれるように表示できないでしょうか?

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

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

  • 条件付き書式でできますか?

    エクセル2007ユーザーです。セルにコピーした半角数字を貼り付けるのですが、その数字が10桁と9桁の場合があります。9桁の数字のみ、条件付き書式でセルの色と文字をマーキングすることは可能でしょうか。 入力規則ですと、貼り付けた場合、規則は無効となってしまいます。 マクロやVBAを使わないでできれば、関数で行うことは可能でしょうか。 ご教示よろしくお願いします。

  • Excel2007で数字を入力したセルが・・・E+13となってしまう。

    こんにちは。 仕事で、CSVファイルをExcel2007を開いています。 Excel上で、約3000行のセルに14桁の数字を入力しています。 その後保存して、再度開くと、入力したセルが 「・・・・・E+13」 と表示されてしまいます。 セルの書式設定で、表示形式を数値にすると、14桁の数字に 戻るのですが、再度保存して開くと、 また「・・・・・E+13」となってしまいます。 14桁の数字の表示まま保存するにはどうしたらよいでしょうか? よろしくお願い致します。

  • TextBoxに半角数字のみの入力しかできないようにしたい

    タイトルどおりです。 フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。 000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。 GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。 数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・? (“Number”で左側から入力できるならそれがいいのですが) そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。 もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。