|
Sub 支社別集計()
Dim Sheet1, Sheet2 As Worksheet
Const COL店舗CD = 1 ' 店舗CDの列
→Const name = 1でなぜ、1列目みてるのでしょうか?
Const COL分類CD = 3 ' 分類CDの列
Const COL売上額 = 10 ' 売上額
Dim MaxRow As Long ' 最終行
Dim key As String ' 検索キー
Dim c, r As Long
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
Set Sheet1 = Worksheets("売上明細") ' 明細シート
Set Sheet2 = Worksheets("売上集計") ' 集計シート
MaxRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row ' 最終行を求める
→なぜ上の文で最終行を取得できるのでしょうか?
Rows.Count,1とは、どこをみてるのでしょうか?
' 売上明細を連想配列へ読み込む
With Sheet1
For r = 2 To MaxRow ' 最終行
key = .Cells(r, COL店舗CD) & .Cells(r, COL分類CD) ' 店舗CD & 分類CD
→Cells(r,COL店舗CD)とは、なんですか?
Cells(2,1列??)
dicT(key) = dicT(key) + .Cells(r, COL売上額) ' 売上額
→一回目のdicTには、108400という数字が入ってます。
→なぜ上の数式で売上額になるのでしょうか?
Next
End With
' 集計シートへの書き出し
With Sheet2
For c = 3 To 12 ' 列
For r = 4 To 12 ' 行
key = .Cells(2, c) & .Cells(r, 1) ' 店舗CD & 分類CD
.Cells(r, c) = dicT(key)
Next
Next
End With
End Sub
宜しくお願いします。
一行一行説明して頂けるとさらに助かります。
|
|