VBATips

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

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

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

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

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

実際の使い方

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

注意点

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

関連記事

コメント

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