アプリ版:「スタンプのみでお礼する」機能のリリースについて

TextBox10・16・22・・・・64と10のテキストボックスがあり、
その数字すべてを足して、TextBox69に表示したいのですが、うまくいきません。

TextBox10・16・22・・・・64には下記の3桁ずつカンマを打ち、小数点も表示するマクロを使ってます。
Private Sub TextBox10_Change()
TextBox10.Value = Format(TextBox10.Value, "#,###" & _
IIf(InStr(TextBox10.Text, ".") = 0, "", ".##"))
End Sub

TextBox69には下記のように記入しています。
TextBox69.Value = Val(TextBox10.Value) + Val(TextBox16.Value) +・・・・・ Val(TextBox64.Value)

TextBox10に例えば 5,000 と入力したときに、TextBox69には 5 と表示されてしまいます。

マクロ素人で、検索コピペしたので、あまり理解してない部分が多いですが
修正方法教えていただければありがたいです。
宜しくお願いします。

A 回答 (2件)

こんにちは



>TextBox10に例えば 5,000 と入力したときに、TextBox69には
> 5 と表示されてしまいます。
単純に、Val("5,000") が、5 になるからでは?
VAL関数は、文字列の左から見て行って、数値の一部として認識できない文字が出てきたところで処理を中止します。
https://docs.microsoft.com/ja-jp/office/vba/lang …

カンマを取り除いてから、CDblやVALなどで数値に変換すればよいのではないでしょうか?
    • good
    • 0
この回答へのお礼

Replace関数でカンマを取り除いたらうまくいきました。ありがとうございました。

お礼日時:2020/12/15 07:56

Val でなく、cdbl を使ってください。

カンマがあっても、正しく変換できます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!