「お昼の放送」の思い出

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

A 回答 (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
'------------------------------------------

以上。
 
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/05/01 12:11

再度の登場、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 としました。よろしくお願いします。

補足日時:2008/05/01 10:48
    • good
    • 0

#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でエラーになります。よろしくお願いします。

補足日時:2008/05/01 01:31
    • good
    • 0

質問を読んで先ず疑問に思うのは、例えば、



(1)B2~B5が結合されてたら、計算結果は、D2~D5のどこに表示するのか?

ということ。
更にいえば、次のような疑問も。

(2)B列は自動結合でなくて、なぜ手動で結合しているのか
(3)結果を表示するとき、D列はB列に合わせて自動結合しなくていいのか

少なくとも(1)の補足は必須。

以上。
 

この回答への補足

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

補足日時:2008/05/01 00:04
    • good
    • 0

シート名を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列に表示されるようにできないでしょうか。よろしくお願いします。

補足日時:2008/04/30 15:32
    • good
    • 0

どうやって結合していますか?


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!