有給管理カオスと総務の疲弊
給与計算で疲弊した25日の夕方のことです。営業部から「来週休みたいのですが、私の有給は何日残っていますか?」というメールが届きました。ファイルサーバーの奥深くにある重いExcel台帳を開きます。過去のメール履歴や手元の紙の記録と突き合わせながら、計算機を叩きました。この1件の確認作業だけで30分が溶けてしまいます。眼精疲労で目の奥が痛むほどでした。

従業員20名規模の会社では、有給申請の管理がカオスに陥りがちです。申請ルートが統一されていないことが、その原因でした。メールで申請を送る方もいらっしゃいます。一方で、紙の申請書を無言で机に置いていく方もいます。有給申請が届くたびに、総務担当者はExcelの有給台帳をわざわざ開きます。該当する社員の名前を検索し、手作業で残日数を計算しました。そして、メールで返信します。月に5件から10件の申請が重なる繁忙期は、まさに悲惨な状況でした。
有給申請の複雑化
「今何日残っているか」という単純な質問に答えるだけでも、1日の午前中がまるごと消えてしまうこともあります。
計算の根拠となるデータは、そこかしこに散らばっています。そのため、確認作業の負荷は指数関数的に跳ね上がりました。こうした構造的な問題が、総務の貴重な時間を奪い続けていたのです。
多経路申請と情報管理の破綻
申請が複数の経路で届くと、台帳と現実の間に深刻なズレが生じます。これが本当の恐ろしさでした。どちらかの経路での確認が漏れれば、たちまち台帳は正確性を失ってしまいます。特に困ったのは、廊下ですれ違いざまに「明日休みます」と言い残していく口頭申請の存在です。後で紙に書いてもらう運用にしていました。しかし、営業担当者は外出続きで申請書の提出を後回しにしがちでした。結果として、台帳への転記が数日から1週間も遅れるケースが頻繁に発生しました。
申請経路の混乱と台帳の不一致

ある日、経理部長から指摘を受けました。「先月休んだ分が台帳から引かれていないぞ」とのことでした。急いでメールの受信トレイを数週間分遡りました。ゴミ箱まで検索し、ようやく該当の連絡を見つけました。冷や汗をかきながらExcelを修正しました。自分の管理能力を疑われているような重苦しい気分を一日中引きずることになりました。
「本当の残日数」が担当者も含めて誰にも分からない状態が続きました。このような不透明な状態が続くと、社員からの不信感も高まってしまいます。「以前申請したのに反映されていない」「計算が間違っているのではないか」という指摘も受けるようになりました。情報は一元化されて初めて価値を持つものです。申請経路が複数ある時点で、データ管理としては既に破綻していたのだと痛感しました。
申請窓口のGoogleフォーム一本化
この泥沼のような状況から抜け出すため、受付窓口を完全に一本化することに決めました。解決策として選んだのはGoogleフォームです。スマートフォンから簡単にアクセスできる利便性の高さが決め手となりました。申請者名、取得日、取得種別、申請理由という必要最小限の項目だけを配置しました。特にこだわったのは、取得種別の設計です。自由記述にすると「午後から休みます」といった曖昧な入力が増えてしまいます。これは後でシステム処理する際に、致命的なエラーの原因となるためです。
フォーム項目と運用ルールの厳格化

そのため、全休、午前半休、午後半休を必ずプルダウンから選ばせる仕組みを採用しました。これで0.5日単位の集計を正確に行うことができます。新しいフォームのURLは、社内の申請マニュアルやチャットの固定メッセージに掲載しました。そして、全社員に向けて案内を出しました。「今後、メールや紙、口頭での有給申請は一切受け付けません」と伝えました。例外を認めてしまえば、元の木阿弥になってしまうからです。
退路を断つことでしか、古い習慣は変えられないのだと感じています。
GASで有給申請・残日数管理を完全自動化
フォームを作るだけでは、手作業の転記が残ってしまいます。そのため、Google Apps Script(GAS)を使って自動化処理を構築しました。肝となるのは「onFormSubmit」というトリガー機能です。社員がフォームの送信ボタンを押した瞬間に、プログラムが自動的に走り出します。まず、スクリプトが送信された申請者名をキーにして、有給台帳のスプレッドシートを検索します。

該当する社員の行を見つけたら、「取得済日数」の列に取得日数を加算します。このとき、フォームで「半休」が選ばれていれば、自動的に0.5として計算するロジックを組み込みました。続いて「付与日数」から「取得済日数」を引きます。そして、現在の正確な残日数を計算してセルを上書きします。
VBA・Pythonをもっと本格的に学ぶなら
VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。
有給残日数自動通知
さらに、更新された残日数の情報を添えて、GmailApp.sendEmail機能で申請者本人と上長へ確認メールを自動送信するように実装しました。社員から見れば、申請した直後に「残りの有給はあと何日です」という通知が届く仕組みです。総務が重いExcelを開いて手計算する苦行は、この時点で解消されました。GASを体系的に習得したい場合は、Amazonで実務向けのGAS解説書を一冊手元に置くのが早道だと思います。侍エンジニアのようなマンツーマン指導型スクールで実践形式で身につける方法も、確実なスキル習得の選択肢ですね。
有給残日数マイナスとエラーハンドリング
完璧なシステムを作ったつもりでした。しかし、運用開始からわずか2週間でトラブルに見舞われました。台帳の残日数がマイナスになるという異常事態です。原因はシンプルでした。ある社員が自分の残日数をあまり確認せずに申請を出してしまったためです。初期のGASのコードには、ひたすら日数を加算する機能しかありませんでした。残日数がゼロ以下になる申請をブロックする検証ロジックが抜け落ちていたのです。

朝イチで台帳を確認したときのことです。営業担当者の残日数セルに「-1.5」という数字が表示されているのを見つけ、血の気が引きました。システムが勝手にマイナス処理をし、本人に「申請完了」のメールまで送ってしまっていました。そのため、慌てて電話で謝罪と取り消しの説明をする羽目になりました。
失敗から学ぶエラーハンドリング
プログラムは指示されたことしか実行しません。上限チェックを怠ると、システムは平気で論理破綻を引き起こします。この失敗を受け、すぐさまコードを修正しました。申請された日数を引いた結果が0未満になる場合、台帳への書き込みを即座に中断させるようにしました。そして、エラーを検知した際には、GmailApp.sendEmailを利用します。申請者本人と総務担当者には「残日数不足のため申請を却下しました」という警告メールを飛ばす処理を追加しました。人間が犯しやすいミスをシステム側で防ぐこと。エラーハンドリングの重要性を身をもって学んだ体験でした。
GASで有給管理自動化
属人的な確認作業に依存していた有給管理も、手順を踏むことで確実に自動化できます。最初のステップは、Googleフォームを使って申請の受け口を一つに絞ることです。ここで取得種別のプルダウンを用意します。半休と全休をシステムが判別できるようにするのです。次のステップでは、GASのonFormSubmitトリガーを活用します。そして、台帳の自動更新を実装します。
リアルタイムでの残日数計算と確認メールの送信を組み合わせることで、総務の負担は劇的に下がります。最後の仕上げとして、残日数不足のチェックロジックを必ず組み込んでください。マイナス計上を未然に防ぎます。そして、警告メールを飛ばす安全網があってこそ、システムは現場で使い物になるのです。
GASで広がる業務改善の未来
このプロセスを完了させたことで、あの忌まわしい問い合わせ対応はゼロになりました。手作業による転記ミスに怯える日々も過去のものとなりました。今回構築したようなGASを活用した業務改善は、他の定型業務にも応用が効きます。例えば、経費精算の手間を省く仕組みがあります。社内アンケートの自動集計や、社員台帳のデータベース化なども可能です。身近な課題から少しずつ手を付けていくことで、オフィス全体の景色は確実に変わっていくはずです。
関連リンクとチェックリスト
私はAmazonで評判の良いGAS関連書籍を読み込みました。ネット上のサンプルコードを片っ端から試しながら、少しずつスクリプトを育てていきました。プログラミングの初心者だった私でも、情報を組み合わせればここまでできます。これは大きな自信につながりました。
自動化による業務改善効果
この自動化システムを導入して以来、総務の有給管理業務は劇的に改善されました。まず、有給残日数に関する問い合わせがゼロになりました。社員はいつでもシステム上で最新の残日数を確認できます。そのため、総務へ問い合わせる必要がなくなったのです。これにより、問い合わせ対応に費やしていた時間が丸ごとなくなりました。他の重要な業務に集中できるようになったのです。
問い合わせの激減と給与計算の効率化
次に、月末の給与計算業務が格段に楽になりました。以前は、給与計算前に有給台帳の確認と修正に膨大な時間を費やしていました。しかし、GASによる自動集計システムを導入してからは、常に正確なデータが反映されます。そのため、最終確認の時間が大幅に短縮されました。集計ミスによる再計算や、指摘を受けて修正するといったストレスも一切なくなりました。
さらに、このシステムは社員の有給取得状況の把握にも役立っています。年間を通して取得状況が可視化されます。そのため、特定の社員に偏っていないかを確認できます。あるいは、取得が進んでいない社員がいないかといった状況も、すぐに把握できるようになりました。
学習サービスとアンケート
このスキルを活かしてさらに前へ進むなら
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。
無料プレゼント
Excel業務を自動化する前に確認するチェックリスト(PDF)
自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。
無料でチェックリストを受け取る¥980 ミニキット
コピペで動かせる3スクリプト+自動化チェックリスト
最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。
ミニキットを見る(¥980)
