タスクリスト(TO DO)の利用 (3/6)
作成:2012-06-24 10:30
更新:2012-06-24 10:30
更新:2012-06-24 10:30
■TaskListからTaskを取得する
タスクリストにまとめられているそれぞれのタスクは、「Task」オブジェクトとして扱われます。これらは、TaskListより扱いが少々面倒くさいのです。おそらくみなさんの持つイメージとしては、「TaskListが得られたんだから、そこから保管されているTaskを取り出せばいいだけだろう」という感じで考えているかも知れません。
が、実はTaskは、TaskListの中にはありません。TaskとTaskListは、それぞれ別々にTasksの中で管理されているのです。では、これもTask取得までの流れを整理しましょう。
1. TaskListを取得し、IDを得る
これは既に説明しましたね。まず必要なのはタスクが保管されているTaskListオブジェクトを取得し、そのIDを取り出すことです。このIDでTaskはまとめられているのです。
2. TasksCollectionを得る
3. TasksCollectionからTask/Tasksを得る
もう1つの「list」は、TasksCollectionに保管される全Taskをまとめて管理する「Tasks」オブジェクトを返します。サービスの基本オブジェクトであるTasksと同じ名前ですが、これは別のオブジェクトなのです。ややこしいですが、間違えないようにしてください。
4. Task配列を取得する
――このように、タスクを取得するためには、まず取り出すタスクが保管されているタスクリストのIDを取得する必要があります。以下に、1つ目のタスクリストに保管されるタスクをまとめたTasksを取り出すまでのスクリプトを整理しておきました。タスクの取得は、先のタスクリスト取得に更に処理を追記する形になることがわかるでしょう。
が、実はTaskは、TaskListの中にはありません。TaskとTaskListは、それぞれ別々にTasksの中で管理されているのです。では、これもTask取得までの流れを整理しましょう。
1. TaskListを取得し、IDを得る
これは既に説明しましたね。まず必要なのはタスクが保管されているTaskListオブジェクトを取得し、そのIDを取り出すことです。このIDでTaskはまとめられているのです。
2. TasksCollectionを得る
変数 = Tasks.Tasks;タスク関係は、Tasksオブジェクトの「Tasks」プロパティにまとめられています。これに設定されているのは「TasksCollection」というオブジェクトで、Tasksというオブジェクトのコレクションです。
3. TasksCollectionからTask/Tasksを得る
変数 = 《TasksCollection》.get( TaskのID );TasksCollectionには、タスクを取得するためのメソッドが2種類用意されています。「get」は、引数に指定したIDのTaskを取得するものです。あらかじめIDがわかっていれば、これが一番簡単ですね。
変数 = 《TasksCollection》.list();
もう1つの「list」は、TasksCollectionに保管される全Taskをまとめて管理する「Tasks」オブジェクトを返します。サービスの基本オブジェクトであるTasksと同じ名前ですが、これは別のオブジェクトなのです。ややこしいですが、間違えないようにしてください。
4. Task配列を取得する
変数 = 《Tasks》.getItems();Tasksの「getItems」を呼び出すことで、Taskオブジェクトの配列をとり出すことができます。後は、そこから順にオブジェクトを取り出して処理していけばいい、というわけです。
――このように、タスクを取得するためには、まず取り出すタスクが保管されているタスクリストのIDを取得する必要があります。以下に、1つ目のタスクリストに保管されるタスクをまとめたTasksを取り出すまでのスクリプトを整理しておきました。タスクの取得は、先のタスクリスト取得に更に処理を追記する形になることがわかるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function gettask(){ var listitems = Tasks.Tasklists.list().getItems(); var item = listitems[1]; var id = item.getId(); var taskitems = Tasks.Tasks.list(id); Logger.log(taskitems); }
※関連コンテンツ
「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る