• ベストアンサー

セル結合部の合計額

A列に年月日、B列に氏名、C列に金額の表が有ります。 この表をマクロでB列、氏名で並べ替えをし、同名をセル結合しています。セル結合されているのがいくつも有ります。このセル結合された部分のC列の各々の金額の合計をD列に表示する記述を教えてください。 例えば、Aさんでセル結合されたC列のデータが3個有れば三個の合計額をD列に表示するものです。よろしくお願いします。

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.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 '------------------------------------------ 以上。  

hoshi7777
質問者

お礼

本当にありがとうございました。大変助かりました。

その他の回答 (5)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.5

再度の登場、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 '-------------------------------------- 以上。  

hoshi7777
質問者

補足

ありがとうございます。できました。甘えてすみません、もう一つ教えてください。前の捕捉でD2~D5の内どこでも良いとしましたが、D5に表示するためにはどのように記述するのでしょうか。又、見出しが無いため R=1 としました。よろしくお願いします。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.4

#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

hoshi7777
質問者

補足

ありがとうございます。 If flg_fisrt=False thenの次、.Cells(i-1,4)=GOKEIでエラーになります。よろしくお願いします。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

質問を読んで先ず疑問に思うのは、例えば、 (1)B2~B5が結合されてたら、計算結果は、D2~D5のどこに表示するのか? ということ。 更にいえば、次のような疑問も。 (2)B列は自動結合でなくて、なぜ手動で結合しているのか (3)結果を表示するとき、D列はB列に合わせて自動結合しなくていいのか 少なくとも(1)の補足は必須。 以上。  

hoshi7777
質問者

補足

ありがとうございます。合計結果はD2~D5の内ならどこでも良いです。 又、B列の結合はマクロでソートし、結合までしています。よろしくお願いします。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

シート名を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

hoshi7777
質問者

補足

ありがとうございます。GOKEI=HYO.Cells(i+1,2)+GOKEI でエラーになります。2を3にしたらC列の値がそのままD列に表示されます。 B列でセル結合された部分のC列の値の合計がD列に表示されるようにできないでしょうか。よろしくお願いします。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

どうやって結合していますか? マクロでやっているなら、結合前に範囲のセル内容を合計できませんか?