- ベストアンサー
エクセル2002VBAで合計を計算したい
単純なことなのかもしれませんが… エクセルVBAでセルの足し算をしたいのです。 セルA1に合計を出したくて A15+A25+A35…と、A155までの足し算の結果をA1に出したいのです。 また、A2のセルにはA16+A26+A36… A3にもA17+A27+A37…と。 そしてB1,B2,B3にも、B15+B25+B35…B16+B26+B37…B17+B27+B37とそれぞれ。 C列にも同様にです。 A1からC3までに、同じような演算の結果が出るということです。 これをエクセルのSUM関数を使わずに、VBAの記述で実現したいのですが・・・ どういう記述の仕方があるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか? '標準モジュールへ Sub test() Dim i, ii Dim x, y Dim rng As Range For Each rng In Range("a1:c3") i = 0 x = rng.Column y = rng.Row For ii = 14 To 154 Step 10 i = i + Cells(y + ii, x).Value Next ii rng.Value = i Next rng End Sub
その他の回答 (1)
- mt2008
- ベストアンサー率52% (885/1701)
演算式なら↓のコピーですみます。 =SUMPRODUCT((A$15:A$155)*(MOD(ROW(A$15:A$155),10)=(ROW()+4))) 以下のマクロでは上記の式をA1:C3に入れて値だけを残して居ます。 こんな方法もあると言う参考までに……。 Sub Sample() Application.ScreenUpdating = False 'A1に演算式を代入 Range("A1").FormulaR1C1 = "=SUMPRODUCT((R15C:R155C)*(MOD(ROW(R15C:R155C),10)=(ROW()+4)))" 'A1をコピーしてA1:C3に数式貼り付け Range("A1").Copy Range("A1:C3").PasteSpecial Paste:=xlPasteFormulas 'A1:C3をコピーして値だけ貼り付け Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Application.ScreenUpdating = True End Sub
お礼
参考にさせていただきました^^ ありがとうございます!!
お礼
完璧にできました…! ありがとうございます^^