こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル VBA 計算方法

VBA初心者です。

ご指導お願いいたします。

A~C列にそれぞれお金の値段が入力されているので、D列に合計を出したいのですが、
特殊に入力されているので自分にはどうしていいものかわかりません。

例えば

A列には5.3万とか6.2万などと入力されています。

B列には4,000円とか3,000円などと入力されています。

C列には800円などと入力されているうえに - 入力されているので
 - は0円とみなして計算して合計をD列に入力したいです。

どうか教えてください。

投稿日時 - 2012-07-04 21:23:06

QNo.7572424

困ってます

質問者が選んだベストアンサー

ご質問の文面通りのルールなら、D列に、
=VALUE(SUBSTITUTE(A1,"万",""))*10000+VALUE(SUBSTITUTE(B1,"円",""))+IF(C1="-",0,VALUE(SUBSTITUTE(C1,"円","")))
といった関数でいけると思います。
VBAでやりたければ、VBAの関数と置き換えれば良いでしょう。
実は6万5千4百円というデータもありますなんて場合は話は別です。
ご参考まで。

投稿日時 - 2012-07-04 22:59:58

お礼

ありがとうございました。
理解できました。

投稿日時 - 2012-07-05 03:04:35

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

#1です。
それでもと思って試しにやってみました。
VBAのVal関数は、val("100円")が、100を返すという機能がありますが、
ご質問の文字通りの全角のval("5.6万円")は、0になってしまうので、
Val(StrConv(Range("A1").Value, vbNarrow)) * 10000
としないといけないとか、
桁区切りが入っていると、
val("1,000円")は1になってしまうので、置換で除去する必要があるとか、
そのままお任せという訳にはいかない様でした。
ご参考まで。

投稿日時 - 2012-07-04 23:54:48

あなたにオススメの質問