
繰り返し処理 Excel2013 マクロ講座 58回
生徒の氏名一覧や会社の支店名一覧などのような表名にしたい入力済みのリストがあり、それらの名前でシートを作成したい場合、手入力では大変です。
今回は、シートに記載された支店名一覧にある支店それぞれの名前でシートを一括で作成するマクロを考えます。
(サンプルファイルは、こちらから マクロ58回サンプルデータ)


Sub リストから連続シート作成()
Dim 項目 As Range
For Each 項目 In Selection
Sheets.Add after:=ActiveSheet
ActiveSheet.Name = 項目.Value
Next 項目
End Sub


Sheets.Add after:=ActiveSheet
ActiveSheet.Name = 項目.Value
の部分を次のように一行にまとめることもできます。
Sub リストから連続シート作成2()
Dim 項目 As Range
For Each 項目 In Range("A2:A10")
Sheets.Add(After:=ActiveSheet).Name = 項目.Value
Next 項目
End Sub

Sub リストから連続シート作成3()
' ブックの最後尾にシートを追加
Dim 項目 As Range
For Each 項目 In Selection
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = 項目.Value
Next 項目
End Sub
現在のシートの枚数が、最後尾のシートのインデックスに等しいのでこのコードが使えます。