• ベストアンサー

エクセル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の記述で実現したいのですが・・・ どういう記述の仕方があるでしょうか?

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

こんな感じでしょうか? '標準モジュールへ 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

kamogawawa
質問者

お礼

完璧にできました…! ありがとうございます^^

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

演算式なら↓のコピーですみます。 =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

kamogawawa
質問者

お礼

参考にさせていただきました^^ ありがとうございます!!

関連するQ&A