• ベストアンサー

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) でもダメ どんな関数を入れればいいのでしょうか?

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.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ではそれを関数として評価しています。

poo777papa
質問者

お礼

ありがとうございます。 VBAの使い方が慣れていないので、既定の関数があればと考えましたが、教えていただいたようにユーザー定義関数を試してみました。 「コンパイルエラー SubまたはFunctionが定義されていません」と表示され、ApplicationEvaluate が白黒反転して表示されました。 B1は#VALUE!と表示され手しまいました。 どこかの設定がまだ足りないのかな?

poo777papa
質問者

補足

教えていただいたとおり入力してうまく行きました。ありがとうございました。 コンパイルエラーは単純な入力ミスでした。

その他の回答 (1)

  • spnlight
  • ベストアンサー率46% (15/32)
回答No.1

>どんな関数を入れればいいのでしょうか? 関数しかだめなんですか?

poo777papa
質問者

お礼

VBAになれていないので、既定の関数があればと考えましたが、マクロが必要のようなので、色々試して見ます。

関連するQ&A

専門家に質問してみよう