- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでシート毎に演算した項目を足しこむには?)
VBAでシート毎の演算結果を足し合わせる方法
このQ&Aのポイント
- VBAを使用して、複数のシートごとに演算された項目の値を足し合わせる方法を教えてください。
- 例えば、10枚のシートにそれぞれ算数の得点、国語の得点、理科の得点、社会の得点の項目があり、それらの値を11枚目のシートに足し合わせたいと考えています。
- 現在、For Each文を使用してシートごとに値を取得しているのですが、算数の得点の値は正しく取得できても、SUM関数で計算された値は取得できていません。どのような記述をすれば良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
では、マクロの一例です。 Sub test01() Dim i As Long, n As Long '変数宣言 For i = 1 To 10 '1~10まで For n = 2 To 6 '2~6まで With Sheets("Sheet11") 'Sheet11に加算 .Cells(n, "B").Value = .Cells(n, "B").Value + Sheets("Sheet" & i).Cells(n, "B").Value End With Next n '繰り返し Next i '繰り返し End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
回答No.3
> jnum = jnum + sht.Cells("B2").Value'これはエラーにならない Rangeオブジェクトの引数と、Cellsプロパティの引数とは違います。 どうしてエラーにならないのでしょうね。 jnum = jnum + sht.Range("B2").Value inum = inum + sht.Range("B6").Value とすればよいのではないでしょうか? 後は、inumのデータ型の宣言が数値型になっていないとか?
質問者
お礼
回答ありがとうございます。 色々教えて頂いてひらめくものがあったのでもうちょっと考えてみます。
- nattocurry
- ベストアンサー率31% (587/1853)
回答No.1
マクロじゃなくても、 =SUM('Sheet01:Sheet10'!B6) という計算式で出来ますけど、これじゃダメでしょうか?
質問者
お礼
回答ありがとうございます。 式そのものをぶち込むのも良さそうですね。別のやり方しか考えていなかったので全く気が付きませんでした。もうちょっと考えています。
お礼
回答ありがとうございます。 ヒントを頂けたのでもうちょっと考えてみます。