
Excel 2013 マクロ講座59回
支店ごとに同じフォーマットの売上表をたくさんコピーしたり、生徒名の成績管理表をたくさんコピーしたり、
日常業務では、原本をコピーして、違う名前をつけて管理するというような作業が多いですね。
今回は、生徒の成績記録簿をExcelで管理するという設定です。元になるブックには、原本シートと生徒名のリストシートがあります。
(サンプルファイルは、こちらから マクロ59回サンプルデータ)


Worksheets("原本").Copy After:=Worksheets(Worksheets.Count)
Dim 名前 As Range

Sub リストから連続シート作成()
Dim 名前 As Range
For Each 名前 In Worksheets("リスト").Range("A2:A12")
Worksheets("原本").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = 名前.Value
Next 名前
End Sub

Sub リストから連続シート作成1()
Dim 名前 As Range
For Each 名前 In Worksheets("リスト").Range("A2:A12")
Worksheets("原本").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = 名前.Value
ActiveSheet.Range("A1") = 名前.Value
Next 名前
End Sub
これでA1セルに生徒名が入ります。
Sub リストから連続シート作成2()
Dim 名前 As Range
For Each 名前 In Worksheets("リスト").Range("A2:A12")
Worksheets("原本").Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = 名前.Value
.Range("A1") = 名前.Value
End With
Next 名前
End Sub
ActiveSheetという同一オブジェクトの記述を簡潔にすることができます。