VBATips

セル横軸で日付を生成する【カレンダー/スケジュール】【ExcelVBA】

カレンダーやスケジュール表のため、セル横軸で日付を生成したい

マクロでよくあるプログラムとして、日付を横軸のカレンダー(スケジュール)表を作成します。
毎度毎度、コードを書くのも手間なので、備忘録として残します。

セルの始点rngから横に日付を月初から月末まで入力するコード

'■セルの始点rngから横に日付を月初から月末まで入力していく。
Public Function call_CalenderDayCreateToColumn(sYear As Long, sMonth As Long, rng As Range)
    Dim c As Long
    '■日付を1~末日まで横軸で反映する
    For c = DateSerial(sYear, sMonth, 1) To DateSerial(sYear, sMonth + 1, 0)
        Cells(rng.Row, rng.Column + Day(c)-1) = c                                 '2022/11/1
        Cells(rng.Row, rng.Column + Day(c)-1).NumberFormatLocal = "mm/dd(aaa)"    '11/01(火)の表記に変更
    Next
End Function

実際の使い方

Public Sub sample()
  '2022年11月のカレンダーをセルA1を起点に横に書き込む
  Call call_CalenderDayCreateToColumn(2022, 11, Range("A1")) 
End Sub

注意点

  • 月によって、日数は異なります。上記は書き込むのみのプログラムですので注意ください。
    ※1月のデータが残った状態(31日まで)で、2月に書き込んでしまうと1/29 1/30 1/31が残る。
    ※事前にデータ削除するなど行ってください。

関連記事

コメント

タイトルとURLをコピーしました