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
を活用することで、残業申請フォームを自動化し、勤怠管理を大幅に効率化できます。今回紹介したコード例を参考に、自社の業務に合わせたカスタマイズを行い、より効率的な勤怠管理システムを構築してください。
未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?
未経験から始める!SNSデザインスクール