DocumentApp.getActiveDocumentで勤怠管理を効率化!GASで実現する自動化

DocumentApp.getActiveDocumentで勤怠管理を効率化!GASで実現する自動化

勤怠管理は、企業にとって重要な業務の一つですが、手作業で行うには時間と手間がかかります。そこで、Google Apps Script(GAS)を活用することで、勤怠管理を自動化し、業務効率を大幅に向上させることができます。この記事では、DocumentApp.getActiveDocument関数を使用して、Googleドキュメントを勤怠管理に活用する方法を詳しく解説します。

DocumentApp.getActiveDocumentとは

DocumentApp.getActiveDocumentは、GASで現在開いているGoogleドキュメントを取得するための関数です。この関数を使用することで、ドキュメントの内容を読み込んだり、編集したりすることができます。

DocumentApp.getActiveDocumentの基本的な使い方

DocumentApp.getActiveDocument関数は非常にシンプルで、引数を必要としません。以下のように使用します。

function getActiveDocument() {
const doc = DocumentApp.getActiveDocument();
const body = doc.getBody();
Logger.log(body.getText());
}

上記のコードでは、現在開いているドキュメントを取得し、その本文の内容をログに出力しています。

勤怠管理への応用

DocumentApp.getActiveDocumentを勤怠管理に応用することで、以下のようなことが可能になります。

  • 従業員がGoogleドキュメントに出退勤時刻を記録し、GASで自動的に集計する
  • 特定のフォーマットで記述されたドキュメントから情報を抽出し、スプレッドシートに転記する
  • 休暇申請や残業申請をドキュメントで行い、承認フローをGASで自動化する

実装例1:出退勤時刻の自動集計

従業員がGoogleドキュメントに「出勤:9:00」「退勤:18:00」のように記述することで、GASがこれらの情報を抽出し、スプレッドシートに自動的に記録します。

function recordAttendance() {
const doc = DocumentApp.getActiveDocument();
const body = doc.getBody();
const text = body.getText();

// 出勤と退勤の時刻を抽出する(簡単な例)
const attendanceMatch = text.match(/出勤:(\d+:\d+)/);
const leavingMatch = text.match(/退勤:(\d+:\d+)/);

if (attendanceMatch && leavingMatch) {
const attendanceTime = attendanceMatch[1];
const leavingTime = leavingMatch[1];

// スプレッドシートに記録する処理(省略)
Logger.log("出勤時刻:" + attendanceTime + "、退勤時刻:" + leavingTime);
} else {
Logger.log("出勤または退勤の時刻が見つかりませんでした。");
}
}

カスタマイズ:正規表現を調整することで、様々な記述形式に対応できます。また、スプレッドシートへの書き込み処理を追加することで、実際に勤怠データを記録できます。

実装例2:休暇申請の自動処理

従業員がGoogleドキュメントで休暇申請を行い、承認者の承認を得るプロセスをGASで自動化します。

function processVacationRequest() {
const doc = DocumentApp.getActiveDocument();
const body = doc.getBody();
const text = body.getText();

// 申請者の名前、休暇期間、理由などを抽出する(例)
const applicantMatch = text.match(/申請者:(.*)/);
const startDateMatch = text.match(/開始日:(.*)/);
const endDateMatch = text.match(/終了日:(.*)/);
const reasonMatch = text.match(/理由:(.*)/);

if (applicantMatch && startDateMatch && endDateMatch && reasonMatch) {
const applicant = applicantMatch[1];
const startDate = startDateMatch[1];
const endDate = endDateMatch[1];
const reason = reasonMatch[1];

// 承認者にメールを送信する処理(省略)
Logger.log("休暇申請を受理しました。申請者:" + applicant + "、開始日:" + startDate + "、終了日:" + endDate + "、理由:" + reason);
} else {
Logger.log("必要な情報が見つかりませんでした。");
}
}

カスタマイズ:承認フローを実装するために、メール送信処理や、承認結果をドキュメントに反映する処理を追加できます。

よくある問題とトラブルシューティング

  • ドキュメントの取得に失敗する:DocumentApp.getActiveDocumentは、スクリプトがバインドされているドキュメントでのみ正常に動作します。スタンドアロンスクリプトで使用する場合は、DocumentApp.openByIdなどでドキュメントを指定する必要があります。
  • 情報の抽出がうまくいかない:正規表現が記述形式と一致しているか確認してください。また、Logger.logで抽出された内容を確認し、意図した通りに抽出できているか確認することが重要です。

カスタマイズ方法と応用例

  • 他のGoogle Workspaceサービスとの連携:スプレッドシート、カレンダー、Gmailなど、他のサービスと連携することで、さらに高度な自動化を実現できます。
  • UIの改善:GASのHTMLサービスを使用することで、より使いやすいインターフェースを作成できます。

まとめ

DocumentApp.getActiveDocumentとGASを組み合わせることで、勤怠管理を大幅に効率化できます。この記事で紹介した例を参考に、ぜひ自社の業務に合わせた自動化を検討してみてください。

PR

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。

CodeCampで理想の働き方を実現しよう