GAS Form.addTextItemで勤怠管理を効率化!残業申請フォーム自動化
勤怠管理は、企業にとって重要な業務の一つですが、従業員数が増えるほど、その管理は煩雑になりがちです。特に、残業申請などの個別申請は、承認フローが複雑で時間もかかり、業務効率を低下させる原因となります。そこで、Google Apps Script(GAS)のForm.addTextItem
を活用することで、残業申請フォームを自動化し、勤怠管理を大幅に効率化することができます。
Form.addTextItemとは?
Form.addTextItem
は、Googleフォームにテキスト入力項目を追加するためのGASの関数です。この関数を使うことで、フォームに自由記述形式の質問を追加できます。例えば、残業理由や作業内容などを入力してもらうのに適しています。
基本的な使い方
Form.addTextItem(question)
question
:フォームに追加する質問のテキスト(文字列)
勤怠管理における実装方法
GASを使って、残業申請フォームを自動化する具体的な方法を見ていきましょう。ここでは、残業時間、残業理由、申請者の名前を入力できるフォームを作成します。
実装例1:残業申請フォームの作成
function createOvertimeForm() {
// フォームを作成
const form = FormApp.create('残業申請フォーム');
// 質問項目を追加
form.addTextItem('氏名').setRequired(true);
form.addDateItem('日付').setRequired(true);
form.addTextItem('残業時間(時間)').setRequired(true);
form.addTextItem('残業理由').setRequired(true);
// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}
このコードを実行すると、「残業申請フォーム」という名前のGoogleフォームが作成されます。フォームには、「氏名」「日付」「残業時間(時間)」「残業理由」の4つの質問項目があり、「氏名」「日付」は必須項目として設定されています。作成されたフォームのURLは、GASのエディタのログに出力されます。
実装例2:スプレッドシートへのデータ連携
作成したフォームに入力されたデータをスプレッドシートに自動で記録するスクリプトです。
function onFormSubmit(e) {
// スプレッドシートを開く
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('残業申請');
// フォームの回答を取得
const responses = e.response.getItemResponses();
const name = responses[0].getResponse();
const date = responses[1].getResponse();
const overtime = responses[2].getResponse();
const reason = responses[3].getResponse();
// スプレッドシートにデータを書き込む
sheet.appendRow([name, date, overtime, reason, new Date()]);
}
このコードは、フォームが送信された際に自動的に実行されます。フォームの回答がスプレッドシートの「残業申請」というシートに追記されます。new Date()
で申請日時も記録されます。
実装例3:承認フローの自動化
残業申請があった際に、上長にメールで通知し、承認・否認の判断を促すスクリプトです。
function sendApprovalRequest(e) {
// フォームの回答を取得
const responses = e.response.getItemResponses();
const name = responses[0].getResponse();
const date = responses[1].getResponse();
const overtime = responses[2].getResponse();
const reason = responses[3].getResponse();
// 上長のメールアドレス
const managerEmail = 'manager@example.com';
// メールの件名と本文
const subject = '残業申請のお知らせ';
const body = `
${name}さんから残業申請がありました。
日付:${date}
残業時間:${overtime}時間
理由:${reason}
承認する場合は、[承認URL]をクリックしてください。
否認する場合は、[否認URL]をクリックしてください。
`;
// メールを送信
MailApp.sendEmail(managerEmail, subject, body);
}
このコードは、フォームが送信された際に、上長にメールを送信します。メールには、申請者の名前、残業時間、残業理由が含まれます。承認URLと否認URLは、別途実装する必要があります。(例:スプレッドシートに承認状況を記録し、承認・否認ボタンからGASを実行するなど)
よくある問題とトラブルシューティング
- フォームが作成されない: GASの実行権限が付与されているか確認してください。
- スプレッドシートへのデータ連携がうまくいかない: スプレッドシートのIDやシート名が正しいか確認してください。
- メールが送信されない: 上長のメールアドレスが正しいか、GASのメール送信権限が付与されているか確認してください。
カスタマイズ方法と応用例
- 残業時間の上限設定: 残業時間が一定時間を超える場合、アラートを表示するように設定できます。
- 部署ごとの承認フロー: 部署ごとに異なる上長にメールを送信するように設定できます。
- Slackへの通知: 残業申請があった際に、Slackに通知するように設定できます。
まとめ
GASのForm.addTextItem
を活用することで、残業申請フォームを自動化し、勤怠管理を大幅に効率化できます。今回紹介したコード例を参考に、自社の業務に合わせたカスタマイズを行い、より効率的な勤怠管理システムを構築してください。
CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう