エクセルVBAマクロを自動作成する無料アプリです。
例として「原本シートをコピーし、12か月分(31日分)のシートを作成する」VBAマクロを作成します。
事例 12か月分のシートを作成する
コピーするシートの名前は、「原本」にしました。
コピーしたときに使うシートの名前を「リスト」シートに縦に並べます
アプリへのリンク
アプリへのリンク ⇒原本シートをコピーし、名前を付ける
アプリの画面
ポイント
「リストの全てのシートを作る」のチェックします。
作成されたコード
アプリで作成したコードを、VBE画面に貼り付けて実行します。
右端に2月のシートが作成され、A1セルにシート名が転記されました。
ポイント1 リストの書式に「日付」は不可です。表示形式を変えても、セルの値はスラッシュ(/)のままなので、シート名にしたときエラーになります。
ポイント2 【原本】シートは、関数を入れることで、カレンダー日付が入ります。 A3セルの関数 =TEXT(DATE(LEFT(A1,4), VALUE(MID(A1,6,LEN(A1)-6)), 1), "yyyy/mm/dd") A4セルの関数以降下方向の関数
=A3+1
ポイント3
他の利用方法として、リストに1から31までの日付をいれたり、支店名や商品名を入れたりできます。
できました😊
VBAコードを見る
Sub デモ() '原本シートをコピーし、名前を付ける
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim newSheet As Worksheet, myCell As Range, endCell As String
Sheets("リスト").Select
endCell = Cells(Rows.Count, Range("a1").column).End(xlUp).address
For Each myCell In Range("a1" & ":" & endCell)
Sheets("原本").Copy After:= Worksheets(Worksheets.Count)
Set newSheet = ActiveSheet
newSheet.Name = myCell.Value
newSheet.Range("a1").Value = myCell.Value
Next myCell
EndSub:
Application.DisplayAlerts = true
Application.ScreenUpdating = True
End Sub
【スクリーンショッ14選】エクセルVBAでシート処理