前回、クラス、シートモジュールを使ってテーブルデータをもとにした複数ファイルの作成をやってみました。
【Excel/VBA】テーブルデータをもとに複数のファイル作成①~クラス シートモジュール ディクショナリの実験的試行錯誤
今回はそれのちょっと変化版。テーブルデータをもとに書式シートをコピーしてデータを入力しファイルを作成するのは同じだが、ファイルを地域ごとにして、地域ファイルに複数店舗のシートが含まれるようにする。
(1)テーブルデータ
「TB」シートにデータを入力しておく
no , tenpo , area
1 , 北海道店 , 北海道
2 , 福島店 , 東北
3 , 青森店 , 東北
4 , 東京店 , 関東
5 , 埼玉店 , 関東
6 , 福岡店 , 九州
7 , 長崎店 , 九州
仕上がりは
「北海道」ファイル:北海道店のシート
「東北」ファイル:青森店、福島店のシート
「関東」ファイル:東京店、埼玉店のシート
「九州」ファイル:福岡店、長崎店のシート
(2)コード:シートモジュールに書く
3 Application.DisplayAlerts = False
4 Dim path As String ‘ファイルを保存するフォルダ
5 path = ThisWorkbook.path & “\”
6 Dim wsGen As Worksheet ‘原本シートセット
7 Set wsGen = Worksheets(“原本”)
8 Me.getdata ‘データセット
9 Dimi As Long, wsGen2 As Worksheet, vArea As String, key As String
10 i = 2
12 Do Until key = “”
13 wsGen.Copy
14 Set wsGen2 = ActiveSheet
15 Do
16 wsGen2.Copy Before:=wsGen2
17 Me.inputdata key
18 vArea = myDic(key).area
19 i = i + 1
21 If key = “” Then
22 Exit Do
23 End If
25 wsGen2.Delete
26 With ActiveWorkbook
27 .SaveAs Filename:=path & vArea & “.xlsx”
28 .Close
29 End With
30 Loop
31 Set myDic = Nothing
32 Application.ScreenUpdating = True
33 Application.DisplayAlerts = True
34 End Sub
コメント