VBAで休日判定処理を使って、Excelワークシートに休日カレンダーを作る
休日判定を作ったので、その応用を2。
Excelのワークシートに休日を指定色にしたカレンダーを作成してみる。
(ソースコードへのリンクは下の方に・・・)
更新履歴
2019/6/13
横1列バージョンを追加しました。
仕様みたいなもの
通常(?)の1週間横並び
- 年指定(1月から12月)
- 年度指定(4月から翌年3月)
オプション
- 横1行に表示する月数を可変
- 書き込み基準位置指定可能
- 月と月の間のセル数可変(縦、横)
- 曜日と曜日の間のセル数可変
- 週と週の間のセル数可変
- 休日色(背景、文字)可変
縦
- 日付、曜日、休日名表示
- 書き込み基準位置指定可能
横
- 月、日(日付ではない)、曜日表示
- 書き込み基準位置指定可能
サンプル画像
(4月29日とか、通常の休日を非休日と設定している部分もあるので、普通の正しい(?)カレンダーとは異なるのでご注意を。)
1月から12月(3×4)
1月から12月(4×3)
1月から12月(6×2)
1月から12月(3×4、日間セルあり)
4月から3月(3×4)
縦
横
事前準備
休日判定処理クラスの休日設定(の確認)
パブリックメソッド
- createCalendarY(指定年の1月から12月までのカレンダー作成)
- createCalendarYD(指定年度の4月から3月までのカレンダー作成)
- createCalendarYMV(指定年月の縦カレンダー作成)
- createCalendarYMH(指定年月の横カレンダー作成)
ソースコード
▶クリックで展開
注意
既存のワークシートに書き込む場合、以下のコードで確認メッセージなしで、全部クリアされますので・・・
ws.Range(.Cells(1, 1), .Cells(.Rows.Count, .Columns.Count)).Clear
生成されるワークシート名は、以下の通りです。
TARGET_SHEET_PREFIX & CStr(lYear)
デフォルトのまま使うと
TARGET_SHEET_PREFIX は、"Calendar"
なので、2019年のカレンダーを作ろうとした場合、
Calendar2019
というワークシート名になります。
2021/4/11
都合により、ソースは、こちら に移動しました。
github.com
モジュール先頭の定数を適当にいじって、いろいろ試してみて下さい。
上記とは別に、CCompanyHolidayのソースも必要です。
CCompanyHoliday のソースは、こちらから持っていって下さい。
CCompanyHolidayのソースも、上記リンク にあります。