- ベストアンサー
EXCEL 並んだシートの同一セルの合計、シートを特定のCELLで指定したい。
Sheet0のB1に =SUM(Sheet1:Sheet100!B1) を入れて、 この式でSheet1からSheet100までのB1を合計した結果を表示できるが、このSheet1の代わりにSheet10からやSheet30から計算させたりすることをSheet0のA1に入れた内容で切り替えたいのです。 =SUM(A1:Sheet100!B1) は当然ダメ =SUM(INDIRECT(A1):Sheet100!B1) でもダメ どんな関数を入れればいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ワークシート関数に適当なものがあるかどうか存じませんので、ユーザー定義関数はいかが?すこぶる簡単なものです。 Function myEvaluate(target As String) As Variant myEvaluate = Application.Evaluate(target) End Function 使い方 ...................A.....................................B ..1..................2..........=myEvaluate(A3) ..2 ..3....="SUM(Sheet"&A1&":Sheet100!B1)" A1に計算対象の最初のシートの数字を入れ、A3でそれをSUM関数を記述する文字列に変換し、B1ではそれを関数として評価しています。
その他の回答 (1)
- spnlight
- ベストアンサー率46% (15/32)
回答No.1
>どんな関数を入れればいいのでしょうか? 関数しかだめなんですか?
質問者
お礼
VBAになれていないので、既定の関数があればと考えましたが、マクロが必要のようなので、色々試して見ます。
お礼
ありがとうございます。 VBAの使い方が慣れていないので、既定の関数があればと考えましたが、教えていただいたようにユーザー定義関数を試してみました。 「コンパイルエラー SubまたはFunctionが定義されていません」と表示され、ApplicationEvaluate が白黒反転して表示されました。 B1は#VALUE!と表示され手しまいました。 どこかの設定がまだ足りないのかな?
補足
教えていただいたとおり入力してうまく行きました。ありがとうございました。 コンパイルエラーは単純な入力ミスでした。