今回は、前回作成したマクロ
『同じフォルダ内にある「○○一覧.xlsx」の任意のシート内容をそれぞれ別のファイルに転記する』
を配列と繰り返し構文を使用して改修しました。
Sub tenki1()
'○○一覧を開く
Workbooks.Open ThisWorkbook.Path & "\◯◯一覧.xlsx"
'シート名を配列に入れる ※ブック名は「シート名YYMMDD」とする
Dim sheetName(1) As String
sheetName(0) = "商品マスタ"
sheetName(1) = "顧客マスタ"
'繰り返し変数の宣言
Dim i As Long
For i = 0 To 1
'シート内容を転記することを繰り返す
For i = 0 To 1
Worksheets(sheetName(i)).Activate
Cells(1, 1).Activate
Worksheets(sheetName(i)).UsedRange.Copy
Workbooks.Open ThisWorkbook.Path & "\" & sheetName(i) & "YYMMDD.xlsx"
Worksheets("データ").Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
ActiveWorkbook.Save
ActiveWindow.Close
Next i
'○○一覧を閉じる
ActiveWindow.Close
End Sub
繰り返し構文を使用したので、乱雑な感じは少し減りました。
でも、ブックに転記するシートの名前・数が変わると対応できないので、それを解決して汎用性を高くしたいです。
セルにシート名を記載してそれを参照するようなコードに改修したら解決する気がするので、
まずは、それを目標に頑張りたいと思います。
あと、ブック名とシート名に相違があった時などにメッセージ表記もしたいですね!