Option Explicit 'ブレイク処理サンプル Create By a.k Dim i As Long '入力行 Dim j As Long '出力行 Dim k As Long 'ブレイクキー用 Dim strEndFlg As String 'データ終了フラグ Dim strFstFlg As String 'ファーストフラグ Dim lngTsum As Long '店舗計 Dim lngAsum As Long '地区計 Dim lngYsum As Long '年月計 Dim lngSsum As Long '総計 Dim nkey(3) As String 'ブレイクキー Dim okey(3) As String 'ブレイクキー Sub main() Call initSet Call fileRead Do Until strEndFlg = "1" 'OLDKEYセット Call oKeySet '年月ブレイク Do Until nkey(1) <> okey(1) Worksheets("list").Cells(j, 1) = Worksheets("data").Cells(i, 1) '年月 '地区ブレイク Do Until nkey(1) & nkey(2) <> okey(1) & okey(2) Worksheets("list").Cells(j, 2) = Worksheets("data").Cells(i, 2) '地区 '店舗ブレイク strFstFlg = "0" Do Until nkey(1) & nkey(2) & nkey(3) <> okey(1) & okey(2) & okey(3) '明細セット Call dSet '読込 i = i + 1 Call fileRead Loop '店舗ブレイク Call tBreak Loop '地区ブレイク Call aBreak Loop '年月ブレイク Call yBreak Loop '最終処理 Call lastSet End Sub '明細セット Sub dSet() ' Worksheets("list").Cells(j, 1) = Worksheets("data").Cells(i, 1) '年月 ' Worksheets("list").Cells(j, 2) = Worksheets("data").Cells(i, 2) '地区 If strFstFlg = "0" Then Worksheets("list").Cells(j, 3) = Worksheets("data").Cells(i, 3) '店舗 strFstFlg = "1" End If Worksheets("list").Cells(j, 4) = Worksheets("data").Cells(i, 4) '売上日 Worksheets("list").Cells(j, 5) = Worksheets("data").Cells(i, 5) '売上 '店舗計加算 lngTsum = lngTsum + Worksheets("data").Cells(i, 5) '出力行 j = j + 1 End Sub '店舗ブレイク Sub tBreak() '店舗計 Worksheets("list").Cells(j, 3) = okey(3) & "舗計" Worksheets("list").Cells(j, 5) = lngTsum '出力行 j = j + 1 '地区計加算 lngAsum = lngAsum + lngTsum lngTsum = 0 'OLDKEYセット okey(3) = nkey(3) '店舗 End Sub '地区ブレイク Sub aBreak() '地区計 Worksheets("list").Cells(j, 2) = okey(2) & "計" Worksheets("list").Cells(j, 5) = lngAsum '出力行 j = j + 2 '年月計加算 lngYsum = lngYsum + lngAsum lngAsum = 0 'OLDKEYセット okey(3) = nkey(3) '店舗 okey(2) = nkey(2) '地区 End Sub '年月ブレイク Sub yBreak() '年月計 Worksheets("list").Cells(j, 1) = okey(1) & "年月計" Worksheets("list").Cells(j, 5) = lngYsum '出力行 j = j + 2 '総計加算 lngSsum = lngSsum + lngYsum lngYsum = 0 'OLDKEYセット okey(3) = nkey(3) '店舗 okey(2) = nkey(2) '地区 okey(1) = nkey(1) '年月 End Sub '最終処理 Sub lastSet() If j > 2 Then '総計 Worksheets("list").Cells(j, 1) = "総計" Worksheets("list").Cells(j, 5) = lngSsum Else Worksheets("list").Cells(j, 1) = "*** 対象データがありません ***" End If End Sub '読込 Sub fileRead() strEndFlg = "0" If Worksheets("data").Cells(i, 1) = "" Then 'データ終了フラグ strEndFlg = "1" 'ブレイクキークリア For k = 1 To 3 nkey(k) = "" Next k Else 'NEWKEYセット Call nKeySet End If End Sub 'NEWKEYセット Sub nKeySet() For k = 1 To 3 nkey(k) = Worksheets("data").Cells(i, k) Next k End Sub 'OLDKEYセット Sub oKeySet() For k = 1 To 3 okey(k) = Worksheets("data").Cells(i, k) Next k End Sub '初期処理 Sub initSet() 'シートクリア Worksheets("list").Activate Cells.Select Selection.ClearContents 'シート初期セット j = 1 Worksheets("list").Cells(j, 1) = "年月" Worksheets("list").Cells(j, 2) = "地区" Worksheets("list").Cells(j, 3) = "店舗" Worksheets("list").Cells(j, 4) = "売上日" Worksheets("list").Cells(j, 5) = "売上" '合計金額クリア lngTsum = 0 lngAsum = 0 lngYsum = 0 lngSsum = 0 'ブレイクキークリア For k = 1 To 3 nkey(k) = "" okey(k) = "" Next k '出力行 j = 2 '読込 i = 2 End Sub