GASで勤怠管理を効率化!Form.addMultipleChoiceItemで柔軟な選択肢を作成

GASで勤怠管理を効率化!Form.addMultipleChoiceItemで柔軟な選択肢を作成

勤怠管理システムは、企業にとって不可欠なツールですが、従業員の多様な働き方に対応するためには、柔軟な設定が求められます。特に、休暇申請や残業申請など、状況に応じた選択肢を提供できると、管理業務を大幅に効率化できます。本記事では、Google Apps Script(GAS)のForm.addMultipleChoiceItem関数を利用して、勤怠管理フォームに柔軟な選択肢を追加する方法を解説します。

Form.addMultipleChoiceItemとは?

Form.addMultipleChoiceItemは、Googleフォームにラジオボタン形式の質問項目を追加するGASの関数です。この関数を使うことで、ユーザーは事前に定義された選択肢の中から一つを選ぶことができます。勤怠管理においては、休暇の種類(有給、慶弔、病欠など)や残業理由などを選択肢として提示し、従業員が簡単に申請できるようにします。

勤怠管理における具体的な実装例

1. 休暇申請フォームの作成

休暇申請フォームに、休暇の種類を選択するラジオボタンを追加する例です。

function createVacationRequestForm() {
// フォームを作成
let form = FormApp.create('休暇申請フォーム');

// 休暇の種類を選択する質問を追加
let vacationType = form.addMultipleChoiceItem()
.setTitle('休暇の種類を選択してください')
.setChoiceValues(['有給休暇', '慶弔休暇', '病気休暇', 'その他']);

// フォームのURLを表示
Logger.log(form.getPublishedUrl());
}

このコードを実行すると、「休暇の種類を選択してください」という質問項目が追加され、ユーザーは「有給休暇」「慶弔休暇」「病気休暇」「その他」の中から一つを選択できます。

2. 残業申請フォームの作成

残業申請フォームに、残業理由を選択するラジオボタンを追加する例です。

function createOvertimeRequestForm() {
// フォームを作成
let form = FormApp.create('残業申請フォーム');

// 残業理由を選択する質問を追加
let overtimeReason = form.addMultipleChoiceItem()
.setTitle('残業理由を選択してください')
.setChoiceValues(['緊急対応', 'プロジェクト対応', 'その他']);

// フォームのURLを表示
Logger.log(form.getPublishedUrl());
}

このコードを実行すると、「残業理由を選択してください」という質問項目が追加され、ユーザーは「緊急対応」「プロジェクト対応」「その他」の中から一つを選択できます。

3. 複数選択肢の追加と詳細設定

Form.addMultipleChoiceItemでは、setChoiceValuesメソッドを使って複数の選択肢を一度に追加できます。また、setRequired(true)メソッドを使うことで、必須項目に設定できます。

function createAttendanceForm() {
// フォームを作成
let form = FormApp.create('勤怠管理フォーム');

// 出勤・退勤時間を選択する質問を追加
let workType = form.addMultipleChoiceItem()
.setTitle('出勤・退勤')
.setChoiceValues(['出勤', '退勤'])
.setRequired(true); // 必須項目に設定

// フォームのURLを表示
Logger.log(form.getPublishedUrl());
}

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

選択肢が正しく表示されない

setChoiceValuesメソッドに渡す配列が正しい形式であるか確認してください。配列の要素が文字列であることを確認してください。

フォームが正常に動作しない

GASの実行権限が正しく設定されているか確認してください。また、コードにタイプミスがないか、APIの呼び出しが正しいかを確認してください。

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

選択肢の動的な変更

スプレッドシートのデータに基づいて選択肢を動的に変更することができます。例えば、部署名やプロジェクト名をスプレッドシートから読み込み、それを選択肢として表示することができます。

function createDynamicForm() {
// スプレッドシートから部署名を取得
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName('部署一覧');
let departmentNames = sheet.getDataRange().getValues().flat();

// フォームを作成
let form = FormApp.create('部署選択フォーム');

// 部署名を選択する質問を追加
let department = form.addMultipleChoiceItem()
.setTitle('部署を選択してください')
.setChoiceValues(departmentNames);

// フォームのURLを表示
Logger.log(form.getPublishedUrl());
}

条件分岐によるフォームのカスタマイズ

ユーザーの選択に応じて、表示する質問項目を変更することができます。例えば、残業理由として「その他」が選択された場合に、具体的な理由を記述するテキストボックスを表示することができます。

まとめ

Form.addMultipleChoiceItem関数を使うことで、勤怠管理フォームに柔軟な選択肢を追加し、業務効率化を図ることができます。本記事で紹介したコード例を参考に、ぜひあなたの勤怠管理システムに導入してみてください。選択肢を動的に変更したり、条件分岐でフォームをカスタマイズすることで、さらに高度なシステムを構築することも可能です。

PR

未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?

未経験から始める!SNSデザインスクール