- 締切済み
EXCEL VBA の計算で
USERFORMに付けたTEXTBOXの値をFormat関数でカンマを 付け、別のTEXTBOXの値と計算させるとうまく計算して くれません。どのようにすれば出来るのでしょうか。 カンマを付けずに表示させ計算させると問題ありません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 割り込みというか、回答が重複しますが、それは、CLng か、CDbl で変換してください。ただし、小数点を含むと、Clng は、丸められてしまいますし、小数点付の数値は、気をつけないと、今度は演算(四則全部)の過程で、丸め誤差が発生してしまいますから、変数をCurrency にしないといけないことがあります。残念ですが、Val 関数は、 「,(カンマ)」の前までしか、数値化できません。 これは、コードの練習問題に出てきますね(^^;
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルVBAのテキストボックスでは、プロパティでFormat設定はできないのではないですか。(アクセスにはあるが) 自分のプログラムでTextBox1.TextをFormat関数で、カンマつきに直し、TextBox1.Textに設定しているのでは。 それならFormat関数を使う直前にx=Val(TextBox1.Text)で数値化すればよいのでは。入力は数字のみ入力でしょうから。 私の勘違いならすみません。
- kobouzu_su
- ベストアンサー率45% (24/53)
こんばんは。 既に回答は出てますが、 今回のような場合、データ型変換関数はコンマを無視してくれます。 '--------------------------------------------- Dim S S = CDbl(TextBox1.Value) + CDbl(TextBox2.Value) TextBox3.Value = Format(S, "#,##0") '----------------------------------------------- 以上です。
- pauNed
- ベストアンサー率74% (129/173)
こんにちは。 例えばTextBox1とTextBox2の値を加算するとして、 Replace関数を使ってみてはいかがでしょう。 Private Sub CommandButton1_Click() Dim s1 As String Dim s2 As String s1 = Replace(Me.TextBox1.Text, ",", "") s2 = Replace(Me.TextBox2.Text, ",", "") If IsNumeric(s1) And IsNumeric(s2) Then MsgBox CDbl(s1) + CDbl(s2) End If End Sub 別件ですが、QNo.3106577のListBoxはうまくいかなかったですか... コメントなかったのでダメだったのだろうなぁとは思いましたが。 結果を教えてもらえると嬉しいです^ ^