はじめに
こちらの記事は、プログラミングできない(したくない)方むけのコンテンツになります。
「出勤簿を作る」という記事でVBAによる出勤簿を作成していますが、プログラミングをしないで出勤簿を簡単に入力できる方法を紹介します。
プログラミングした出勤簿に比べて機能は劣りますが個人で使うなら便利さの恩恵を受けられるでしょう。

作り方

出勤簿のフォーマットは上のようになります。後から印刷する事も考えて、勤務表の内部に印刷設定をして、他の部分を除外するようにしています。

印刷からは除外された下部に勤務パターンを配置しておきます。ここでは勤務区分(D列)~深夜業(H列)までの範囲にしています。
下部の勤務区分(D列)~深夜業(H列)までの範囲をコピーして、出勤簿の日付の行に貼り付けるようにします。

ローテクですが、これだけでもかなり労力を軽減できるでしょう。
勤務区分(D列)~深夜業(H列)までの範囲は事前に決められる値なのに対し、欠勤、有給、残業に関してはその都度発生するものなので分けています。更に実働時間は数式マクロで計算しています。
セルの書式設定
日付と曜日部分に関しては、以下の記事を参照してください。
・月末の空白処理
具体的には、B1セルの値を参照して各日付と曜日を表示させています。
B1セルは、ユーザー定義で、 yyyy”年”m”月度”;@ としています。
値に関しては月初めの日付を ”2024/1/1” のような形式で入力します。

出勤時間、退勤時間は、ユーザー定義で、 [h]:mm としています。
これは時刻表示になります。

休憩時間、深夜業、実働時間、欠勤、有給、残業に関しては、セルの書式設定で数値の小数点以下2桁表示にしています。
数式マクロの設定
日付と曜日に関しては、数式マクロとセルの書式設定で表記しています。
詳しくは以下を参照してください。
・月末の空白処理
実働時間(I列)は、( 退勤時間 – 出勤時間 ) * 24 – 休憩時間 – 欠勤時間 となっています。
出勤時間と退勤時間は時刻表示なので時間数に変換するために24をかけています。
数式マクロの式は以下の様になります。
=(F5-E5)*24-G5-J5 (5行目の例)
36行目に関しては各項目の合計値を数式マクロで計算しています。
最後に
非常にローテクですが、筆者が初心者の頃、何とか効率よく入力できないか模索していた頃はこのようなアイデアで凌いでいました。
現在ではVBAでどのようにアイデアを実現するか考えるようになりましたが、実は業務改善で大事なのはアイデアの方だと思います。
プログラミングの能力が未熟でもアイデアがあれば突破口となります。
周囲にプログラムができる人が居ても、自分の望む機能を説明できなければ何もできません。
自分でプログラミングを始める時も、「こういう事がしたい」という明確なビジョンがあれば有利です。
面倒な作業を、数分で終わらせる事が出来るようになれば、きっとプログラミングが楽しいと思えるようになるはずです。
次は、今回のフォーマットを使って、ボタンで勤務時間を入力できるようにしてみましょう。
具体的にはマクロの記録を使ってプログラムコードを生成して、これを改造してみます。
プログラミング知識ゼロでも出来る方法なので是非挑戦してみてください。