• 締切済み

EXCEL VBA の計算で

USERFORMに付けたTEXTBOXの値をFormat関数でカンマを 付け、別のTEXTBOXの値と計算させるとうまく計算して くれません。どのようにすれば出来るのでしょうか。 カンマを付けずに表示させ計算させると問題ありません。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 割り込みというか、回答が重複しますが、それは、CLng か、CDbl で変換してください。ただし、小数点を含むと、Clng は、丸められてしまいますし、小数点付の数値は、気をつけないと、今度は演算(四則全部)の過程で、丸め誤差が発生してしまいますから、変数をCurrency にしないといけないことがあります。残念ですが、Val 関数は、 「,(カンマ)」の前までしか、数値化できません。 これは、コードの練習問題に出てきますね(^^;

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

エクセルVBAのテキストボックスでは、プロパティでFormat設定はできないのではないですか。(アクセスにはあるが) 自分のプログラムでTextBox1.TextをFormat関数で、カンマつきに直し、TextBox1.Textに設定しているのでは。 それならFormat関数を使う直前にx=Val(TextBox1.Text)で数値化すればよいのでは。入力は数字のみ入力でしょうから。 私の勘違いならすみません。

回答No.2

こんばんは。 既に回答は出てますが、 今回のような場合、データ型変換関数はコンマを無視してくれます。 '--------------------------------------------- Dim S S = CDbl(TextBox1.Value) + CDbl(TextBox2.Value) TextBox3.Value = Format(S, "#,##0") '----------------------------------------------- 以上です。

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 例えば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はうまくいかなかったですか... コメントなかったのでダメだったのだろうなぁとは思いましたが。 結果を教えてもらえると嬉しいです^ ^

関連するQ&A