入力インターフェースとして超優秀!Googleフォームで新規タスクを入力する

★気に入ったらシェアをお願いします!


schedule-task

photo credit: woodleywonderworks time managment for kids via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

タスクの期限やステータス管理、皆さんはどのように行われていますか?

Trelloをはじめチーム用のタスク管理ツールはたくさんありますが、例えばこんなツールはいかがでしょうか?

  • いつも使っているGoogleカレンダー上でタスクとその期限が確認できる
  • タスクが完了しているのかどうかカレンダー上で判別できる
  • そしてそれをチームで共有できる

このようなツールですが、Googleカレンダー、スプレッドシート、フォームとGoogle Apps Scriptで比較的簡単に作ることができます。

今回から何回かに分けて、チームで使えるGoogleカレンダータスク管理ツールを作っていきたいと思います。

初回は、タスクを追加する用のフォームの作成と編集、タスク管理用スプレッドシートの下準備についてお伝えしていきます。

Googleフォームの超基本的な使い方がおわかりいただけると思います。

では行ってみましょう。

スポンサーリンク

Googleカレンダータスク管理ツールの概要

本システムのおおまかな動きは以下の通りです。

  1. フォームから新規タスクを追加する
  2. フォームからの送信をトリガーにスプレッドシート上に新規タスクが追加される
  3. 同時にGoogleカレンダーにもタスクの予定が追加される
  4. スプレッドシートでステータスを「完了」に変更するとGoogleカレンダーのタイトルに【完了】が追加される

カレンダーの見た目としてはこのようなイメージとなります。

Googleカレンダーのタスク管理イメージ

完了したタスクには予定の名称の後に【完了】と追加されます。

本当は色を変えることで【完了】を表現したいのですが、Google Apps Scriptでは個々のイベントの色を変更するAPIは存在してなさそうです。残念です。

Googleフォームで新規タスクを追加する

まず、新規タスクの追加はGoogleフォームを利用しようと考えています。

スプレッドシートに直接打ち込むでも良いのですが、フォームにすることで

  • 入力が楽(特に日付と時刻)
  • 日付と時刻のバリデーションが不要になる(日付や時刻形式以外の入力を防げる)
  • フォーム送信時をトリガーにスクリプトを走らせることができる

というメリットがあり、スプレッドシートに直接書くよりもちょっぴり便利です。

アンケートはもちろんのこと、入力用インターフェースとしてGoogleフォームは非常に優秀ですので、ぜひアチコチでご活用くださいね。

スプレッドシートにフォームを挿入する

では、準備を進めていきましょう。

新規スプレッドシートを作成して、メニューから「挿入」→「フォーム」でフォームを挿入します。

スプレッドシートにフォームを挿入

これでスプレッドシートとリンクした形で新規のフォームが作られると同時に、「フォームの回答 1」というシートも追加になったかと思います。

フォームを編集する

では作成したフォームの内容を編集していきましょう。

メニューに「フォーム」が出現しているので、そこから「フォームを編集」を選択します。

スプレッドシートからフォームを編集

フォームの編集が新規タブで開きますので、質問を追加していきます。

Googleフォームの編集

今回の質問は

  1. タスク名:記述テキスト(短文)※必須
  2. 納期(日付):日付 ※必須
  3. 納期(時刻):時刻 ※必須

の3つとしました。他に必要に応じて、担当者名などを入れると良いかも知れません。

フォームの送信をする

右上の目玉マークのアイコンをクリックすると、その質問の入力画面を見ることができます。

Googleフォームをビューに切り替える

では、ちょっと試しに入力してみましょう。各項目を入力して「送信」です。

Googleフォームで回答をする

スプレッドシートに戻ると「フォームの回答 1」シートに先ほどの入力内容が追加されていますね。

Googleフォームからの入力をスプレッドシートへ追加

フォームの回答シートをタスク管理として利用

この「フォームの回答 1」シートを、そのままタスク管理用のシートとして使っていきます。

まず、E列とF列にそれぞれ「カレンダーID」「ステータス」という見出しを入力します。

これで、このシートのカラムは

|タイムスタンプ|タスク名|納期(日付)|納期(時刻)|イベントID|ステータス|

という構成になります。

ステータス欄の入力規制を設定する

「ステータス」が唯一スプレッドシート上に編集をする欄になるのですが、余計な情報が入らないように入力規則を設定しておきましょう。

F列を選択した状態で、メニューから「データ」→「入力規則」です。

スプレッドシートの入力規則

データの入力規則ウィンドウが開きますので、まず条件は「リストを直接指定」を選択します。

スプレッドシートの入力規則でリストを直接指定

続いて、条件のテキスト欄に「完了,未完」と記入、無効なデータの場合のラジオボタンは「入力を拒否」にチェック、そして「保存」です。

スプレッドシートの入力規則で入力を拒否する

これで「ステータス」欄には余計な情報が入らなくなりました。

まとめ

Googleフォームの作成と編集そしてスプレッドシートとの連携についてお伝えしました。

Googleフォームはアンケート以外にも、今回のような入力インターフェースとしてもかなり優秀です。

日時や時刻などの入力が楽ですし、想定外の入力をハジけるというメリットもあります。

さて、次回ですがいよいよGoogle Apps Scriptを使います。

フォームからの送信に応じて、カレンダーに予定を追加する方法です。

Googleフォームの送信があったときにイベントの予定をGoogleカレンダーに入れる
チームで使えるタスク管理ツールをスプレッドシート、フォーム、カレンダーで作成しています。今回はGoogle Apps Scriptを使って、フォームからの送信を受けてカレンダーにイベント追加する方法です。

どうぞお楽しみに!

連載目次:スプレッドシート、フォーム、カレンダーで作るタスク管理ツール

本シリーズはチームで使えるタスク管理ツールをG Suiteのスプレッドシート、フォーム、カレンダーを組み合わせて作ってしまおう!というものです。手軽にビジュアルでわかりやすいツールを作れますよ。
  1. 入力インターフェースとして超優秀!Googleフォームで新規タスクを入力する
  2. Googleフォームの送信があったときにイベントの予定をGoogleカレンダーに入れる
  3. Google Apps Scriptで値の変更をトリガーにしつつ変更されたセルの行番号と列番号を知る
  4. Google Apps Scriptでカレンダーのイベントタイトルを変更する方法