- ベストアンサー
セル結合部の合計額
A列に年月日、B列に氏名、C列に金額の表が有ります。 この表をマクロでB列、氏名で並べ替えをし、同名をセル結合しています。セル結合されているのがいくつも有ります。このセル結合された部分のC列の各々の金額の合計をD列に表示する記述を教えてください。 例えば、Aさんでセル結合されたC列のデータが3個有れば三個の合計額をD列に表示するものです。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
またまた登場、onlyromです。 >甘えてすみません 甘えは今回だけ、ということで。。(^^;;; >前の捕捉でD2~D5の内どこでも良いとしましたが >D5に表示するためにはどのように記述するのでしょうか >又、見出しが無いため R=1 としました。 '----------------------------------------------- Sub NewTest() Dim myR As Long Dim R As Long R = 1 Do Until Cells(R, "B") = "" With Cells(R, "B").MergeArea myR = R + .Rows.Count - 1 Cells(myR, "D").Value = WorksheetFunction.Sum(.Offset(, 1).Resize(.Rows.Count)) R = R + .Rows.Count End With Loop End Sub '------------------------------------------ 以上。
その他の回答 (5)
- onlyrom
- ベストアンサー率59% (228/384)
再度の登場、onlyromです。 方法は色々あると思いますが、シンプルなサンプルを。 結合セル(B2~5)の計算結果は、先頭セル(D2)に表示する場合。 見出し: 1行目 データ: 2行目~ '----------------------------------------------- Sub Test() Dim R As Long R = 2 Do Until Cells(R, "B") = "" With Cells(R, "B").MergeArea Cells(R, "D").Value = WorksheetFunction.Sum(.Offset(, 1).Resize(.Rows.Count)) R = R + .Rows.Count End With Loop End Sub '-------------------------------------- 以上。
補足
ありがとうございます。できました。甘えてすみません、もう一つ教えてください。前の捕捉でD2~D5の内どこでも良いとしましたが、D5に表示するためにはどのように記述するのでしょうか。又、見出しが無いため R=1 としました。よろしくお願いします。
- keirika
- ベストアンサー率42% (279/658)
#2です。改良しました。 Sub Sample() Dim KINGAKU As Range Dim i As Long Dim GOKEI As Long Dim flg_First As Boolean Set KINGAKU = Sheets("Sheet1").Range(Cells(1, 3), Cells(65536, 3).End(xlUp)) GOKEI = 0 flg_First = True With Sheets("Sheet1") For i = 1 To KINGAKU.Rows.Count If IsNumeric(.Cells(i, 3)) Then If .Cells(i, 2) <> "" Then If flg_fisrt = False Then .Cells(i - 1, 4) = GOKEI GOKEI = 0 End If flg_fisrt = False End If GOKEI = GOKEI + .Cells(i, 3) End If Next .Cells(i - 1, 4) = GOKEI End With Set KINGAKU = Nothing End Sub
補足
ありがとうございます。 If flg_fisrt=False thenの次、.Cells(i-1,4)=GOKEIでエラーになります。よろしくお願いします。
- onlyrom
- ベストアンサー率59% (228/384)
質問を読んで先ず疑問に思うのは、例えば、 (1)B2~B5が結合されてたら、計算結果は、D2~D5のどこに表示するのか? ということ。 更にいえば、次のような疑問も。 (2)B列は自動結合でなくて、なぜ手動で結合しているのか (3)結果を表示するとき、D列はB列に合わせて自動結合しなくていいのか 少なくとも(1)の補足は必須。 以上。
補足
ありがとうございます。合計結果はD2~D5の内ならどこでも良いです。 又、B列の結合はマクロでソートし、結合までしています。よろしくお願いします。
- keirika
- ベストアンサー率42% (279/658)
シート名をSheet1、見出しナシ、データが1件以上 上記の条件で記述しています。 Sub Sample() Dim HYO As Range Dim i As Integer Dim GOKEI As Long Set HYO = Sheets("Sheet1").Range("B1").CurrentRegion GOKEI = 0 For i = 0 To HYO.Rows.Count - 1 If HYO.Cells(i + 1, 1) <> "" And i <> 0 Then Sheets("Sheet1").Cells(i, 4) = GOKEI GOKEI = 0 End If GOKEI = HYO.Cells(i + 1, 2) + GOKEI Next Sheets("Sheet1").Cells(i, 4) = GOKEI Set HYO = Nothing End Sub
補足
ありがとうございます。GOKEI=HYO.Cells(i+1,2)+GOKEI でエラーになります。2を3にしたらC列の値がそのままD列に表示されます。 B列でセル結合された部分のC列の値の合計がD列に表示されるようにできないでしょうか。よろしくお願いします。
- nda23
- ベストアンサー率54% (777/1415)
どうやって結合していますか? マクロでやっているなら、結合前に範囲のセル内容を合計できませんか?
お礼
本当にありがとうございました。大変助かりました。