GAS Form.addCheckboxItemで出席管理を効率化!教育現場向け完全ガイド

GAS Form.addCheckboxItemで出席管理を効率化!教育現場向け完全ガイド

教育現場における出席管理は、時間と手間がかかる業務の一つです。特に、大人数のクラスでは、毎回の出席確認に多くの時間を費やしてしまい、授業時間の有効活用を妨げる要因にもなりかねません。そこで、Google Apps Script(GAS)のForm.addCheckboxItemを活用することで、これらの課題を解決し、出席管理を大幅に効率化することができます。

本記事では、GASのForm.addCheckboxItem関数を用いて、Googleフォームを使った出席管理システムを構築する方法を、教育現場での利用に特化して解説します。具体的なコード例やトラブルシューティング、カスタマイズ方法などを紹介することで、GAS初心者の方でも、すぐに実践できる内容となっています。

Form.addCheckboxItemとは?

Form.addCheckboxItemは、Googleフォームにチェックボックス形式の質問項目を追加するためのGASの関数です。この関数を使うことで、複数の選択肢から該当するものを選択させる質問を作成できます。出席管理においては、生徒の名前をリストアップし、出席している生徒にチェックを入れてもらうことで、効率的な出席確認が可能になります。

基本的な使い方

Form.addCheckboxItem関数の基本的な使い方は以下の通りです。

function addCheckboxItemExample() {
// フォームを取得
const form = FormApp.getActiveForm();

// チェックボックスの質問を追加
const item = form.addCheckboxItem()
.setTitle('出席者を選択してください')
.setChoices([
form.createChoice('生徒A'),
form.createChoice('生徒B'),
form.createChoice('生徒C')
])
.setRequired(true); // 出席を必須にする場合
}

上記のコードでは、フォームに「出席者を選択してください」というタイトルのチェックボックス質問を追加し、生徒A、生徒B、生徒Cという選択肢を設定しています。setRequired(true)を設定することで、回答を必須にすることも可能です。

出席管理システムの実装

ここでは、Form.addCheckboxItem関数を使って、具体的な出席管理システムを構築する手順を解説します。

1. Googleフォームの作成

まず、Googleフォームを作成します。フォームのタイトルは「出席確認」など、分かりやすいものにしましょう。

2. GASコードの記述

次に、GASのコードを記述します。以下のコードは、スプレッドシートに登録された生徒の名前を読み込み、フォームにチェックボックスとして追加する例です。

function createAttendanceForm() {
// スプレッドシートから生徒リストを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('生徒リスト');
const range = sheet.getDataRange();
const values = range.getValues();

// フォームを取得
const form = FormApp.getActiveForm();

// 既存の項目を削除(毎回新しいフォームを作成する場合)
let items = form.getItems();
for(let i = 0; i < items.length; i++){
form.deleteItem(i);
}

// チェックボックスの質問を追加
const checkboxItem = form.addCheckboxItem();
checkboxItem.setTitle('出席者を選択してください');

// 生徒リストをチェックボックスの選択肢として追加
const choices = [];
for (let i = 1; i < values.length; i++) { // 1行目はヘッダーとしてスキップ
const studentName = values[i][0]; // 1列目に生徒名がある場合
choices.push(form.createChoice(studentName));
}
checkboxItem.setChoices(choices);

// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}

このコードでは、まずスプレッドシートから生徒リストを取得し、それをチェックボックスの選択肢としてフォームに追加しています。getSheetByName('生徒リスト')の部分は、生徒リストが記載されたシートの名前に合わせて変更してください。

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

生徒リストを記載したスプレッドシートを用意します。シート名はコードに合わせて「生徒リスト」としてください。1列目に生徒の名前を記載します。

4. トリガーの設定

毎日決まった時間にフォームが自動的に作成されるように、トリガーを設定します。GASのエディタから「トリガー」を選択し、時間主導型のトリガーを設定してください。

実用的なコード例

ここでは、さらに実用的なコード例をいくつか紹介します。

例1:欠席理由の入力欄を追加

チェックボックスに加えて、欠席理由を入力できるテキスト欄を追加する例です。

function createAttendanceFormWithReason() {
// フォームを取得
const form = FormApp.getActiveForm();

// チェックボックスの質問を追加
const checkboxItem = form.addCheckboxItem()
.setTitle('出席者を選択してください')
.setChoices([
form.createChoice('生徒A'),
form.createChoice('生徒B'),
form.createChoice('生徒C')
]);

// 欠席理由のテキスト質問を追加
const textItem = form.addTextItem()
.setTitle('欠席理由(任意)');
}

例2:フォームの回答をスプレッドシートに記録

フォームの回答をスプレッドシートに自動的に記録する例です。

function onFormSubmit(e) {
// スプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('回答');

// フォームの回答を取得
const responses = e.response.getItemResponses();

// 回答をスプレッドシートに書き込む
const row = [];
for (let i = 0; i < responses.length; i++) {
row.push(responses[i].getResponse());
}
sheet.appendRow(row);
}

このコードは、フォームが送信された際に実行されるトリガーを設定する必要があります。GASのエディタから「トリガー」を選択し、フォーム送信時のトリガーを設定してください。

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

問題1:生徒リストが更新されない

スプレッドシートの生徒リストを更新しても、フォームに反映されない場合は、GASのコードが正しく実行されているか確認してください。また、トリガーが正しく設定されているかも確認しましょう。

問題2:フォームの回答がスプレッドシートに記録されない

フォームの回答がスプレッドシートに記録されない場合は、onFormSubmit関数のトリガーが正しく設定されているか確認してください。また、スプレッドシートの名前がコードと一致しているかも確認しましょう。

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

応用例1:出席率の自動計算

スプレッドシートに記録された回答を元に、生徒ごとの出席率を自動的に計算するシステムを構築できます。

応用例2:欠席連絡の自動送信

欠席理由が入力された場合に、保護者へ自動的にメールを送信するシステムを構築できます。

まとめ

GASのForm.addCheckboxItem関数を活用することで、教育現場における出席管理を大幅に効率化することができます。本記事で紹介したコード例やトラブルシューティングを参考に、ぜひGASを使った出席管理システムを構築してみてください。

さらに、本記事で紹介した内容を応用することで、成績管理や課題配布など、様々な教育現場の業務を効率化することができます。GASを積極的に活用し、より質の高い教育を実現しましょう。

PR

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

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