• 締切済み

エクセルマクロ(VBA)の立て方について

お世話になっております。 エクセルのVBAマクロについて教えてください。 以下のように2種類A,Bの縦に並んだ時系列データがあった場合、 A No1  2012/6/1    1 A No2  2012/7/1    3 A No3 2012/8/1    4 B No1  2012/6/15   2 B No2 2012/7/15   6 B No3  2012/8/15   7 B No4  2012/9/15   9 上記のデータを別のシートに以下のように表示させたいのです。 (上記1列目は以下1列目に対応、上記4列目の数字をA、B単位で累計和を以下2列目に表示) A 1 A 4 A 8 B 2 B 8 B 15 B 24 以上のVBAマクロの数式の立て方を教えていただけますでしょうか。 よろしくお願いいたします。

みんなの回答

  • luka3
  • ベストアンサー率72% (460/631)
回答No.3

VBAとしては答えが出ていますが、この程度であればVBAを使わなくともいいと思います。 Sheet2に以下をセットします。 A1 「=Sheet1!A1」 B1 「=Sheet1!D1」 A2 「=Sheet1!A2」 B2 「=IF(A2=A1,B1,0)+Sheet1!D2」 3行目以降は2行目をコピー&ペースト(もしくはフィル)してください。

すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

シート1からシート2へって事なら Sub try()  Worksheets("Sheet1").Range("A:A").Copy _  Worksheets("Sheet2").Range("A1")  With Worksheets("Sheet2")       With .Range("A1", .Cells(Rows.Count, 1).End(xlUp)).Offset(, 1)            .Formula = "=SUMIF(Sheet1!$A$1:D1,Sheet2!A1,Sheet1!D:D)"            .Value = .Value       End With   End With End Sub こんな感じとか?

すると、全ての回答が全文表示されます。
回答No.1

いろいろありますが・・・簡単なところで、 Sub myCalc() Dim SumA As Long Dim SumB As Long Dim i As Long Dim myLastRow As Long myLastRow = 7 For i = 1 To myLastRow If Range("A" & i).Value = "A" Then SumA = SumA + Range("E" & i).Value Range("B" & i).Value = SumA ElseIf Range("A" & i).Value = "B" Then SumB = SumB + Range("E" & i).Value Range("B" & i).Value = SumB End If Next i End Sub A列 判断値(A Or B) B列 計算結果 E列 元値 とした場合

すると、全ての回答が全文表示されます。

関連するQ&A