フォームに入力した情報をカレンダーに表示する

 

いろんな人にGoogle Calenderを入力してもらいたいんですが、カレンダーの入力方法がわからないとか言われて、いまは手作業でフォームなどに入力してもらったものをカレンダーに転記してます。なにかいい方法ないですかね?
で、カレンダーに共有した情報を見てもらって、また別の作業をしてもらうってこともあるんです。

フォームへの入力はできるんですよね?それならフォームに入力してもらった情報をGoogle App Scriptというのを使って、自動でGoogle Calenderに転記するようにしましょう。Google Formsだと入力したものをGoogle SpreadSheetsでも見られるので、それも使って情報共有をしましょう。

Google FormsとGoogle CalenderとGoogle SpeadSheetsで情報共有

 いろんな人にカレンダーの情報を追加してもらう必要があるけど、Google Calenderの操作ができないって人もいるっていうことでカレンダーの共有で入力が難しいっていう相談がありました。

 そこでフォームの入力なら何とかなるかなということで、直接カレンダーへの入力をせずにGoogle Formsで入力をしてもらって、その情報をカレンダーに登録して、さらにGoogle SpreadSheetで情報を共有するということで解決しました。

操作に慣れてない人がいるといろんなリスクも

 カレンダーの入力ってそんなに難しいとは思わないけども、慣れてない人だと間違って消してしまったりすることも十分に考えられます。そこでGoogle Formsを使ってGoogle Calenderに登録することにしました。Google Calenderを直接操作すると、誤って予定を削除する可能性がありますが、フォームを使って登録することで、そういったカレンダーの誤操作を防ぐことができます。

 思ってもみないことがおこるのが世の常だと思うので、こういう対策は大切かなと思います。

Google Formsを使えばSpreadSheetに自動で入力される

Google Formsを使うことによって、入力されたものをGoogle SpreadSheetでも確認できます。これはGoogle Formsの標準の機能なので特に難しい設定などはありません。

フォームの回答のタブのところにスプレッドシートのマークがありますので、そこをクリックすると回答の一覧がスプレッドシートで見ることができます。

実際にどうやって実現しているか?

フォームの入力内容をカレンダーに入力するには次の手順で実現しました。

1.Google Formsでフォームの作成
2.Formsの回答スプレッドシートを開く
3.スプレッドシートの拡張機能のメニューにあるApps Scriptを開く
4.Apps Scriptのエディタでコードを書く
5.Apps Scriptでトリガーの設定
6.完成

という、大きく分けて6つのステップで実現しています。

トリガーって何だ?

ところで、実現しているか?の5番目のトリガーって何?って思う人も多いかと思います。
コードを書くのは何となく必要だということがわかるかと思いますが、実はこの書いたコードをどのタイミングで実行するかというのがトリガーです。

実際にどんな感じでトリガーを設定しているかというと、こんな感じです。

実行する関数を選んで(実際には1つしかないので選ぶというものでもない)、カレンダーに入力するデータをどこから取ってくるか(ソースの選択)、どのイベントで実行するかっていうのを設定するわけです。

トリガーってピストルなどの引金って意味ですが、要はどういうタイミングで誰が引金を引くかというのを設定するわけです。

コードはどうすりゃいいんだ?

一番この中でハードルが高いのがコードを書くってことかと思います。ある程度慣れている人ならそれほど難しいものではありませんが、検索するとそれっぽい情報が出てくるかなと思います。

多分、「google forms カレンダーへ」というような感じで検索すると情報は出てくるんじゃないかと思います。ただ、だいたいうまいこと動かないこと多いんですよね。コードを一個ずつよく見ていくとなんとなく何をしているかってのがわかってくるかと思うので、あきらめずにエラーの内容なども検索してみて対応するとだいたい動くようになるかと思います。

フォーム・スプレッドシート・カレンダーとGAS、これだけで人件費の削減と利用方法が増える

例えばフォームを入力してもらったものを手作業でコピペをしてカレンダーに入力するぐらいなら、それほど時間もかからないかなって思いますよね。確かに時間はそれほどかからないですが、入力してもらったタイミングでコピペができるわけでもありません。もっと言うと、コピペもミスったりすることもあるし、人が介在することでそこでミスを起こすことがあります。なので自動化するとミスもなくなるし、コピペの細かい時間も不要になります。

さらに、スプレッドシート化することでそのデータをさらに情報を追加したり、共有したりといったことがやりやすくなります。また、スプレッドシートを別のシートで読み込む(=IMPORTRANGE() って関数使う)ことで、そのデータにさらに情報を付加することなども可能です。

自動化でコストパフォーマンスの高いことができ、さらに情報をさらに活用できるのでお勧めですよ。