[Excel]稼働日カレンダーテンプレート 祝日ダウンロード機能付き

カレンダーの特徴
簡単操作で休日設定
設定した休日をCSVファイルで出力
祝日データをダウンロードする機能付き
日曜/月曜始まり選択可能

職場で依頼されたので作成しました。ひょっとしたらニッチな需要があるかもしれないので公開します。

休日を曜日ごとに一括設定、祝日はダウンロード機能がついているので自分で調べなくてもOK、設定した休日をCSVファイルに出力、日曜/月曜始まりの切替可、年度始めの月を設定可、と、機能をかなり詰め込みました。

会社で年間の稼働日を設定される方がシミュレーションするのに便利だと思います。

ダウンロード

免責事項を一読の上、理解いただける方のみダウンロードして下さい。

尚、著作権は放棄しませんが、改変やローカルなコミュニティでの配布は自由に行って下さい。くれぐれも自己責任でお願いします。

尚、本ファイルは xlsmファイル(マクロ機能付き)です。

  • 2019/12/13 Ver1.00
  • 2020/3/30 Ver2.00 休日データをCSV出力する機能追加
  • 2020/4/9 Ver2.01 改ページプレビューで追加メニューが表示されない不具合を修正
  • 2021/7/5 Ver2.02 64bit対応…Declareステートメントに PtrSafe 属性を設定
  • 2021/7/7 Ver2.10 ブラッシュアップ(UI変更、処理時間短縮、等)
  • 2021/7/13 Ver3.00 カレンダーシートをコピーしても機能するよう改良
  • 2021/7/15 Ver3.01 ポカミス修正(右クリックメニューが表示されない)
  • 2021/7/15 Ver3.02 CSV出力にシート名を反映するよう改良、シート保護に関する不具合修正
  • 2021/7/16 Ver2.1.1 安定版
  • 2021/7/16 Ver3.03 Beta最終版

本ファイルはExcel2016,2019で動作確認を行っています。

仕様

レイアウト

  • 12か月分一括表示
  • 年度始めの月を選択可能(1月から12月)
  • 週始めの曜日を選択可能(日曜日、月曜日の2択)

休日設定

  • 祝日ダウンロード可能(Google icalカレンダーデータ)
  • チェックボックスで各曜日と祝日をそれぞれ一括休日設定
  • 右クリックメニューで個別に休日設定可能
  • 休日数を自動でカウント(各月&年間)
  • 設定した休日をCSV形式で出力

祝日ダウンロードのモジュールは以下のサイトのものを利用させていただきました。

Qiita

概要 この記事は 日本の祝日データをEXCEL(VBA)で取得してみた の続編です。 Google は XML/…

その他

  • 休日から差し引いた日を稼働日としてカウント(各月&年間)
  • 設定した所定労働時間から1週間あたりの労働時間(年平均)を算出

マニュアル

操作方法

環境によってはマクロが無効になっているかも知れません。有効にする方法は公式サイトを確認して下さい。

Excel でマクロを有効または無効にする設定を変更する方法について説明します。 マクロのセキュリティ設定を変更して、ブ…

1.初期設定

[設定シート]から「年度」「年度始めの月」「週始めの曜日」「所定労働時間」をそれぞれ入力する。

2.祝日ダウンロード

「祝祭日取得」ボタンを押して祝日データをダウンロードする。

3.休日設定…一括設定

各項目毎に1年間全てを休日設定する。チェックを外すと設定が解除される。

4.休日設定…個別設定

設定したい日を選択し、右クリック。メニュー一番上から「休日に設定する」を選択する(複数選択可能)。解除する場合は同様に「設定を解除する」を選択する。

5.休日設定…一括解除

右クリックメニューから「全ての休日を解除する」を選択。

6.休日データ出力←NEW

「休日CSV出力」ボタンを押すと設定した休日がCSV形式でファイル出力できます(CSVファイルは本ファイルと同じフォルダに出力されます)。

初期設定部分はさわる頻度が少ないので横着して別シートでの入力にしました。休日設定部分はユーザビリティを考慮してマクロ機能を利用した処理を導入しています。

その他

  • ファイルの保存について…ダウンロードしたファイルは個人情報を削除して保存するように設定されています。保存時の確認ダイアログがうっとうしい場合は、「ファイル」→「情報」の「ブックの検査」の下にある「これらの情報を保存できるようにする」をクリックして下さい。
  • 書式について…最低限しか設定していません。ご自由に設定して下さい。ただしカレンダーの日付部分は休日数をカウントするのに書式を利用しているので「太字」は使用しないで下さい。
  • 初期設定について…初期設定データは入力される度に休日設定が解除されます(カレンダーが変化しても設定した休日は追従しない為)。初期設定終了までは休日を設定しないで下さい。
  • シート保護について…[カレンダー]シートは書式以外の項目にロックがかかっています。数式などを変更する場合はシート保護を解除して下さい。
  • ネットワークについて…祝日データ取得の為、ネットワークに接続されている必要があります(データを引っ張ってきて一時ファイルをMyDocumentフォルダ内に作成します。データ取得後、そのファイルは削除されます)。接続されていない場合「ダウンロード失敗」と表示されます。
  • 祝日カレンダー更新について…祝日カレンダーの更新は毎年2月中旬頃です。

不具合について

もし不具合があるようでしたら「お問い合わせフォーム」からご連絡下さい。善処します(仕様変更や要望は多ければ検討します)。

2020/4/9 一括設定でチェックとは違う曜日が選択される現象を報告いただいています。[ファイル]→[アカウント]→Office更新プログラム[更新オプション]→[今すぐ更新]でOfficeを更新することで問題が解決できたとの事です。同様の不具合が発生した場合は「Officeの更新」を試してください。

2021/7/5 64bitOfficeでコンパイルエラーが出る不具合を修正しました。情報提供下さった方、ありがとうございました。

2021/7/13 カレンダーシートをコピーして複数シートで利用したいとのご要望がありましたので対応しました(まだBeta版ですが)。

あとがき

白状すると、VBAの知識はほとんどありません(実話)。とにかく「ググる」ことと「動けばいい」の精神でなんとか完成させる事ができました。「動けばいい」程度のものをアップするのもどうかと思いますが、そこは暖かい目で見守っていただければ…

今回VBAコードを書きながら思ったのですが、素人でもググればなんとかなるな、と。コード自体は恥ずかしい部分もありますが、機能としては結構気に入っているので、次回以降、コード部分を機能単位で記事にしておさらいをしていくことにします。VBAに興味があるのに入り口でつまづいている人は是非読んでみてください。

2021/7/7追記:公開して大分時間も経ったのでコードを見直してみたところ、「これはヒドイ」と思ったので大幅にブラッシュアップしました。コード量を減らす事を目的として見直しましたが結構いい感じに減量できました。一部クラス化も行ったので、それについてどこかで記事をアップしたいと思います。

それでは、最後までご高覧いただきありがとうございました。