| 
    
     |  | jakaさん、おはようございます。 ご教示の内容を確認させていただきました。
 当初の質問の確認をさせていただきますが、下図のようにいくつかのグループが
 あります。(7〜10行目、14〜15行目)それらの各グループの各列の数値の合計と
 件数を算出します。グループの最終行の次の行に件数の合計を、そして次の行に
 数値の合計を、最終的に全部の合計を、最後のグループの合計の次の行に
 算出させたいということでした。keinさんのご教示の内容を試させて
 いただきましたが、以下のようになりました。
 まず、最初のグループについてですが、G列の件数は11行目に出ましたが、数値の合計
 は、その件数も含まれた合計になってしまいますので、この件数を含めず算出したいのです。
 それから、H〜N列の件数の合計も算出させたいのです。A〜F列は文字列が入力されていますので
 これらの計は必要ありません。
 次に2つ目のグループですが、14〜15行のデータの件数は16行目に、そして全体の件数の合計が
 17行目に出ていますので問題ありませんが、これもやはり、H〜N列の件数計がでません。
 18行目、19行目も同様です。
 私的には、例えば最初のグループでいうと、G列7〜10行目の件数計をG列11行目に(4です)、
 数値の合計を12行目に(265です)、次のグループでは、G列14〜15行目の件数計を16行目に
 (2です)、数値の合計を17行目に(15です)、そして全体の数値の合計を18行目に(6です)、
 数値の合計を19行目に(280です)算出し、他のH列〜N列も同様にしたいのです。
 私も色々試し、四苦八苦しているところですが、わかりません。
 申し訳ありませんが、またのご教授をお願い致します。
 
 A B C D E F  G  H  I  J  K  L  M  N  O  P Q
 7            100 10  2  3      5  5
 8            110        2      7
 9             2    2          6
 10            53  3        4
 11            4
 12 0 0 0 0 0 0  269 13  4  3  2  4  5 18
 13
 14            10  2  3          1
 15            5      5  5
 16            2  0  0  0  0  0  0  0
 17            6  0  0  0  0  0  0  0
 18 0 0 0 0 0 0   23  2  3  5  5  0  0  1 0  0  0 0 ...
 19 0 0 0 0 0 0  292  2  3  5  5  0  0  1 0  0  0 0 ...
 
 
 ▼Jaka さん:
 >こんにちは。
 >現在までの状況を把握してません。
 >
 >また、↓入ってません。
 >>7〜10行までにある数値の件数を11行目に、金額の合計を12行目に、それぞれ
 >>各列毎に算出します。
 >
 >
 >Sub PLAS()
 >  Dim i As Long
 >  Dim j As Long
 >  Dim 先頭行 As Long
 >  Dim 最終行 As Long
 >  Dim 対象データ As Variant
 >  Dim 合計(5) As Variant
 >  Dim 小計(5) As Variant
 >  Dim ブランク As Boolean
 >
 >  With ActiveSheet
 >    先頭行 = 7
 >    最終行 = .Cells(65536, "G").End(xlUp).Row + 1
 >    For i = 先頭行 To 最終行
 >
 >      .Cells(i, "G").Resize(, 7).Select '←確認用に1度入れてみるといいです。
 >
 >      対象データ = .Cells(i, "G").Resize(, 6).Value
 >      If 対象データ(1, 1) = "" Then
 >        If ブランク Then
 >          .Cells(i, "G").Resize(, 7).Value = 小計
 >          .Cells(i, "G").Resize(, 7).Font.Bold = True
 >          For j = 0 To 5
 >            合計(j) = 合計(j) + 小計(j)
 >            小計(j) = 0
 >          Next j
 >          ブランク = False
 >        End If
 >      Else
 >        If 対象データ(1, 1) <> "" Then
 >          ブランク = True
 >          If IsNumeric(Trim(対象データ(1, 1))) Then
 >           小計(0) = 小計(0) + 1
 >          End If
 >          For j = 0 To 6
 >            小計(j) = 小計(j) + Val(対象データ(1, j))
 >          Next j
 >        End If
 >      End If
 >    Next i
 >    .Cells(i, "G").Resize(, 7).Value = 合計
 >    .Cells(i, "G").Resize(, 7).Font.Bold = True
 >  End With
 >End Sub
 >
 >**********************
 >Sub sgh()
 >  Dim Cure As Range, Gcure As Range, STR As Range, GK() As Long
 >  Dim CCR As Long
 >  Set STR = Range("G7")
 >  CCR = STR.End(xlDown).End(xlToRight).Column - STR.Column + 1
 >  ReDim GK(1 To CCR)
 >  Do Until STR.End(xlDown).Row = 65536
 >    Set STR = STR.End(xlDown)
 >    With STR 'Range("G8")
 >      Set Gcure = Nothing
 >      Set Cure = .CurrentRegion
 >      With Cure
 >         Set Gcure = .Offset(.Rows.Count).Resize(1)
 >         For i = 1 To .Cells.Columns.Count
 >          Gcure.Cells(i).Value = Application.Sum(.Cells.Columns(i))
 >          Gcure.Cells(i).Font.Bold = True
 >          GK(i) = GK(i) + Application.Sum(.Cells.Columns(i))
 >         Next
 >      End With
 >    End With
 >    Set STR = Gcure.Cells(i)
 >    Set Cure = Nothing
 >  Loop
 >  Gcure.Cells(i).Resize(, CCR).Value = GK
 >  Gcure.Cells(i).Resize(, CCR).Font.Bold = True
 >  Set STR = Nothing
 >  Set Gcure = Nothing
 >  Erase GK
 >  End
 >End Sub
 
 
 |  |