目次
原本ファイルに意見を記載してもらって集約することの欠点
ここでは、小さなグループがくつか集まって行うイベントでの情報とりまとめを想定してみましょう。たとえば、夏祭りでのイベント出場各団体の意見とりまとめとか、団体旅行での各グループの参加人数とりまとめなど・・・。
こうした状況で何かの情報をとりまとめる場合、団体ごとの内部事情で情報提出が遅れたり、再回答が続いたり、とにかく情報が錯綜して最新情報がなかなか把握できないものです。
解決策としては原本となるファイルを1つ用意し、各団体で所定の位置に直接書いてもらうのが理想です。ところが、ファイルを長時間オープン状態にして他者が書き込めなくなったり、他の団体の情報をうっかり消してしまったり、台帳がいつのまにか2重化していて原本が分からなくなったり、という不都合がしばしば起こります。
GooglスプレッドシートとGASを使ってこれを解決してみましょう!
Googleスプレッドシートで管理するメリット
Googleスプレッドシートで公開設定して使用すればこれらの問題がかなり改善されます。
- 共同作業が前提のアプリなので、他者が編集中でロックが掛かってしまう問題はない。
- 常に同時編集できるので最新ファイルの2元化問題も発生しない。
- 端末を問わず使用できるのでユーザーの回答機会が多く、集約が早い可能性が高い。
もっとも、そのままのスプレッドシートの場合、スマートフォンならアプリをインストールする手間をユーザーに強いること、PCならクライアント側のレスポンスが悪いというデメリットがあります。
さらに大きな問題は、ユーザーが他人のデータを意図せず(うっかり)編集してしまう事です。
こうした欠点を補うため、Google Apps Script (GAS)で意見集約専用のフォームを作ってみたいと思います。
GASによる他人のデータ編集防止の方法
ここでは複数団体が何かのイベントを企画し(学園祭などのイメージ)、幹事さんが各団体の意見を募っているシーンを想定します。
意見集約をEメールで行うことはよく行われますが、特に団体相手の場合、Eメールでは以下の理由により幹事さんの手間が大きい事が考えられます。
- 各団体内での意見統一が遅かったりして回答の足並みが揃わない
- 団体内で参加者が変わって再回答する事がしばしばある
- 団体側は状況を見ながら回答したい要望がある
- 幹事側は集約して回答状況把握する手間がある
こうした手間を省くため、原本ファイルに書いてもらうというのが非常に有力な方法です。
そこでGoogleスプレッドシートに書き込んでもらうのが良いのですが、この場合前述の様に、他人のデータを変更させない事がとても大切です。各自の専用ファイルを用意したり、Googleフォームで自動作成できるアンケートフォームを利用するのも手ですが、ここではあくまで原本ファイル以外に記載せず解決する方法を探ってみたいと思います。
ひとつの解決策として、ユーザー各人に書き込み用パスワードを通知した上で、パスワードを入れるとそのユーザーの指定エリアだけが編集可能になるという方法が考えられます。
GASでこの仕組みを実装してみましょう!
ユーザー毎に編集可能な範囲を分かれたテーブルをGASで実装する
GASでの実装例をご覧にいれます。まず最初にアクセスすると以下の様にパスワードを入れる画面が表示されます。(このパスワードは各団体に通知しておくものとします)
自分の団体用のパスワードを入力欄にいれて [送信する] ボタンを押すと・・・
自分の編集するエリアだけが編集可能状態で表示されます。Aさんの領域以外は、参照はできますが編集できません。
ここではパインチームの代表のAさんが、回答したデータ(例では「参加人数」)を再回答するものとします。原本のGoogleスプレッドシートでは現在参加人数は11人です。
Aさんんが酸化人数を修正して、 [書込み] ボタンを押すと、「書き込みました」というレスポンスが返ってきます。
原本を見ると数字が変わっています。
如何でしょうか。これなら幹事さんも集約が楽だと思います。
これは前の記事で紹介したテーブル形式のフォームを少し改造すると実装可能ですが、詳しいプログラムの内容と実装方法は次の記事でご紹介します。