Sub TEST1()
'シートをクリア
Sheets("ベース").Range("C3,A6:F9") = ""
'取引先を入力
Sheets("ベース").Range("B3") = "A"
j = 5
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If Sheets("DB").Cells(i, "A") = "A" Then
j = j + 1
'商品を入力
Sheets("ベース").Cells(j, "A") = Sheets("DB").Cells(i, "B")
'売上を入力
Sheets("ベース").Cells(j, "D") = Sheets("DB").Cells(i, "C")
End If
Next
'シートをコピー
Sheets("ベース").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = "A" 'シート名を変更
End Sub
実行すると、雛型を使って、1つの取引先を別シートに転記できます。
1つの取引先を別シート転記できた
雛型を使って、1つの取引先を別シートに転記できました。
複数の取引先を別シート転記
次は、雛型を使って、複数の取引先を別シートに転記するVBAコードです。
Sub TEST2()
Dim A
'取引先リストを作成
A = Array("A", "B", "C")
'取引先をループ
For k = 0 To UBound(A)
'シートをクリア
Sheets("ベース").Range("C3,A6:F9") = ""
'取引先を入力
Sheets("ベース").Range("B3") = A(k)
j = 5
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If Sheets("DB").Cells(i, "A") = A(k) Then
j = j + 1
'商品を入力
Sheets("ベース").Cells(j, "A") = Sheets("DB").Cells(i, "B")
'売上を入力
Sheets("ベース").Cells(j, "D") = Sheets("DB").Cells(i, "C")
End If
Next
'シートをコピー
Sheets("ベース").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = A(k) 'シート名を変更
Next
End Sub
実行すると、雛型を使って、「複数」の取引先を別シートに転記できます。
雛型を使って、取引先ごとに別シート転記
1つ目の取引先です。
2つ目の取引先です。
3つ目の取引先です。
雛型を使って、複数の取引先を別シートに転記できました。
取引先リストを作成して別シート転記
「取引先リスト」を作成して、雛型を使って取引先ごとに別シートに転記するVBAコードです。
Sub TEST3()
Dim B
'辞書を作成
Set B = CreateObject("Scripting.Dictionary")
'辞書に取引先リストを登録
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If B.exists(Sheets("DB").Cells(i, "A").Value) = False Then
B.Add Sheets("DB").Cells(i, "A").Value, 0
End If
Next
Dim A
A = B.keys '取引先リストを取得
For k = 0 To UBound(A)
'シートをクリア
Sheets("ベース").Range("C3,A6:F9") = ""
'取引先を入力
Sheets("ベース").Range("B3") = A(k)
j = 5
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If Sheets("DB").Cells(i, "A") = A(k) Then
j = j + 1
'商品を入力
Sheets("ベース").Cells(j, "A") = Sheets("DB").Cells(i, "B")
'売上を入力
Sheets("ベース").Cells(j, "D") = Sheets("DB").Cells(i, "C")
End If
Next
'シートをコピー
Sheets("ベース").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = A(k) 'シート名を変更
Next
End Sub