コスト0円でできる業務革命 - GASで実現した送迎予約管理システムの実例
<追記>NotebookLMで作成した音声解説
NotebookLMで本記事の内容を解説してもらいました
1. 概要
今回は、友人から依頼を受けて私が開発したGASによる小規模なシステムについてご紹介します。GASでも、これくらいの規模のシステム構築が十分に可能であることを、少しでも感じていただければ嬉しいです。
※セキュリティや守秘義務の関係で、内容は一部設定を変えてお伝えしています。
このシステムは、友人の会社が運営する複数の拠点(およそ100km圏内)を結ぶバス送迎サービスの予約管理を目的としたもので、朝早くから夜遅くまで定期的な間隔で運行されるバスのスケジュールに対応しています。運行規模は小型バス約10台、1時間ごとの定期運行で、毎日かなりの数の予約(事前予約・当日予約の両方)を処理しています。
2. 従来の方法:紙と電話、手作業による煩雑な運用
友人の会社では、以前は以下のような手順で運行管理業務を行っていました。
前日までの予約情報をCSV形式のデータで受領
各車両ごとの乗車リストを人手で作成
当日の追加予約やキャンセルは電話で受付し、内容は紙に手書きで記録
ドライバーは、各車両用のリストに加え、全車両分の電話受付リストのコピーを持参
すでに出発したドライバーには、個別に電話で連絡
課題
Excelの「フィルター+ソート」操作は難しく、誰にでも扱えるわけではなかった
電話での予約受付が多い日には1日50件程度にのぼり、人手による作業が多く、対応に時間と手間がかかっていた
手書きによる記録のため、記入ミスや漏れが頻発していた
ドライバーの担当コースが週ごとに変わるため、受付内容を伝える際に「便名 → コース → ドライバー」と、2段階の確認が必要だった
ドライバーに電話しても運転中で出られないことが多く、折り返しの連絡をもらう中で伝達ミスが起きやすかった
ドライバーは運転中にメモを取れないため、停車後に電話で確認することが多く、やり取りに時間がかかっていた
乗車確認は「前日予約リスト+手書きの当日リスト」の併用で行っていたため、確認ミスが発生していた
3. スプレッドシート × GAS × メール通知
友人からの相談を受け、私が開発したのが、GoogleスプレッドシートとGASを活用した自動送迎管理システムで、主な機能は以下のとおりです。
前日までの予約データ(CSV形式)をスプレッドシートに自動で取り込む
当日の電話受付内容も同じシートに入力
→ 入力と同時にドライバーのスマホへ自動でメール送信
(「便名 → コース → ドライバー」の変換作業が不要に)入力補助機能を随所に搭載し、オペレーターの負担を軽減
→ 顧客検索・便名検索・予約検索・バス停検索など、各種検索機能も充実前日・当日の予約情報をもとに、各車両用のリストを自動作成
→ 出発前に印刷でき、リアルタイム反映された最新情報をドライバーが持参可能電話受付時に出発時刻が迫っている予約については、**「電話連絡」**を自動で表示
→ 「ドライバー名、伝達内容」も自動で表示する機能を実装ドライバーがメールの内容を確認したら「確認」ボタンを押下
→ スプレッドシートに「確認済」と記録され、伝達漏れを防止「確認」が未押下のまま出発時間が近づくと、再度「電話連絡」が自動表示されるリマインド機能
ドライバーのスマホから、スプレッドシートに登録された最新情報をいつでも確認可能

導入による効果
フィルターや並べ替えなどの手作業が不要になり、作業効率が大幅に向上
リスト作成が自動化されたことで、誰でも簡単に対応できるようになった
ドライバーへの電話連絡が大幅に減少し、業務負担を軽減
情報伝達手段が増え(メール送信・スマホからの閲覧・必要に応じた電話)、伝達ミスがほぼ解消
ドライバーの乗車確認も、1枚の統合リストで完結するようになり、確認ミスがほぼゼロに
2重・3重の伝達漏れ防止機能を搭載しているため、人的ミスのリスクが大幅に減少
4.スプレッドシート運用で見えてきた課題
自由度の高いスプレッドシートですが、実際に“システム”として継続運用していく中で、いくつかの弱点も明らかになってきました。
(1) 関数による遅延と表示ズレ
スプレッドシートはサーバー上で動作するため、関数(特に QUERY / VLOOKUP / IMPORTRANGE など)の再計算に時間がかかることがある
初期段階では問題がなくても、運用中に関数エラーが発生するケースがある
GASでデータを読み込む際、画面上の見た目と異なる値を取得することがある
画面をリロードした際、一時的に誤った数値が表示され、数秒後に正しい値へ戻る現象も確認
→ GASがこの“誤表示の状態”で処理を行うリスクがあるこれらの現象は常に発生するわけではなく、ごく稀なため気づきにくい
(2) 「入力欄、チェックボックス」の操作ミスと参照エラー
入力欄やチェックボックスにはセルの保護がかけられないため、意図せず移動してしまうことがある
移動によって参照元とのリンクが切れ、参照エラーが発生する
元に戻したつもりでも、内部リンクが切れたままになり、正しく動作しない場合がある
こうした事象が発生すると、管理者による手動での修復作業が必要になる
5.本格導入から約1年、現在は改良版を開発中
このシステムは、まもなく導入から1年を迎えます。導入当初は「変化」への抵抗感から反対の声もありました(※いつの時代にも、どんな現場にも一定数存在します)。しかし現在では、すっかり現場に定着し、「もう元の運用には戻れない」と友人の会社の方々に言われるほど日常業務に根付いています。
一方で、実際の運用を通じて新たな課題も見えてきたため、友人から再び依頼を受け、現在はさらなる改善を目指して改良版の開発を進めています。
(1) 現在進行中の改良内容
GASによるWebアプリ化
→ 入力・出力をWeb画面に集約し、より快適で直感的な操作を実現スプレッドシートはデータベースとして活用
→ 表示処理や計算はGASで一元管理し、関数依存を極力排除する構成に見直し中より簡単でミスの少ない入力方式へ
→ UI(ユーザーインターフェース)を再設計し、チェックボックスや入力欄の誤操作を防ぐ仕組みを構築中

6.最後に
このシステムの当初の構想は、「電話で受け付けた内容をGASを使ってLINEに自動送信し、LINEからの返信を自動的にスプレッドシートへ記録する」というシンプルなものでした。しかし、開発の終盤で、APIを利用したLINE送信の無料枠が大幅に縮小されることが判明し、やむを得ず開発を一時中断することになりました。
再び友人から相談を受けた時には、前回のものに対してより多くの機能を盛り込みたく現在のような仕様としました。
スプレッドシートとGASを活用したこのシステムは、友人の会社がアナログ業務をITで効率化するために始めた小さな一歩でした。現在は、実際の運用で見えてきた課題をもとに、よりシンプルで確実な仕組みへと改良を進めています。
「業務を効率化したいけれど、何から始めればいいかわからない」
「手作業を減らしたいけれど、システム化は難しそう」
そんな方々にとって、少しでも参考になれば嬉しいです。
なお、このシステムはGoogleのサービスのみを利用しているため、運用コストは0円です。
