【エクセルマクロ】1年分の日付のシート作成:自動化

vba-一年分シート作成-アイキャッチ ExcelVBA

エクセルマクロで、1年分の日付のシートを作成するVBAコードをご紹介します。

1日1シートとして、一年分のシートを自動生成します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

1年分の日付のシート作成

以下のExcelVBAを実行すると、1年分のシートを一括でコピーします。


Sub 一年分の日付のシート追加()

Dim First_Sht As Worksheet
Dim Mydate As Variant
Dim Startdate As Variant
Dim i As Long

    '最初のシートを変数格納
    Set First_Sht = ActiveSheet

    '開始日
    Mydate = First_Sht.Range("A1")
    Startdate = Right(Format(Mydate, "yyyymmdd"), 4)
    
    Application.ScreenUpdating = False

    '一年分の日数ループ
    For i = 1 To 366
    
        If i = 1 Then
            '最初のシートは、シート名を変更するのみ
            First_Sht.Name = Format(Mydate, "yyyymmdd")
        Else

            '一年分のシートを作成したら、ループを抜けて終了
            If Right(Format(Mydate, "yyyymmdd"), 4) = Startdate Then
                Exit For
            End If
            
            'シート作成し、シート名を日付にして、セルA1に日付入力
            Sheets.Add After:=ActiveSheet
            ActiveSheet.Name = Format(Mydate, "yyyymmdd")
            ActiveSheet.Range("A1") = Format(Mydate, "yyyy/mm/dd")
            
        End If

        '日付を1日プラス
        Mydate = Mydate + 1

    Next i

    Application.ScreenUpdating = True

  Worksheets(1).Select

    MsgBox "完了"

End Sub

マクロ実行前

シート内のセルA1に日付(開始日)を入力します。


 

マクロ実行後

ファイル内に1年分のシートを自動挿入します。

各シートのセルA1に、日付を自動入力します。

「2022/3/1」~「2023/2/28」のシートを作成しました。


 

 

※ループ回数が多いので、マクロ動作完了まで1分ほどかかりました。
 

補足

下図の「★」のあたりを右クリックすると、

シート一覧が表示されるので、シート移動が簡単にできます。


 
 
この記事がお役に立ちますと幸いです。
 

・【エクセルマクロ】シートの追加・削除を自動化まとめ
 

【エクセルマクロ】シートの追加・削除を自動化:超便利12選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載