- ベストアンサー
エクセルVBA「スピンボタンで小数を扱う」
エクセルVBA「スピンボタンで小数を扱う」 エクセルVBAの初心者です。 スピンボタンとテキストボックスを組み合わせて使う際、「0.1、0.2・・・1.0、1.1・・・」というような数の増加を表示したいのですが、どのようなコーディングが必要でしょうか。 試行錯誤しておりましたがどうしても出来ませんのでご質問させて頂きます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
スピンポタンのSmallChangeプロパティは、Long型ですから、そのままでは扱えません。 ですから、表示を10分の1にするしかありません。なお、前回の質問も、以下でみれば分かるはずです。 '//フォームモジュール Private Sub SpinButton1_Change() With TextBox1 TextBox1.Text = Format$(SpinButton1.Value / 10, "0.0") End With End Sub Private Sub UserForm_Initialize() With SpinButton1 .Min = 0 '最小値 .Max = 100 '最大値 .SmallChange = 1 '1の場合は本来不要 .Value = 0 '初期値 'プロパティで設定すれば、上記の4つの項目の設定は不要 TextBox1.Text = Format$(.Value, "0.0") '初期値が0以外は、本来不要 End With End Sub
その他の回答 (2)
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
前述の質問の続きと見なして。 UserForm1のコード ---------------------- ここから Option Explicit Private Sub UserForm_Initialize() With Me.SpinButton1 .Min = 1 .Value = .Min End With Me.TextBox1.Value = Format(Me.SpinButton1.Value / 10, "0.0") End Sub Private Sub SpinButton1_Change() Me.TextBox1.Value = Format(Me.SpinButton1.Value / 10, "0.0") End Sub ThisWorkbook のコード ---------------------- ここから Option Explicit Private Sub Workbook_Open() UserForm1.Show End Sub
お礼
ご回答頂きありがとうございます。 Wendy02様、tinu2000様共に前回の質問もごらん頂きありがとうございました。 お二方のご回答はおおよそ同じ内容と判断致しましたので、先に回答して頂きましたWendy02様のご回答をベストアンサーに致しました。
- TNK7800
- ベストアンサー率19% (13/66)
Me.TextBox1.Value = Me.SpinButton1.Value * 0.1 だと微妙な感じですね 整数の場合 1.0とかが1になっちゃうし・・ これしか思い浮かびません
お礼
ご回答頂きありがとうございます。 確かに、これだと1.0は1になってしまいますね。
お礼
ご回答頂きありがとうございます。 Wendy02様、tinu2000様共に前回の質問もごらん頂きありがとうございました。 お二方のご回答はおおよそ同じ内容と判断致しましたので、先に回答して頂きましたWendy02様のご回答をベストアンサーに致しました。