• 締切済み

EXCEL VBAでの繰り返し計算を教えてください

表記の通りですが、宜しくお願いいたします。全て加算です。 EXCEL2007での計算で横のE1:S1、E2:S2、E3:S3でT1,T2,T3に合計            縦のE28~T28行に縦の合計 列 A   E F G・・・・・   S T 1 ・・・2 3 4・・・・・・・・・ 1 10 2 ・・・1 5 3・・・・・・・・・ 2 11 3 ・・・1 3 6・・・・・・・・・ 3 13 ・ ・ ・ 28・・・4 13 13・・・・・・・6 34 このような繰り返し表計算をVBAで作成したいのですが初心者でわかりません、何卒宜しくお願いいたします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 基本的なやり方では以下の様にFor~Nextを使って繰り返し計算を行います。 Sub 基本() Dim i As Long Dim h As Long Dim w As Long h = Range("E1:S27").Rows.Count - 1 w = Range("E1:S27").Columns.Count - 1 For i = 0 To h Range("T1").Offset(i).Value = Application.WorksheetFunction.Sum(Range("E1:S1").Offset(i)) Next i For i = 0 To w Range("E28").Offset(0, i).Value = Application.WorksheetFunction.Sum(Range("E1:E27").Offset(0, i)) Next i Range("T28").Value = Application.WorksheetFunction.Sum(Range("E1:S27")) End Sub  只、繰り返し回数が多くなりますと、計算に要する時間が長くなります(御質問のE1:T27程度の範囲でしたら、繰り返し計算でも時間は殆どかかりません)から、その様な場合には、一旦、セルにワークシート関数を入力して、関数に計算させてから、値のみをコピーして、同じセルに貼り付けてしまう様なマクロとするのも1つの手です。 Sub 応用() Range("T1:T27").FormulaR1C1 = "=SUM(RC[-15]:RC[-1])" Range("E28:T28").FormulaR1C1 = "=SUM(R[-27]C:R[-1]C)" Range("T1:T27").Value = Range("T1:T27").Value Range("E28:T28").Value = Range("E28:T28").Value End Sub

vanpire99
質問者

お礼

大変有難うございます、おかげさまでスムースに事が運びました。 もう一点お願いしたいので宜しくお願いします。 A1に入力した後EnterでA4へ、A4入力の後A6へ移動のように、Enter後任意のセルに移動させる方法をご伝授お願いいたします。