- 締切済み
セルの文字式の計算をVBAで行いたい
A1のセルに "100+5n" という文字式が入っている状態で VBAにてこのセルの文字式計算を行いB1のセルから順に結果を出力したいと思っています。 "n"は1から順に指定された数まで1づつ増えていくようにし B1のセル:105、C1のセル:110、D1のセル:115 ・・・・ と結果がなるようにしたいのですが、VBAでどのように記述すればいいのか悩んでいます。 VBAを使わずにExcelの関数で計算できるのならそれでもよいと思っています。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
次の式をB1セルに入力し、右横方向にオートフィルドラッグしてもよいですね。 =LEFT($A1,FIND("+",$A1)-1)+MID(SUBSTITUTE($A1,"n",""),FIND("+",$A1)+1,10)*COLUMN(A1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
A2セルには次の式を入力して右横方向にオートフィルドラッグします。 =IF(COUNTIF($A1,"*+*"),LEFT($A1,FIND("+",$A1)-1)+MID(SUBSTITUTE($A1,"n",""),FIND("+",$A1)+1,10)*COLUMN(A1)) この式では100の数値や5の数値が別の数値に変わってもそれが反映されます。
- notnot
- ベストアンサー率47% (4900/10358)
どんな文字式があり得るのか?たとえば、"sin(n)" など三角関数が出てくることはたぶんないと思いますが、「任意の式があり得る」だとその解析が非常にめんどくさいです。 「"100+5n" のパターンだけで、100と5の数字だけが変わり得る」だとまだましですが。それだと"+"と"n"の位置を調べて、left()とmid()で、"100"と"5"相当を切り出せばいい。 もし「任意の式」ということだと、実現したいことの他の実現手段を考えた方がいいと思いますよ。