カレンダーやスケジュール表のため、セル縦軸で日付を生成したい
マクロでよくあるプログラムとして、日付を縦軸のカレンダー(スケジュール)表を作成します。
毎度毎度、コードを書くのも手間なので、備忘録として残します。
セルの始点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が残る。
※事前にデータ削除するなど行ってください。
コメント