地方在住IT系ニート

bkds

Googleスプレッドシートで有給管理を自動化するツールを作成しました

作成の背景

有給休暇の残日数を手動で管理するのが面倒で、計算ミスも起きやすいです。 とくに付与日ごとに有効期限が異なる場合、どの付与分が先に失効するのかを追うのは手間がかかります。

そこでGoogleスプレッドシートとGoogle Apps Scriptを使って、入力するだけで自動計算してくれるツールを作成しました。 開発にはOpenCodeを使用しました。

機能

スプレッドシートの構成

入力が必要なのはA・B列のみです。C・F〜K列はスクリプトが自動で計算します。

項目内容
A日付付与日または利用日を入力
B増減数付与は正の数、利用は負の数を入力
C残日数自動計算
Dメモ任意の備考
F付与日自動生成
G付与日数自動生成
H使用済自動生成
I残日数自動生成
J失効予定日自動生成
Kステータス自動生成

セットアップ方法

1. スプレッドシートの準備

  1. Googleスプレッドシートで新規スプレッドシートを作成
  2. 1行目に以下のヘッダーを入力します
A1: 日付 B1: 増減数 C1: 残日数 D1: メモ F1: 付与日 G1: 付与日数 H1: 使用済 I1: 残日数 J1: 失効予定日 K1: ステータス

2. Apps Scriptの設定

  1. メニューから 拡張機能Apps Script を選択
  2. GitHubのappsscript.jsの内容をエディタにコピー&ペースト
  3. 保存(Ctrl+S / ⌘+S)をクリック

3. 権限の付与

  1. Apps Scriptエディタで 実行onOpen を選択して実行
  2. 承認画面が表示されたら「Review Permissions」をクリック
  3. Googleアカウントを選択して権限を許可

スプレッドシートに「有給管理」メニューが追加されていれば設定完了です。

使い方

有給を付与する

A列に付与日、B列に付与日数(正の数)を入力します。

A2: 2024/01/05 B2: 10

入力後、C列に残日数が自動計算され、F〜K列に付与日別の管理情報が表示されます。

有給を利用する

A列に利用日、B列に利用日数(負の数)を入力します。

A3: 2024/03/10 B3: -3

古い付与日から順に自動的に消費されます(FIFO方式)。

ステータスの判定ロジック

条件ステータス
残日数 ≤ 0使用済
失効日 ≤ 今日失効済
失効日 ≤ 今日 + 30日期限間近
その他有効

失効30日前になると「期限間近」と表示されるので、失効を見落とすリスクが減ります。

OpenCodeで開発して感じたこと

今回はOpenCodeを使って開発しました。

開発を通じて感じたのは、Planモードで設計をしっかり固めることの大切さです。 最初にPlanモードで「FIFO消費のロジック」「失効判定の条件」「スプレッドシートの列構成」といった仕様を詳細に詰めてからBuildモードに移ることで、手戻りなくスムーズに実装できました。

逆に設計が曖昧なままBuildモードで進めると、意図と異なるコードが生成されることもあるため、Plan→Buildの流れを意識することが重要だと感じました。

ソースコード

GitHubで公開しています。

https://github.com/bkds-hi/paid_leave_manager

MITライセンスなので自由に利用・改変できます。 バグ報告や機能要望はGitHub Issuesにてお知らせください。

<-- Back to home
にほんブログ村 IT技術ブログ IT技術メモへ PVアクセスランキング にほんブログ村