- ベストアンサー
ユーザーフォーム上にある「テキストボックス」に小数が入力できない
以前にユーザーフォーム上のテキストボックスにセル値反映する方法を下記(サンプル1)のようにお教えいただいたのですが、下記のようにマクロを組むとテキストボックスに小数が入力できなくなってしまいます。 どのようにしたら、テキストボックスに小数が入力できるようになるのでしょうか? お教えください。 事例)「1.234」とテキストボックスに打ち込むと「1」 「0.856」とテキストボックスに打ち込むと「0」と なってしまいます。 (サンプル1) 'A1のデータを反映するとした場合 'OptionButton1のコード Private Sub OptionButton1_Click() TextBox1 = Sheets("Sheet1").Range("a1") End Sub 'B1に反映するとして 'OptionButton2のコード Private Sub OptionButton2_Click() TextBox1 = "" End Sub 'TextBox1のコード Private Sub TextBox1_Change() If OptionButton2 = True Then Sheets("Sheet1").Range("B1") = TextBox1.Value End If End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 プロパティを省略ですか? TextBox1.Value とか、TextBox1.Text とか、右辺であろうが、左辺であろうが省略しないほうがよいし、Range のプロパティも、.Value にしたほうがよいです。これは基礎だと思います。むしろ、マクロでは、そのプロパティの使い分けをするためですが。 >どのようにしたら、テキストボックスに小数が入力できるようになるのでしょうか? ところで、その問題は、セルの書式が、「0」とか、小数点を出さないようになっているのではないでしょうか。 Sheets("Sheet1").Range("B1").NumberFormat = "General" 'これを入れれば変わるはずです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
テキストボックスには、数字英字記号など入力できます。従って小数点も入力できます。結果はとりあえず文字列(注意)です。小数点つき数として扱いたいのなら、その文字列を数値、それもIntegerではなく、実数に変換せねばならない。これをやってますか。 テキストボックスとコマンドボタンをフォームに設け Private Sub CommandButton1_Click() Cells(1, "A") = Val(TextBox1.Text) End Sub それにエクセルのシートのセルの場合、表示形式の小数点以下桁数指定などもあります。 少数例でテスト済み。
お礼
ありがとうございます。 原因はテキストボックスのFormatを指定いたことだったみたいでした。 でも、mogasiさんのご返答大変参考になりました。
- kmetu
- ベストアンサー率41% (562/1346)
マクロの回答をした者ですが こちらで実行させたら小数点以下が表示されますので マクロを組むと小数点以下が表示されないと言うことは無いと思います。 テキストボックスのプロパティでなにか設定したのではないでしょうか 一度テキストボックスを作り直してみてはいかがでしょう。
お礼
ありがとうございます。 テキストボックスにFORMATを指定いたのが原因だったみたいでした。 このFORMAT指定をはずしたら上手くいきました。 何度も、ご教授ありがとうございます。
お礼
ありがとうございます。 原因はテキストボックスのFormatを指定いたことだったみたいでした。 でも、Wendy02さんのご返答大変参考になりました。