はじめに:教育現場の「一枚の紙」から始まったDXへの挑戦
教育現場、特に児童生徒一人ひとりへの丁寧なケアが求められる特別支援学校では、先生方が日々多くの業務に時間を費やしています。今回のシステム開発プロジェクトは、ある特別支援学校の養護教諭の先生から寄せられた、身体測定業務に関する切実な声から始まりました。
先生が直面していた課題は、主に以下の3点に集約されます。
- 業務の二重化と膨大な作業負荷: 毎月の測定データをまず記録用の原簿に記入し、その後、保護者へ通知するための個人別成長記録表に再度手作業で転記・グラフ化するという二重の作業が発生していました。生徒数が増えるほど、この作業時間は比例して増大します。
- 個人情報取り扱いにおける心理的・物理的リスク: 身体測定データは重要な個人情報です。紙媒体で個別に印刷し、手作業で配布する過程では、取り違えなどのヒューマンエラーが発生するリスクが常に存在し、担当教諭の大きな心理的負担となっていました。
- データの活用性の低さ: 紙で保管されたデータは、過去の記録を遡って成長の推移を分析したり、特定の傾向を把握したりすることが困難でした。デジタルデータとして一元管理し、容易に可視化・分析できる環境が求められていました。
「数値を入力するだけで、自動でグラフ化され、保護者にも安全に通知できる仕組みがあれば…」
この課題を解決するため、特別なソフトウェア導入や高額な費用を必要としない、Google Workspaceの標準機能であるGoogle Apps Script (GAS) とスプレッドシートを活用した、Webアプリケーション・システムの開発に着手しました。


システムの全体像:保護者と先生、双方に優しい設計
本システムは、保護者と教職員、それぞれの利用目的に合わせた2つのインターフェースを持つ、実用性の高い構成を目指しました。全体の流れは以下のようになっています。
中核となるデータベース:Google スプレッドシート
全てのデータはスプレッドシート上で一元管理されます。役割の異なる4つのシートで構成されており、情報の整理と拡張性を確保しています。
- 生徒マスタ: 生徒ID、氏名、性別、生年月日、現在の学年など、個人の基本情報を記録します。(下図参照)
- 測定データ: 生徒IDに紐づけて、測定年月日ごとの身長・体重を時系列で蓄積します。(下図参照)
- 確認記録: 保護者がいつデータを確認したかを記録し、学校側が閲覧状況を把握できるようにします。(後述文章参照)
- 標準値マスタ: 発育アドバイスの精度を高めるため、文部科学省等の公的統計データを格納します。(後述文章参照)


システムの頭脳:Google Apps Script (GAS)
スプレッドシートとユーザーインターフェース(Webアプリ/サイドバー)を繋ぐ、サーバーサイドのプログラムです。以下の主要な役割を担います。
- データアクセス: スプレッドシートから必要な情報を読み取り、書き込みます。
- ユーザー認証: 保護者IDとパスワードを検証し、適切なユーザーにのみ情報へのアクセスを許可します。
- ビジネスロジック: 受け取ったデータを加工(例:BMI計算、集計)し、HTMLに渡す処理を行います。
- HTML生成: テンプレートHTMLにデータを埋め込み、ユーザーのブラウザに表示させる最終的なWebページを生成します。
ユーザーインターフェース
- 保護者向けWebアプリケーション
スマートフォンやPCのブラウザからアクセスできる、個人専用の閲覧画面です。ログインすると、自身の子どもの成長グラフ、詳細なデータテーブル、専門的な発育アドバイスが表示されます。


- 養護教諭向けダッシュボード
スプレッドシートの画面右側に表示されるサイドバー形式の分析ツールです。全生徒を対象に、氏名や学年で瞬時に検索し、個別の成長データを保護者向け画面と同様の形式で詳細に確認できます。

開発過程における技術的課題とその解決策
開発は順風満帆ではなく、いくつかの重要な技術的課題に直面しました。ここでは、特に苦労した点とその解決策を共有します。
課題①:動的なデータ表示と集計ロジックの構築
保護者からの「過去のデータも見たい」、教諭からの「印刷しやすいレイアウトで集計したい」といった要望に応えるため、データ表示のロジックは何度も改良を重ねました。
【解決策】:
- クライアントサイド・フィルタリング: GAS側では常に全期間の生データを渡し、ブラウザ側(JavaScript)で「表示期間」プルダウンの選択に応じて表示するデータを動的にフィルタリングする方式を採用。これにより、表示を切り替えるたびにサーバー通信が発生するのを防ぎ、軽快な操作性を実現しました。
- 柔軟なデータ集計: JavaScript内に、選択された期間に応じて集計単位を切り替えるロジックを実装しました。「現在の学年」なら月ごと、「小学」なら学年ごとの前期・後期、といったように、ユーザーの意図に沿った形でデータを加工して表示します。この際、単なる平均値ではなく、期間内の「最後の測定値」を代表値として採用するなど、現場のニーズに合わせた細かい調整を行いました。
- データ不整合への対策: スプレッドシートへの手入力では、意図しない空白(スペース)が含まれることがあります。これが原因でフィルタリングが失敗する問題が発生しました。GAS側でデータを読み取る際に、必ず.trim()メソッドで文字列の前後の空白を除去する処理を加えることで、データの堅牢性を高めました。
課題②:付加価値の高い発育アドバイスの生成
当初は成人向けのBMI基準で簡易的なコメントを生成していましたが、成長期の子どもには不正確であるという課題がありました。またローレル指数は、中学生までの指数となっているので高等部の生徒については当てはまりませんでした。
【解決策】: 文部科学省の「学校保健統計調査」の年齢別・性別ごとの平均値と標準偏差を「標準値マスタ」シートに格納。JavaScript側で、生徒の生年月日と測定日から測定時の満年齢を算出し、対応する標準値を取得。これを用いてSDスコアと肥満度を計算し、「標準的な範囲です」「平均より高めです」といった、より客観的でパーソナライズされたアドバイスを自動生成するロジックを構築しました。

システムの利用フロー
【養護教諭の利用フロー】
- データ入力: 毎月の身体測定後、「測定データ」シートを開き、生徒ID、測定日、身長、体重の値を追記します。タブレット端末から入力すれば、測定しながらリアルタイムで記録が可能です。
- データ分析(ダッシュボード): スプレッドシートのメニューから「養護教諭メニュー」>「ダッシュボードを開く」を選択。画面右に表示されるサイドバーで、氏名や学年で確認したい生徒を検索し、クリックします。
キャプション例: サイドバーで生徒を検索し、クリックすると詳細データが表示される。 - 年度更新: 年度末に一度だけ、「生徒マスタ」シートの「学年更新」ボタンをクリックします。これにより、全在籍生徒の学年が一括で更新されます。
[画像]
キャプション例: 「学年更新」ボタンを押すだけで、年度更新作業が完了する。


【保護者の利用フロー】
- アクセスとログイン: 学校から通知されたURLにスマートフォンやPCでアクセスし、個別に配布された保護者IDとパスワードでログインします。(初回アクセス時のみ、Googleアカウントによる認証許可が求められます)
- 成長の確認: ログインすると、まず現在の学年における成長の様子がグラフとテーブルで表示されます。画面右上の「表示期間」を切り替えることで、入学からの全期間の記録を遡って見ることも可能です。
- 詳細な評価の閲覧: グラフの下には、全国の同年齢の子どもと比較した客観的な発育アドバイスが表示され、成長のペースをより深く理解するのに役立ちます。
- 学校への確認報告: 内容を確認後、「確認しました」ボタンを押すことで、学校側に閲覧した旨が記録として送信されます。
- 記録の保存: 「印刷」ボタンを押すと、表示されている画面をA4用紙に適した形式で印刷できます。大切な成長の記録として、ご家庭で保管することができます。






結論と今後の展望
本システムの開発は、教育現場の具体的な課題に対し、GASとスプレッドシートという汎用的なツールがいかに有効な解決策となり得るかを示す好例となりました。この取り組みにより、教職員の業務負担軽減、個人情報取り扱いに関するリスクの低減、そして保護者との円滑な情報共有が実現されることを期待しています。
何より、このシステムが先生方の子どもたち一人ひとりと向き合う時間を増やし、保護者の方が我が子の成長をより深く理解し喜ぶための一助となることを願っています。
今後は、さらなる要望に応じて、例えばアレルギー情報や健康診断の結果なども統合できるような、より包括的な健康管理プラットフォームへと発展させていく可能性も考えられます。この開発事例が、同様の課題を抱える他の教育機関の一助となれば幸いです。
このファイルはダウンロードできます!(会員限定)
プロ・グループ会員の方はこちら
一般会員の方はここから




コメント